Wie kann ich eine bestimmte Netzwerkschnittstelle auf RHEL neu starten?

18

service network restartWie kann ich in RHEL eine bestimmte Netzwerkschnittstelle neu starten , anstatt den Befehl zu verwenden? Sagen wir "eth1" mit nur einem Befehl.

"Nur ein Befehl", weil das die einzige Schnittstelle ist, an der meine sshauch arbeitet. Also, wenn ich im Begriff bin zu verwenden: ifdownund dann ifupwerde ich nie in der Lage sein, den ifupBefehl zu treffen, da meine ssheinmal nach dem ifdown eth1Befehl beendet wurde.

Es sollte also einen einzigen Befehl geben, der es mir ermöglicht, die Schnittstelle, die meine aktuelle sshVerbindung bedient, zu beenden und dann wieder zu öffnen . Ich brauche mir also keine Sorgen um die Verbindung zu meinem Server zu machen.

Irgendeine Idee bitte?

夏 夏 期
quelle

Antworten:

27

Sie können verwenden:

ifdown eth1 && ifup eth1

Als ein einziger Befehl. Das && führt nur einen Befehl aus, den anderen, wenn der erste Befehl erfolgreich ist . Wenn Sie sudo verwenden müssen, stellen Sie sicher, dass Sie es vor jedem Befehl verwenden:

sudo ifdown eth1 && sudo ifup eth1

Solange Ihre Schnittstelle so konfiguriert ist, dass die erforderliche IP-Adresse und Route mit der aktuellen Konfiguration übereinstimmt, wird Ihre SSH-Verbindung nicht unterbrochen.

Wenn Sie Bedenken haben, es auf einem Produktionsserver zu verwenden, auf den Sie nicht über eine andere Zugriffsmethode verfügen, ist dies verständlich. Obwohl der Befehl genau das tut, was Sie wollen, ist es sehr einfach, einen Konfigurationsfehler zu bekommen, der erst nach dem Ausführen dieses Befehls bemerkt wird. Wenn Sie keine alternative Zugriffsmethode haben (z. B. Out-of-Band-Konsole oder SSHD, die auf einer anderen Schnittstelle ausgeführt wird), ist es am sichersten, dies nicht zu tun .

Ich verwende diese Technik oft, um einen Neustart der Benutzeroberfläche durchzuführen, aber ich habe im Allgemeinen eine Backup-Zugriffsmethode zur Verfügung, nur für den Fall, dass ich es tue.

blahnana
quelle
Dies plus OOB-Management FTW
dmourati
3
ifdown eth1 && ifup eth1Könnte ich vorschlagen , dass ifup auf diese Weise nur ausgeführt wird, wenn ifdown erfolgreich war, während ;ifup unabhängig von der Rückkehr von ifdown ausgeführt wird.
Zamnuts
@ Zamnuts Antwort jetzt bearbeitet, um dies einzuschließen :)
David Gardner
1

Sie können eine Schnittstelle neu starten, indem Sie die folgenden Befehle eingeben:

# ifdown eth1
# ifup eth1

Danach können Sie überprüfen, ob Ihre neue Konfiguration aktiv ist

# ip a
jerQ
quelle
Sorry, aber ich brauche .. "Nur einen Befehl", weil das die einzige Schnittstelle ist, an der mein ssh auch arbeitet. Also, wenn ich im Begriff bin zu verwenden: ifdown und dann ifup, werde ich nie in der Lage sein, den Befehl ifup zu drücken, da mein ssh einmal nach dem Befehl ifdown eth1 beendet wurde. Es sollte also einen einzigen Befehl geben, den ich herunterfahren und dann die Schnittstelle aufrufen kann, die meine aktuelle SSH-Verbindung bedient. Ich muss mich also nicht um einen Verbindungsverlust zu meinem Server kümmern.
夏期劇場
Sie könnten sie zu einem Shell-Skript machen und das ausführen, Ihre ssh-Sitzung sollte nicht beendet werden, obwohl es zu einem kurzen Netzwerk-Blackout kommen wird. Eine andere Möglichkeit besteht darin, das Skript innerhalb der Bildschirmsitzung auszuführen, wo es bis zum Ende ausgeführt wird, auch wenn Ihre SSH-Sitzung fehlschlagen würde.
JerQ
1
Wird das helfen? ifdown eth1 ; ifup eth1?
夏期劇場
0

Versuchen Sie, die IP-Adresse (oder einen beliebigen Schnittstellenparameter) einer Schnittstelle auf einem Remotecomputer zu ändern? Wenn die Antwort Ja lautet, können Sie eine der folgenden Methoden ausprobieren:

Eine coole Methode ist, mit dem Bildschirm-Dienstprogramm eine Sitzung zu erstellen, indem Sie einfach 'Bildschirm' eingeben. Wenn Sie den Netzwerkdienst neu gestartet haben und Ihre SSH-Verbindung getrennt wurde , überprüfen Sie mithilfe von screen -ls , ob die Sitzung noch aktiv ist (aber getrennt), und screen -r , um die getrennte Sitzung fortzusetzen . Dies funktioniert, wenn in Ihrer Schnittstellenkonfigurationsdatei kein Fehler vorliegt, dh der Netzwerkdienst erfolgreich neu gestartet wurde.

Sie können auch den folgenden Trick anwenden:

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

Bearbeiten Sie anschließend Ihre Schnittstellenkonfigurationsdatei und starten Sie den Netzwerkdienst neu. Im Fehlerfall müssen Sie lediglich 10 Minuten warten, um die vorherige Konfiguration erneut anzuwenden und den Netzwerkdienst neu zu starten.

IG83
quelle
-3

Alle Antworten, die sich auf ifup und ifdown beziehen, stimmen nicht mit der Frage überein. ifup und ifdown bringen die Schnittstelle nur nach oben und unten, der Netzwerkdienst wird dadurch nicht beeinträchtigt. Für Linux bedeutet Netzwerkdienst nicht nur die Einrichtung von IP-Schnittstellen.

Weitere Informationen finden Sie im Skript /etc/rc.d/network.

Steven Liang
quelle
1
Ich bin nicht sicher, welchen Punkt Sie machen. Die OP fragen nicht nach dem Neustart des Netzwerks Service , sondern nur einen individuellen Neustart Schnittstelle . Darüber hinaus hat das OP eine Antwort akzeptiert, in der die von Ihnen empfohlenen Befehle explizit verwendet werden. -1 von mir.
MadHatter unterstützt Monica