Como faço para que o SSH ouça um novo IP sem reiniciar a máquina?

5

Eu tenho algumas caixas de servidores Ubuntu configuradas no ESX e alterei os endereços IP via SSH. No momento em que eu mudei, ele me deixou fora do SSH (como esperado).

Depois de um reinício, ele funciona 100% como esperado e eu posso fazer SSH no novo IP.

No entanto, por mais que isso funcione e eu sei que é uma solução, estou tentando aprender Linux e gostaria de reiniciar / vincular o SSH ao novo IP sem reiniciar.

Eu tentei /etc/init.d/ssh restart (e stop then start ) e services ssh restart (e stop then start ), mas nada parece funcionar.

No entanto, o mais estranho é que do meu outro servidor (rodando na mesma caixa ESX) eu consigo conectar o SSH no novo IP, mas, eu não consigo acessar o SSH de nenhum outro lugar até que a caixa seja reiniciada .

Eu não consigo descobrir o que estou fazendo de errado.

Alguém viu isso ou eles podem oferecer algum conselho?

(se mudar alguma coisa, os IPs dos quais eu estava me movendo de / para são todos os IPs roteados pela Internet / públicos diretamente)

    
por wilhil 24.11.2011 / 11:11

5 respostas

1

Eu tenho um palpite relacionado ao ARP, que às vezes pode ser divertido com máquinas virtuais. De outro servidor virtual na mesma caixa, você pode se conectar, já que não está passando pelo switch.

Para testar isso, primeiro tente limpar as tabelas ARP na máquina a partir da qual você está tentando conectar-se (e não conseguir):

sudo arp -d <ip-of-failing-virtual-machine>

Se isso não ajudar, tente redefinir a tabela ARP no seu switch (uma maneira fácil de fazê-lo: redefinir o switch:)

    
por roadmr 03.03.2012 / 02:50
1

Quando você altera seu endereço IP, você adiciona a rota padrão? Parece-me porque você não adicionou a rota padrão, o computador não pode acessar e ser acessado de fora. Vamos dizer que você mudou seu endereço IP assim, como root:

ip addr del <old ip/netmask> iface
ip addr add <new ip/netmask> iface

Depois de fazer isso, você precisa adicionar a rota padrão, que, se não for feita, não permitirá que o servidor se conecte à Internet. Para ser acessível fora, a rota padrão precisa ser adicionada:

route add default gw <gateway ip address>

Espero que isso resolva o problema.

    
por The Terminator 04.03.2012 / 16:52
1

Se a configuração do openssh-server estiver intocada (a padrão), então você nem precisa reiniciar o ssh para que ele ouça o novo IP que você definiu.

É provável que o seu problema seja a maneira como você altera seu IP.

Eu não sei como você faz isso, então eu vou cobrir todos os casos

Eu aconselho você a não usar a GUI: network-manager. É muito pobre em funcionalidade e não se ajusta à sua necessidade de alterações remotas. (qualquer interface gráfica é uma péssima ideia em um servidor, pois adiciona riscos potenciais e consome constantemente recursos por 5 minutos de uso)

Meu conselho seria editar o / etc / network / interface

Veja esta ajuda: Configuração de rede no Ubuntu 11.10 e, mais importante, o "IP Endereçando "parte.

Certifique-se de não usar a instrução hotplug, que pode causar problemas.

mudar o IP com ifconfig é uma má ideia: é temporário e faz diretamente a mudança, então você não pode definir / desarmar outras configurações de rede

Agora o verdadeiro truque:

(ifconfig aside): O próprio ato de alterar o mesmo IP da sua sessão SSH é, na verdade, dois procedimentos para o Ubuntu: Pare a interface e, em seguida, inicie a interface.

Então, o que você usa é um script, e quando a interface interrompe a sessão do ssh é fechada ... e assim o seu script. Então sua interface nunca mais começa.

para evitar que seu script seja fechado, você deve ter o script em segundo plano:

sudo -i
nohup service networking restart &

Ele enviará seu script para o segundo plano e, portanto, não será fechado quando a sessão do ssh for encerrada.

Você perderá sua sessão ssh, mas poderá se conectar novamente ao seu servidor sem reiniciar. (deixe um pouco de tempo se você está definindo um novo ip dhcp ou se é wifi)

Se isso não funcionar, forneça mais detalhes sobre como você deve proceder.

Atenciosamente.

    
por Antoine Rodriguez 03.03.2012 / 21:36
-1

Suas regras de iptables proíbem quaisquer conexões de entrada para qualquer IP que não seja o seu? Ele pode ser atualizado automaticamente na reinicialização - seria incomum, eu acho, nunca vi isso feito, mas isso explicaria esse comportamento.

Tente

iptables -L

e veja se alguma das regras parece responsável por filtrar as conexões de entrada para o IP que sua máquina tem (tinha).

    
por Caesium 24.11.2011 / 11:49
-1

Verifique seu sshd_config em / etc / ssh

e verifique se há um listen nessa configuração, por exemplo:

ListenAddress 212.72.224.8

Se isso mudar para a direita e fazer um serviço ssh restart

    
por Bas van den Dikkenberg 11.03.2012 / 14:55