Comment «redémarrer» une interface réseau particulière sur RHEL?

18

Dans RHEL, au lieu d'utiliser la service network restartcommande, comment puis-je redémarrer une interface réseau particulière, disons "eth1", avec une seule commande.

"Une seule commande" car c'est la seule interface sur laquelle mon sshtravaille également. Donc, si je suis sur le point d'utiliser: ifdownet puis ifup, je ne pourrai jamais appuyer sur la ifupcommande car mon ssha été interrompu une fois après la ifdown eth1commande.

Donc, il devrait y avoir une seule commande qui me permet de faire tomber puis de faire apparaître l'interface qui sert ma sshconnexion actuelle . Je n'ai donc pas à me soucier de la perte totale de connexion à mon serveur.

Une idée s'il vous plait?

夏 期 劇場
la source

Réponses:

27

Vous pouvez utiliser:

ifdown eth1 && ifup eth1

Comme une seule commande. Le && exécute simplement une commande, puis l'autre si la première commande réussit . Si vous devez utiliser sudo, assurez-vous de l'utiliser avant chaque commande:

sudo ifdown eth1 && sudo ifup eth1

Tant que votre interface est configurée pour avoir l'IP et la route nécessaires pour correspondre à la configuration actuelle, votre connexion ssh ne chutera pas.

Si vous êtes inquiet de l'utiliser sur un serveur de production auquel vous n'avez pas d'autre méthode d'accès, c'est compréhensible. Bien que la commande fasse exactement ce que vous voulez, il est très facile d'avoir une erreur de configuration qui n'est remarquée qu'après avoir exécuté cette commande. Si vous ne disposez pas d'une autre méthode d'accès (par exemple, une console hors bande ou SSHD s'exécutant sur une autre interface), il est préférable de ne pas le faire .

J'utilise souvent cette technique pour effectuer un «redémarrage» de l'interface, mais j'ai généralement une méthode d'accès de sauvegarde disponible au cas où je le ferais.

blahnana
la source
ceci plus la gestion OOB FTW
dmourati
3
Puis-je suggérer ifdown eth1 && ifup eth1, de cette façon, ifup ne s'exécute que si ifdown a réussi, alors qu'avec un ;ifup s'exécutera quelle que soit la façon dont ifdown est retourné.
zamnuts
@zamnuts Réponse maintenant modifiée pour inclure ceci :)
David Gardner
1

Vous pouvez «redémarrer» une interface en émettant les commandes suivantes:

# ifdown eth1
# ifup eth1

Après cela, vous pouvez vérifier que votre nouvelle configuration est active

# ip a
jerQ
la source
Désolé mais j'ai besoin de "Une seule commande" car c'est la seule interface sur laquelle mon ssh travaille également. Donc, si je suis sur le point d'utiliser: ifdown puis ifup, je ne pourrai jamais appuyer sur la commande ifup car mon ssh a été arrêté une fois après la commande ifdown eth1. Il devrait donc y avoir une seule commande que je peux faire tomber puis faire apparaître l'interface qui sert ma connexion ssh actuelle. Je n'ai donc pas à me soucier de la perte de connexion à mon serveur.
夏 期 劇場
Vous pouvez en faire un script shell et l'exécuter, votre session ssh ne devrait pas se terminer, même s'il y aura une courte panne de réseau. Une autre option consiste à exécuter ce script dans screen-session, où il sera exécuté jusqu'à la fin, même si votre session ssh échouait.
jerQ
1
cela va-t-il aider? ifdown eth1 ; ifup eth1?
夏 期 劇場
0

Essayez-vous de modifier l'adresse IP (ou tout paramètre d'interface d'ailleurs) d'une interface sur une machine distante? Si la réponse est oui, vous pouvez essayer l'une des solutions suivantes:

Une méthode intéressante consiste à utiliser l'utilitaire d'écran pour créer une session en tapant simplement «écran». Une fois que vous avez redémarré le service réseau et que votre connexion SSH est interrompue , utilisez screen -ls pour vérifier que la session est toujours active (mais détachée) et screen -r pour reprendre la session détachée. Cela fonctionnera s'il n'y a pas d'erreur dans votre fichier de configuration d'interface, c'est-à-dire que le service réseau est redémarré avec succès.

Vous pouvez également utiliser l'astuce suivante:

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

Et continuez à modifier votre fichier de configuration d'interface et à redémarrer le service réseau. En cas d'erreur, il suffit d'attendre 10 minutes pour que la configuration précédente soit réappliquée et que le service réseau soit redémarré.

IG83
la source
-3

toutes les réponses concernant ifup et ifdown ne correspondent pas à la question. ifup & ifdown ne font que monter et descendre l'interface uniquement, cela n'affecte pas le service réseau. pour le service réseau linux ne signifie pas uniquement la configuration des interfaces ip.

veuillez vérifier le script /etc/rc.d/network pour plus de détails.

Steven Liang
la source
1
Je ne sais pas quel point vous faites valoir. L'OP ne demande pas de redémarrer le service réseau , mais seulement de redémarrer une interface individuelle . De plus, l'OP a accepté une réponse qui utilise explicitement les commandes contre lesquelles vous recommandez. -1 de moi.
MadHatter prend en charge Monica