edit: Ich bin ein Neuling im Netzwerken und beim Entdecken neuer Dinge :)
Ich habe eine TUN-Schnittstelle programmgesteuert erstellt, mit der interagiert werden kann.
Ich habe es eingerichtet und zum Laufen gebracht
ifconfig myTun 10.10.1.1/24 up
und es läuft, wie ich sehen kann, ifconfig
und pingt10.10.1.1
und um 100 % sicherzugehen, dass meine TUN-Schnittstelle mit meinem beschriebenen Problem funktioniert, habe ich Folgendes getan:
Ich habe einen Ping gesendet 10.10.1.2
und das Paket wurde in meinem Programm empfangen. Ich habe es an Tun zurückgeschrieben und es dann in einer Schleife erneut empfangen.
jetzt bin ich sicher, dass alle PaketeAUSoderZU 10.10.1.x
werden problemlos von TUN empfangen und dorthin geschrieben.
wenn ich ein Paket schreibe mitjede Ziel-IP außerhalbdas 10.10.1.x
Schreiben an TUN war erfolgreich, aber es wurde keine Antwort an TUN gesendet.
Nachdem ich gesucht und viele Artikel gelesen hatte, kam ich zu dem Schluss, dass es vom Kernel stillschweigend gelöscht wird.
Ich habe viele Fragen und Antworten zu TUN-Schnittstellen auf serverfault.com gelesen und festgestellt, dass ich einen wichtigen Teil in meiner Logik übersehen habe, nämlichROUTENFÜHRUNG.
mein endgültiges Verständnis ist: das Paket ist OK und wird vom Netzwerk-Stack in Linux empfangen, aber der Kernel weiß nicht, was er mit dem Paket machen soll, weil sein Ziel seltsam ist. Dann habe ich festgestellt, dass ich ein Routing für den Kernel angeben muss iniptablesund Aktivieren, net.ipv4.ip_forward
weiß aber nicht wie.
mein endgültiges Ziel ist:
Wenn ich ein Paket mit einem Ziel außerhalb 10.10.1.x
des TUN sende, muss es an meine Hauptschnittstelle weitergeleitet werden (die Zugriff auf das Internet hat und ist wlps020f3
) und jedes Ergebnis dieses Pakets muss an meine TUN-Schnittstelle zurückgesendet werden.
So konfigurieren SieNATIniptableswie man es umgehen kann?
Danke im Voraus
Antwort1
IPv4-Weiterleitung aktivieren:
sudo sysctl -w net.ipv4.ip_forward=1
NAT-Verkehrvon der Tunnelschnittstelle hinter Ihrer WLAN-Adresse:
sudo iptables -t nat -A POSTROUTING -o wlps020f3 -j MASQUERADE
Keine dieser Änderungen wird einen Neustart überstehen. Der obere Link undDieses hierhaben weitere Informationen zu diesem Aspekt.