Geteilte Frage: Diese andere hier ist für Windows.
Linux: Der schnellste Weg, um das Internet (LAN behalten) von der Kommandozeile aus zu deaktivieren?
Ich denke, der einfachste Weg, das Internet (nicht LAN) unter Linux zu deaktivieren, besteht darin, das Standard-Gateway zu entfernen. Angenommen, LAN ist 10.0.2.0/24 und Gateway 10.0.2.1:
sudo /sbin/route del default gw 10.0.2.1
So reaktivieren Sie das Internet:
sudo /sbin/route add default gw 10.0.2.1
Aber selbst wenn dies eine einfache Zeile ist, muss zuerst die Standard-Gateway-IP ermittelt werden:
sudo /sbin/route
Ich werde einige allgemeine Shell-Skripte erstellen, die das Internet aktivieren / deaktivieren müssen (aber das LAN weiter funktionieren lassen). Es scheint also, dass ich einige (¿ grep
, vielleicht?) Operationen benötigen werde, um die genaue Gateway-IP-Nummer zu filtern und zu erkennen ( Es könnte 10.0.2.1, 127.0.0.1, 127.0.50.1, 192.168.0.1 ... usw. sein, es sei denn, ich finde eine einfachere Befehlszeile.
Irgendwelche Ideen bitte?
quelle
Antworten:
Auf * nix, um das Gateway zu finden:
In der letzten Zeile wird der Wert in einer Datei zur späteren Verwendung gespeichert, wenn Sie das Netzwerk neu starten möchten:
Hinweis : Wenn es mehr als ein Standard-Gateway gibt, muss dieser Code für jedes erneut ausgeführt oder neu geschrieben werden, um dies zu unterstützen.
So funktioniert es: Der obige
awk
Befehl kann das Gateway erfassen, da dieroute -n
Ausgabe wie folgt aussieht:Das Internet-Gateway ermöglicht das Ziel überall (
0.0.0.0
). Daherawk
durchläuft das Skript diese Ausgabe zeilenweise und betrachtet die erste Spalte ($1
inawk
Notation aufgerufen ). Wenn sich die erste Spalte an einem beliebigen Ort befindet, wird die zweite Spalte gedruckt, die das Gateway ist. Die Ausgabe desawk
Befehls wird dann in der Shell-Variablen erfasstGW
. Die Shell kann dann aufgefordert werden, einen$GW
beliebigen Befehl zu ersetzen , der sie benötigt.quelle
route del
funktioniert der Befehl . Dieser Weg funktioniert jedoch nicht, wenn mehr als ein Gateway vorhanden ist, um zu unterstützen, dass dasroute del
für jede Zeile aufgerufen werden muss. Mit anderen Worten, der Code muss neu geschrieben werden.