Ich versuche, den Google Compute Engine-Server als VPN-Server für meinen gesamten Datenverkehr zu verwenden (ich lebe in Russland, hier gibt es einige Probleme mit der Zensur).
Es gibt ein Mini-Tutorial über VPN in GCE , aber es handelt von einem Netzwerk zwischen zwei Servern in GCE und nicht von OpenVPN.
Ich habe alle Schritte von einem anderen Tutorial über das Einrichten von VPN mit OpenVPN unter Debian ausgeführt . Ich kann vom Client aus eine Verbindung zu VPN herstellen, aber dann kann ich keine Verbindungen öffnen (ich kann nicht einmal Google anpingen). Auf dem Server kann ich alles wie gewohnt pingen und herunterladen.
Ich habe VPN auf Linode mit dem gleichen Setup und es funktioniert gut. Das Problem liegt also im GCE-Netzwerkrouting oder in den Firewall-Regeln.
Ich habe viele Varianten ausprobiert, aber nichts funktioniert. Bitte sehen Sie sich die Einstellungen an und sagen Sie mir, was ich ändern soll.
// Konfigurationszeilen entfernt, da das Problem behoben ist //
Antworten:
Zunächst einmal vielen Dank an @Shivox für die Antwort .
Und hier ist die schnelle Anleitung:
sudo su
apt-key update && apt-get update && apt-get -y upgrade && apt-get -y install python-software-properties && apt-get -y install software-properties-common && add-apt-repository -y ppa:pritunl && apt-get update && apt-get -y install pritunl
https://instance_ip:9700
pritunl
als Benutzername und PasswortIch verwende Viscosity für OS X und OpenVPN Connect für iOS als Clients. Aktivieren Sie unter "Viskosität" auf der Registerkarte "Netzwerk" die Option "Gesamten Datenverkehr über VPN-Verbindung senden".
quelle
Sie können das Problem lösen, dass Sie nicht über das VPN im Internet surfen können, obwohl Sie Ping, Traceroute ... auf eine der beiden folgenden Arten ausführen können:
Erstens können Sie das TCP-Protokoll anstelle von UDP verwenden, indem Sie "proto udp" in "proto tcp" sowohl in Client- als auch in Serverkonf-Dateien ändern.
Zweitens können Sie tap device anstelle von tun verwenden, indem Sie "dev tun" in "dev tap" sowohl in Client- als auch in Serverkonf-Dateien ändern.
Ich bin mir nicht sicher, um welches Problem es sich handelt, aber es scheint ein Problem von Google zu sein.
quelle
Denken Sie daran, dass Google VPC Pakete verwirft, die
source_ip
keine interne IP- Adresse einer VM mit externer IP- Adresse haben.In diesem Dokument https://cloud.google.com/compute/docs/vpc/advanced-vpc heißt es:
Wenn Ihr openVPN also nur Pakete vom anderen Netzwerk weiterleitet, werden die Pakete an public internal verworfen, da
source_ip
sie nicht mit der internen IP- Adresse einer vorhandenen VM übereinstimmen. Aus diesem Grund müssen Sie die Pakete NAT, die Ihr lokales Netzwerk verlassen, z. B. auf Ihrem VPN-Knoten.Das in der OZ_-Antwort erwähnte "Pritunl" funktioniert, da es das NAT automatisch konfiguriert.
quelle
Dies ist keine wirkliche Antwort, aber auf der Website konnte ich sie nicht als Kommentar zu Ihrer Frage hinzufügen.
Trotzdem habe ich fast die gleiche Konfiguration, die Sie oben beschrieben haben (ich habe den DNSMAQ auf dem Server nicht hart konfiguriert)
Leider funktioniert das VPN nicht wie erwartet. Ich kann eine Adresse auflösen, einige Internet-Hosts anpingen und sogar eine vollständige Ablaufverfolgung durchführen, während ich mit dem VPN verbunden bin. Wenn ich jedoch den Browser öffne und zu einer Site navigiere, ist die Verbindung sehr langsam. Ich weiß nicht, was die Verbindung beeinflussen kann, aber es ist wirklich ein seltsames Problem.
Vielleicht kann uns jemand von Google helfen, zu wissen, was los ist.
PS 1. Können Sie, wie bereits von anderen vorgeschlagen, überprüfen, ob die IP-Weiterleitung aktiviert ist? Für mich war die einzige Möglichkeit, sicherzustellen, dass der Wert für net.ipv4.ip_forward nach einem Neustart ordnungsgemäß wiederhergestellt wurde, nachdem ich eine benutzerdefinierte Regel für /etc/sysctl.d verwendet hatte
Beispielsweise können Sie die Regel mit dem folgenden Befehl hinzufügen:
PS 2. Wenn die Weiterleitung für Sie funktioniert, können Sie eine Trace-Route zu einem externen Host testen, während Sie mit dem VPN verbunden sind? Die Ausgabe, die ich dabei erhalten habe, ist etwas seltsam (Warum gibt es mehrere Hops auf derselben IP ????):
PS 3. Das einzige, was richtig zu funktionieren scheint, ist das VPN, das die externe IP von meinem Host verwendet, um auf das Internet zuzugreifen
quelle
Bearbeiten Sie,
/etc/sysctl.conf
indem Sie das Kommentarzeichen entfernen#net.ipv4.ip_forward=1
Dadurch sollte OpenVPN Ihren Datenverkehr leiten können.
quelle
Sie müssen die IP-Weiterleitung für Ihre VM-Instanz in der Google Cloud aktivieren, andernfalls erreichen Pakete Ihre VM nicht. Beachten Sie, dass dies unabhängig von dem ist
net.ipv4.ip_forward = 1
, was Sie in Ihrer VM einstellen können.Die IP-Weiterleitung kann nur einmal festgelegt werden, bevor Sie eine VM erstellen, und kann danach nicht mehr geändert werden. Um es für eine neue VM zu aktivieren, klicken Sie auf
Management, security, disks, networking, sole tenancy
:Networking
Klicken Sie dann in der Registerkarte aufNetwork Interface
und stellen Sie die IP-Weiterleitung aufON
:quelle
Sie müssen eine Regel hinzufügen, die den Datenverkehr für OpenVPN selbst zulässt:
quelle
Über das Netzwerk.
1) Aktivieren Sie den gesamten Verkehr vom OpenVPN-Subnetz (z. B. 10.8.0.0/24) an der Konsole
2) Ich empfehle Ihnen dringend, Masquerade zu Ihrem Netzwerk hinzuzufügen
3) Vergessen Sie nicht, das Paketrouting im Kernel zu aktivieren
Ein einmal
b) für immer in /etc/sysctl.conf:
quelle