Die Portweiterleitung funktioniert nicht, wenn der OpenVPN-Client aktiv ist

Die Portweiterleitung funktioniert nicht, wenn der OpenVPN-Client aktiv ist

Ich habe den OpenVPN-Client auf meinem Router mit ddwrt erfolgreich konfiguriert und ihn auch so eingerichtet, dass OpenVPN beim Start aktiviert wird.

Heimnetzwerk => DDWRT-Router mit OpenVPN-Client => Web

Ich kann die Weboberfläche des Routers sehen und mich per SSH mit einer meiner Heim-Unix-Boxen verbinden, wenn der OpenVPN-Clientist nichtläuft. Ich frage mich also, wie ich dasselbe tun kann, wenn der OpenVPN-ClientIstläuft.

Ich bin sicher, dass meine Heimnetzverbindung aktiv ist, da ich dies gerade auf meinem Macbook schreibe, das über WLAN mit meinem Router verbunden ist, und mein anderes Macbook über den persönlichen Hotspot des iPhone mit dem Internet verbunden ist. Ich führe Tests auf dem 2. Macbook durch.

Wichtige Info:

Die Router-Firewall ist ausgeschaltet.

IP-Routing-Informationen

root@myrouter:~# ip route list
0.0.0.0/1 via 10.208.185.5 dev tun1 
default via my-wan-gateway-ip-here dev ppp0 
my-wan-gateway-ip-here dev ppp0  proto kernel  scope link  src my-real-ip-here
10.208.0.1 via 10.208.185.5 dev tun1 
10.208.185.5 dev tun1  proto kernel  scope link  src 10.208.185.6 
127.0.0.0/8 dev lo  scope link 
128.0.0.0/1 via 10.208.185.5 dev tun1 
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
my-vpn-ip via my-wan-gateway-ip-here dev ppp0

Meine OpenVPN-Konfiguration führt das Standard-Router-up.sh aus, das von dd-wrt erstellt wirdautomatisch. ICHnichtNehmen Sie Änderungen an diesem Skript vor.

root@myrouter:/tmp# cat /tmp/openvpncl/route-up.sh 
#!/bin/sh
iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -D INPUT -i tun1 -j ACCEPT
iptables -I INPUT -i tun1 -j ACCEPT

Meine DNS-Server (mit Comodo und OpenDNS)

root@myrouter:/tmp# cat resolv.dnsmasq
nameserver 8.26.56.26
nameserver 8.20.247.20
nameserver 208.67.222.222

Ich habe auch ein Skript verwendet, das ich im Internet gefunden habe, damit bestimmte IPs das VPN umgehen können. Dieses Skript ist Teil meines Startskripts (rc_startup). Ich brauche es, damit ich dieses spezielle Spiel auf meinen Tablets spielen kann.

#!/bin/sh
sleep 30
NO_VPN_LST="192.168.1.11 192.168.1.2"
[ -z "$NO_VPN_LST" ] && exit 0
WAN_GWAY="0.0.0.0"
while [ $WAN_GWAY == "0.0.0.0" ]; do
sleep 3
WAN_GWAY=`nvram get wan_gateway`
done
ip route add default via $WAN_GWAY table 10
for ipa in $NO_VPN_LST; do
ip rule add from $ipa table 10
done
ip route flush cache
exit 0

Antwort1

Bei Ihrem Problem handelt es sich wahrscheinlich um ein Problem des Standard-/Quellroutings.

Wenn das VPN nicht eingeschaltet ist, funktioniert alles, weil das Standard-Gateway Ihre Internetverbindung stört. Wenn Sie das VPN jedoch starten, werden einige neue Routen hinzugefügt: „0.0.0.0/1 via 10.208.185.5 dev tun1 und 128.0.0.0/1 via 10.208.185.5 dev tun1“. Dies hat den Nettoeffekt, dass das Standard-Gateway zum VPN-Endpunkt wird und nicht Ihre normale Verbindung.

Es gibt also zwei Lösungen, je nachdem, was Sie tun müssen -

Die einfachere Lösung besteht darin, diese beiden Zeilen, die das Standard-Gateway erstellen, zu entfernen und in Ihrer VPN-Verbindung bestimmte Routen zu programmieren (oder Ihren Anbieter bitten, diese zu programmieren), auf die Sie über VPN zugreifen möchten. Dies ist nur eine Option, wenn Sie ein VPN für einen bestimmten Zweck verwenden – z. B. für die Verbindung mit einem Unternehmensnetzwerk. Wenn Sie jedoch versuchen, Ihre Identität im weiteren Internet zu verbergen, ist dies nicht gut für Sie geeignet.

Die schwierigere Lösung ist „quellenbasiertes Routing“, was bedeutet, dass Sie zwei Routing-Tabellen einrichten müssen – die aktuelle ist eine Standardtabelle, und eine zweite Tabelle reagiert direkt auf Daten, die über Ihre normale Verbindung eingehen, mit einer anderen Standardroute. Das ist nicht ganz einfach, aber es gibt eine Reihe von Links, die zeigen, wie es geht, darunterHierUndHier (Die Schlüsselwörter, die Sie googeln sollten, sind "Source Routing" oder "Policy Routing". Wenn Sie jedoch wirklich Experte in diesem Bereich werden möchten, müssen Sie sich wahrscheinlich mit denLART- Kapitel 4 behandelt Policy-Routing)

verwandte Informationen