Como simular um cabo de rede desconectado ou um servidor inativo?


14

Simulei a latência da rede com o netem e é ótimo. Agora eu quero simular um cabo de rede desconectado ou quando o servidor cair. Eu preciso disso para facilitar o teste do meu aplicativo e não consegui encontrar nada na Web que me ajudasse. Meus servidores são instâncias virtuais do CentOS e estão no Virtualbox. Eu quero fazer isso a partir de uma página da web php.

Respostas:


17

Apenas abaixe a interface. Por exemplo, com eth0:

ip link set eth0 down

Para trazer a interface de volta:

ip link set eth0 up

obrigado, eu estou lendo sobre isso aqui
Safey

1
que está trabalhando com êxito, mas ip link set eth0 upnão está funcionando :( e eu preciso de ambos
Safey

@NancySmith "Não está funcionando" não tem significado. Quais mensagens de erro ocorrem? Você atribuiu um IP e uma máscara de rede?
Chris Baixo

Quero dizer que usei ip link set eth0 downvia php e ping mostra que meu servidor está inacessível. então eu queria recuperá-lo ", eu executei ip link set eth0 upvia php e servidor ainda inativo.
Safey

3
@NancySmith Crie outra interface de rede que não tenha acesso ao que estiver conectando (usando rotas, etc.). SSH para o host usando essa interface. Desative a interface pela qual você não está se conectando ao SSH.
perfil completo de Chris Down

7

Ao usar a resposta mais votada em uma máquina conectada via SSH, você derrubará a rede e não terá como recuperá-la. A seguir, é uma maneira de reduzi-lo e recuperá-lo enquanto estiver em uma conexão SSH.

Exemplo usando a interface ens32:

Se você executar:

ip link set ens32 down

E você está se conectando através do SSH, não poderá trazê-lo novamente, pois desativou sua rede e, portanto, não pode fazer o SSH no servidor.

Eu uso o seguinte script para simular 20 segundos de tempo de inatividade:

#!/bin/sh
ip link set ens32 down
sleep 20
ip link set ens32 up

Salve-o como downtime.sh, verifique se o arquivo possui direitos de execução e execute:

sudo ./downtime.sh

1
coisa boa. Além disso, link relevante para aqueles que não tem certeza sobre qual interface para baixo: unix.stackexchange.com/questions/125400/...
Jeutnarg

1
erm ... Eu sou um novato no Linux, mas acho que pode haver alguns conselhos ruins aqui: se você não copia esse script, o que acontece é que você o executa, sua sessão morre (devido à desconexão) e o script para ( e nunca revive a interface da rede). Eu acho que algumas leituras sobre o nohup devem ser valiosas!
DraxDomax

@DraxDomax o que você diz parece lógico, mas não tive nenhum problema com o fato de ele não voltar. Considerando que tive problemas com a resposta aceita.
Zombando

@Mocking Desculpe, não consegui editar meu comentário. Não é necessariamente "um mau conselho". Na verdade, é uma boa resposta proativa, porque 90% das pessoas que encontrarão essa pergunta estão tentando fazer a mesma coisa: "Preciso testar se meu software funciona após a desconexão da máquina. Não tenho acesso ao host de virtualização" . Na verdade, eu recorri ao seu script (apenas meu adaptador era br0) - não funcionou no meu caso (SSH do MacOS para o CentOS) e tive que ligar para o pessoal de TI para trazer a rede novamente.
DraxDomax

1

Na janela do console do seu VirtualBox, você deve ter um menu Machine suspenso. Sob esse, existem várias ações. Um deles é o desligamento. Você precisa selecionar esse para desligar imediatamente. Essa é a coisa mais próxima de puxar o cabo de alimentação de um servidor físico.


Eu quero fazer isso de uma página da web. eu sei como desligar máquinas.
precisa

e eu não quero fingir. não desligue e inicie novamente.
precisa

A julgar pela menção de netem, suponho que a pergunta seja realmente sobre desconectar o cabo de rede de um servidor, e não o cabo de alimentação (embora não esteja claro).
Chris Baixo

Vou editar a minha pergunta para torná-la mais clara, graças
Safey
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.