Wie kann ich das Standard-Gateway ändern?

19

Zur Zeit führe ich ein FreeBSD 9.1 aus und das Standard-Gateway ist bereits im konfiguriert rc.conf.

rc.conf:

defaultrouter = "10.0.0.1"

Aber jetzt möchte ich das Standard-Gateway ändern, ohne das System neu zu starten. Ist dies möglich?

WWW
quelle

Antworten:

21
route del default
route add default 1.2.3.4

Wo 1.2.3.4ist das neue Gateway? Sie können sie sogar mit a in derselben Zeile verketten;

Edit: Dies ist FreeBSD, nicht Linux. Der Befehl ist anders. Bitte bearbeiten Sie diese Antwort nicht, wenn Sie die Frage nicht sorgfältig genug gelesen haben, um das verwendete Betriebssystem zu bestimmen.

Chris S
quelle
4
Hinweis: Tun Sie dies in der Konsole, nicht über ssh. Wenn Sie dies über ssh (oder eine andere Netzwerkmethode) tun müssen, geben Sie beide Befehle gleichzeitig mit ;oder mit&&
Dalibor Filus
4
Oder verwenden Sie die generische sichere Methode: 1) Melden Sie sich bei einer Shell an, und fahren Sie sie in 15 Minuten herunter / starten Sie sie neu, sofern dies nicht abgebrochen wurde. 2) Führen Sie unsichere Aktionen aus. 3) Herunterfahren / Neustart abbrechen.
Hennes
2
Unter Linux funktionieren die Befehle ip route del defaultund ip route add default via 1.2.3.4. Daher ist der Befehl auch für Linux-Benutzer relevant, da er ziemlich ähnlich ist.
Paul Stelian
16

Sie können eine neue Standardroute hinzufügen und die alte mit dem Befehl ipoder entfernen route. Die folgenden Befehle ersetzen das Gateway durch 192.0.2.1. Beide Befehlspaare machen dasselbe. FreeBSD und andere Betriebssysteme sollten ein oder beide Programme haben, möglicherweise mit leicht unterschiedlichen Formaten. (FreeBSD hat den routeBefehl und schließt das gwin anderen Implementierungen verwendete Schlüsselwort aus.) Die Befehle man ipund / oder man routesollten Ihnen Dokumentation zu Ihrer spezifischen Implementierung liefern.

route add default 192.0.2.1
route del default 10.0.0.1

ip route add default via 192.0.2.1
ip route del default via 10.0.0.1 

Es gibt mehrere Implementierungen dieser Befehle, sodass die obigen möglicherweise nicht mit Ihrer Implementierung übereinstimmen. Ihre Implementierung sollte eine manSeite mit Beispielen für häufige Anwendungsfälle enthalten, z. B. das Hinzufügen und Entfernen von Standardgateways. Versuchen man routeund man ipzu sehen , wie Ihre Implementierung funktioniert.

Ändern Sie 192.0.2.1 zu Ihrem gewünschten Standardgateway. Das Standard-Gateway muss sich in einem der Netzwerke befinden, zu denen Sie eine direkte Verbindung haben. Sie können Ihre IP-Adresse auf ähnliche Weise ändern. ipist ein neueres Tool, mit dem Sie fast alles tun können, um IP-Adressen und Routing in IPv4- und IPv6-Netzwerken anzuzeigen und zu verwalten. ifconfigist ein älteres Tool zum Konfigurieren von IP-Adressen in einem IPv4-Netzwerk.

Um die Änderung dauerhaft zu machen, aktualisieren Sie Ihre Netzwerkkonfigurationsdateien in /etc. Die Dateien variieren je nach verwendeter Distribution.

Mindestens einer dieser Befehle sollte unter allen von Unix abgeleiteten Betriebssystemen verfügbar sein. Verschiedene Versionen können geringfügig anders funktionieren. Überprüfen Sie die manSeite für Details zu Ihrem O / S.

BillThor
quelle
4
-1 Sorry, aber das sind Linux- Befehle und funktionieren nicht mit FreeBSD .
Chris S
2
@ChrisS aktualisiert, um auf die Änderungen für FreeBSD zu verweisen. routehat mehrere Implementierungen mit geringfügigen Syntaxänderungen.
BillThor
1
Stimme für "ip route" -Befehle ab.
Sérgio
9

Hier ist ein Einzeiler:

ip route replace default via 1.2.3.4

Wo 1.2.3.4ist die neue Gateway IP

Kredit

Kunstvollroboter
quelle
2
-1 Sorry, aber das sind Linux- Befehle und funktionieren nicht mit FreeBSD .
Chris S
3

ja ändere einfach die Route und starte dein Netzwerk neu.

/etc/rc.d/netif restart
johnshen64
quelle
2
Das funktioniert, obwohl es eine Menge neu startet ... und möglicherweise Anwendungen zerstört, die an Schnittstellen gebunden sind.
Chris S
1

Du könntest es versuchen:

route add default gw 192.168.1.254 eth0
Chip Estrada
quelle
-1 Sorry, aber das sind Linux- Befehle und funktionieren nicht mit FreeBSD .
Chris S
Route addist Teil meiner FreeBSD 8.4-Installation. Aber ja, viele Leute hier, die sich für das falsche Betriebssystem verantworten.
Hennes
1
@Hennes das route addTeil funktioniert gut. GNU / Linux fügte den gwTeil hinzu , der auf keinem anderen * nix funktioniert. Ohne die gwWerke auf allen BSDs, Solaris, OSX, HPUX, AIX usw.
Chris S
1

Es ist sehr einfach, Sie müssen nur die nächsten Befehle eingeben:

$ route del 0/0
$ route add 0/0 192.168.0.1

Sie müssen die '192.168.0.1' durch die IP Ihrer Wahl ersetzen.

Und um die Änderungen zu überprüfen, können Sie 'netstat' verwenden:

$ netstat -r

Dieser Befehl zeigt die Routing-Tabelle des Systems.

ifm
quelle
Was ist "0/0"?
WWW
1
@WWW '0/0' ist die Abkürzung für den Netzwerkblock '0.0.0.0/0', der mit 'default' identisch ist, aber ich bevorzuge '0/0' (ich glaube, ich bin mehr von der alten Schule) ).
ifm
0

Immer zuerst verwenden netstat -nr, um das Gateway zu überprüfen, was Sie haben und welche Details es hat ... Sie sehen 0.0.0.0. Wenn es ein Standard ist und Sie zuerst darüber nachdenken sollten, warum ich dieses Gateway ändere, als diesen Befehl zu verwenden:

route add default gw your ip eth0
user122562
quelle
-1 Sorry, aber das sind Linux- Befehle und funktionieren nicht mit FreeBSD .
Chris S