web-dev-qa-db-fra.com

Comment faire en sorte que SSH écoute sur une nouvelle adresse IP sans redémarrer la machine?

J'ai quelques boîtes de serveur Ubuntu configurées sur ESX et j'ai changé les adresses IP via SSH. Le moment où je l'ai changé, il m'a déposé de SSH (comme prévu).

Après un redémarrage, cela fonctionne à 100% comme prévu et je peux utiliser SSH sur la nouvelle adresse IP.

Cependant, même si cela fonctionne et que je sais que c'est une solution, j'essaie d'apprendre Linux et je voudrais redémarrer/lier SSH à la nouvelle adresse IP sans redémarrer.

J'ai essayé /etc/init.d/ssh restart (et stop puis start), et services ssh restart (et stop alors start), mais rien ne semble fonctionner. .

Cependant, ce qui est étrange, c’est que, sur mon autre serveur (fonctionnant sur le même boîtier ESX), je peux entrer SSH sur la nouvelle adresse IP, mais je ne peux pas sembler y installer SSH jusqu’à ce que le boîtier soit redémarré.

Je ne peux pas comprendre ce que je fais mal.

Est-ce que quelqu'un a vu cela ou peut-il donner des conseils?

(si cela change quelque chose, les adresses IP que je changeais de/à sont toutes les adresses Internet directement/publiques routées)

5
wilhil

Je pense que cela est lié à ARP, qui peut parfois être funky avec des machines virtuelles. À partir d'un autre serveur virtuel sur la même boîte, vous pouvez vous connecter, car vous ne passez pas par le commutateur.

Pour tester cela, commencez par effacer les tables ARP sur la machine à laquelle vous essayez (et échouez) de vous connecter:

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

Si cela ne résout pas le problème, essayez de réinitialiser le tableau ARP de votre commutateur (une façon simple de le faire: réinitialisez le commutateur :)

1
roadmr

Lorsque vous modifiez votre adresse IP, ajoutez-vous la route par défaut? Il me semble que, parce que vous n'avez pas ajouté la route par défaut, l'ordinateur est incapable d'accéder à partir de l'extérieur et d'y accéder. Disons que vous avez changé votre adresse IP ainsi, en tant que root:

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

Cela fait, vous devez ajouter la route par défaut. Si vous ne le faites pas, votre serveur ne pourra pas se connecter à Internet. Pour être accessible à l'extérieur, la route par défaut doit être ajoutée:

route add default gw <gateway ip address>

J'espère que ça résoud le problème.

1
The Terminator

Si la configuration de openssh-server est intacte (celle par défaut), vous n'avez même pas besoin de redémarrer ssh pour qu'il puisse écouter sur la nouvelle adresse IP que vous avez définie.

Votre problème sera probablement la façon dont vous modifiez votre adresse IP.

Je ne sais pas comment vous le faites donc je couvrirai tous les cas

Je vous conseille de ne pas utiliser l'interface graphique: network-manager. Ses fonctionnalités sont très médiocres et ne répondent pas à vos besoins de modifications à distance. (Toute interface graphique est une très mauvaise idée sur un serveur car elle ajoute des risques potentiels et consomme constamment des ressources pendant 5 minutes d'utilisation)

Mon conseil serait de modifier/etc/network/interface

Voir cette aide: Configuration réseau sur Ubuntu 11.1 et surtout la partie "Adressage IP".

Assurez-vous de ne pas utiliser la déclaration hotplug qui peut vous mener à des ennuis.

changer l'IP avec ifconfig est une mauvaise idée: c'est temporaire et cela change directement afin que vous ne puissiez pas activer/désactiver d'autres paramètres réseau

Maintenant, le vrai truc:

(ifconfig à part): Le fait de changer la même adresse IP de votre session SSH est en fait une procédure à suivre pour Ubuntu: arrêtez l'interface, puis démarrez l'interface.

Donc ce que vous utilisez est un script, et quand l’interface arrête votre session ssh fermée ... et donc votre script. Donc, votre interface ne redémarre plus jamais.

afin d'éviter que votre script ne soit fermé, vous devez le script en arrière-plan:

Sudo -i
Nohup service networking restart &

Il enverra votre script en arrière-plan et ne sera donc pas fermé à la fermeture de votre session SSH.

Vous perdrez alors votre session ssh, mais vous pourrez vous reconnecter à votre serveur sans redémarrer. (laissez un peu de temps si vous définissez une nouvelle adresse IP dhcp ou s'il s'agit du wifi)

Si cela ne fonctionne pas pour vous, veuillez nous donner plus de détails sur la façon dont vous procédez.

Meilleures salutations.

1