Como "reiniciar" uma interface de rede específica no RHEL?

18

No RHEL, em vez de usar o service network restartcomando, como posso reiniciar uma interface de rede específica, digamos "eth1", com apenas um comando.

"Apenas um comando", porque essa é a única interface em que o meu também sshestá trabalhando. Portanto, se estou prestes a usar: ifdowne ifupnunca poderei pressionar o ifupcomando, pois o meu sshfoi encerrado uma vez após o ifdown eth1comando.

Portanto, deve haver um único comando que me permita derrubar e exibir a interface que está servindo minha sshconexão atual . Então, eu não preciso me preocupar com a conexão totalmente perdida no meu servidor.

Alguma ideia por favor?

夏 期 劇場
fonte

Respostas:

27

Você pode usar:

ifdown eth1 && ifup eth1

Como um único comando. O && executa apenas um comando, depois o outro, se o primeiro comando for bem-sucedido . Se você precisar usar o sudo, use-o antes de cada comando:

sudo ifdown eth1 && sudo ifup eth1

Enquanto sua interface estiver configurada para ter o IP necessário e a rota para corresponder à configuração atual, sua conexão ssh não será interrompida.

Se você está preocupado em usá-lo em um servidor de produção ao qual não tem outro método de acesso, é compreensível. Embora o comando faça exatamente o que você deseja, é muito fácil ter um erro de configuração que só é percebido após a execução desse comando. Se você não possui um método alternativo de acesso (por exemplo, console fora da banda ou SSHD em execução em outra interface), é mais seguro não fazer isso .

Uso essa técnica frequentemente para executar uma 'reinicialização' da interface, mas geralmente tenho um método de acesso de backup disponível para o caso de fazê-lo.

blahnana
fonte
esta gestão OOB mais FTW
dmourati
3
Posso sugerir que ifdown eth1 && ifup eth1, dessa maneira, o ifup não funcione, a menos que o ifdown tenha sido bem-sucedido, enquanto o ;ifup será executado independentemente de como o ifdown retornou.
Zamnuts
@zamnuts resposta agora editado para incluir este :)
David Gardner
1

Você pode 'reiniciar' uma interface emitindo os seguintes comandos:

# ifdown eth1
# ifup eth1

Depois disso, você pode verificar se sua nova configuração está ativa

# ip a
jerQ
fonte
Desculpe, mas eu preciso .. "Apenas um comando", porque essa é a única interface em que meu ssh está trabalhando também. Portanto, se estou prestes a usar: ifdown e ifup, nunca poderei pressionar o comando ifup, pois meu ssh foi encerrado uma vez após o comando ifdown eth1. Portanto, deve haver um único comando que eu possa desativar e, em seguida, abrir a interface que está servindo minha conexão ssh atual. Portanto, não preciso me preocupar com a conexão perdida no meu servidor.
夏期劇場
Você pode transformá-los em um shell script e executá-lo, sua sessão ssh não deve ser encerrada, mesmo que ocorra um curto blecaute na rede. Outra opção é executar esse script dentro da sessão de tela, onde será executado até o final, mesmo que sua sessão ssh falhe.
jerQ
11
isso vai ajudar? ifdown eth1 ; ifup eth1?
夏期劇場
0

Você está tentando alterar o endereço IP (ou qualquer parâmetro de interface) de uma interface em uma máquina remota? Se a resposta for sim, você pode tentar um dos seguintes:

Um método interessante é usar o utilitário de tela para criar uma sessão, basta digitar 'tela'. Depois de reiniciar o serviço de rede e sua conexão SSH cair, use screen -ls para verificar se a sessão ainda está ativa (mas desanexada) e screen -r para retomar a sessão desanexada. Isso funcionará caso não haja erro no arquivo de configuração da interface, ou seja, o serviço de rede foi reiniciado com sucesso.

Você também pode usar o seguinte truque:

$ cp -v current_conf_file current_conf_file.bak
$ echo "mv current_conf_file.bak current_conf_file && service network restart" | at now+10min

E continue editando o arquivo de configuração da interface e reiniciando o serviço de rede. Em caso de erro, basta aguardar 10 minutos para que a configuração anterior seja reaplicada e o serviço de rede seja reiniciado.

IG83
fonte
-3

todas as respostas que falam sobre ifup e ifdown não estão de acordo com a pergunta. ifup e ifdown apenas trazem a interface para cima e para baixo, isso não afeta o serviço de rede. para o serviço de rede linux não significa apenas a configuração de interfaces de ip.

verifique o script /etc/rc.d/network para obter mais detalhes.

Steven Liang
fonte
11
Não sei ao certo o que você está dizendo. O OP não pergunta sobre como reiniciar o serviço de rede , mas apenas como reiniciar uma interface individual . Além disso, o OP aceitou uma resposta que usa explicitamente os comandos contra os quais você está recomendando. -1 de mim.
MadHatter suporta Monica 29/07