Der folgende Befehl untersucht die offenen TCP-Verbindungen und listet die Ziele außerhalb des lokalen Netzwerks auf:
$ netstat -4ntu | tail -n +3 | cut -c45-65 | cut -d: -f1 | grep -v '192.168.99' | grep -v '192.168.1' 214.236.220.101 63.171.235.16 174.63.61.132 159.47.216.178 62.59.197.29 139.47.218.150 56.4.17.22 204.63.49.5 155.9.79.196 144.31.207.66
Wir müssen also nur diese Liste durchlaufen und bestimmte Routen in Richtung des Hauptrouters legen, bevor Sie die Standardroute ändern:
for i in $(netstat -4nt | tail -n +3 | cut -c45-65 | cut -d: -f1 |grep -v '192\.168\.99' | grep -v '192\.168\.1') ; do echo route add -host $i gw 192.168.1.99; done
(Ich habe den "Echo" -Befehl dort gelassen, damit Sie sehen können, was er tut. Sie können ihn entfernen, wenn Sie es tatsächlich tun möchten.
Dann ändern Sie Ihre Standardroute:
$ route add -net 0.0.0.0 gw 192.168.1.1 dev tap0
Da die hinzugefügten Routen spezifischer sind, werden sie der Standardroute vorgezogen. Natürlich können Sie dies in ein Skript schreiben, um es einfacher zu machen.