- Möchten Sie OpenVPN unter Linux als Client installieren und bestimmte Routen über das VPN oder die normale Route leiten?
- Voraussetzungen
- OpenVPN-Installation
- Grundkonfiguration (manuelle Ausführung)
- Standardroutensteuerung: Standardverhalten des Servers
- Methode 1 — Nur einige IPs über VPN senden (Split-Tunnel)
- Methode 2 — Der gesamte Datenverkehr wird über VPN geleitet, außer einigen wenigen spezifischen IPs, die den normalen Weg nehmen (Umgehung).
- Methode 3 – Richtlinienbasiertes Routing
- Verbindung mit systemd (Autostart)
- DNS- und Namensauflösungsprobleme
- Vollständiges client.ovpn-Beispiel (Beispiel)
- Sicherheits- und Betriebstipps
- Häufige Fehler beheben
- Vergleich von Anwendungen und Tipps für verschiedene Nutzertypen
- Zusammenfassung und Schlussfolgerung
Möchten Sie OpenVPN unter Linux als Client installieren und bestimmte Routen über das VPN oder die normale Route leiten?
In dieser praktischen und technischen Schritt-für-Schritt-Anleitung zeigen wir Ihnen, wie Sie OpenVPN als Client auf gängigen Linux-Distributionen konfigurieren. Wir stellen Ihnen Beispieldateien, Skripte zum Starten und Stoppen der Verbindung sowie Methoden zum Split-Tunneling und IP-Bypass zur Verfügung und geben Tipps zur Benutzername-/Passwort-Authentifizierung.
Voraussetzungen
Bevor Sie beginnen, stellen Sie bitte sicher, dass Sie Folgendes haben:
- Linux-System (Ubuntu/Debian/CentOS/Fedora/Alma)
- Geschlossen OpenVPN Installiert
- Serverkonfigurationsdatei oder Datei .ovpn Vom VPN-Anbieter
- Benutzername/Passwort im Falle einer kombinierten Authentifizierung (Benutzername/Passwort + Zertifikat)
OpenVPN-Installation
Installationsbefehle für gängige Distributionen:
sudo apt update && sudo apt install openvpn
sudo dnf install openvpn
Grundkonfiguration (manuelle Ausführung)
Wenn die Datei client.ovpn Falls ja, verwenden Sie diesen Befehl, um es sofort auszuführen:
sudo openvpn --config client.ovpnWenn der Server Benutzername/Passwort verwendet und Sie diese nicht jedes Mal eingeben möchten, erstellen Sie eine Anmeldeinformationsdatei:
sudo tee /etc/openvpn/credentials <<'EOF'
myuser
mypassword
EOF
sudo chmod 600 /etc/openvpn/credentialsIn der Datei .ovpn Die folgende Zeile muss vorhanden sein oder hinzugefügt werden:
auth-user-pass /etc/openvpn/credentialsSicherheitshinweis: Aus auth-nocache Wird verwendet, um zu verhindern, dass OpenVPN das Passwort im Speicher zwischenspeichert:
auth-nocachechmod 600 Schützen Sie sich und nutzen Sie zertifikatbasierte Authentifizierung (Clientzertifikat) und tls-crypt/tls-auth für erhöhte Sicherheit.
Standardroutensteuerung: Standardverhalten des Servers
Das Standardverhalten von Routen wird oft vom Server bestimmt:
- Wenn der Server
redirect-gateway def1Wenn Sie darauf bestehen, wird Ihr gesamter Datenverkehr über das VPN geleitet (vollständiger Tunnel). - Um zu verhindern, dass der Server die Standardroute akzeptiert, können Sie Folgendes verwenden:
Route-NoPullVerwenden Sie die entsprechende Methode und fügen Sie anschließend die benötigten Routen manuell hinzu.
Methode 1 — Nur einige IPs über VPN senden (Split-Tunnel)
Wenn Sie möchten, dass nur bestimmte Adressen über das VPN gesendet werden, verwenden Sie Route-NoPull In der Datei client.ovpn Verwenden und fügen Sie die gewünschten Routen hinzu.
client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
route-nopull
route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0Erläuterung: Mit Route-NoPull Es werden keine Routen vom Server akzeptiert und Sie sind an die Zeilen gebunden. Route Sie leiten bestimmte Ziele über das VPN.
Methode 2 — Der gesamte Datenverkehr wird über VPN geleitet, außer einigen wenigen spezifischen IPs, die den normalen Weg nehmen (Umgehung).
Wenn der Server redirect-gateway def1 Wenn Sie möchten, dass bestimmte Adressen über die Standardroute (Internet) geleitet werden, müssen Sie das Hauptgateway speichern und die Umgehungsrouten neu schreiben.
A) Bewahren Sie das ursprüngliche Gateway vor dem Verbinden auf.
Beispielbefehle zum Abrufen des Standardgateways und -geräts vor der Verbindungsherstellung:
GW=$(ip route show default | awk '/default/ {print $3}')
DEV=$(ip route show default | awk '/default/ {print $5}')Nach dem Aufstieg tun0Fügen Sie die IPs, die Sie über das Gateway umgehen möchten, erneut hinzu:
sudo ip route add 203.0.113.0/24 via $GW dev $DEV
sudo ip route add 8.8.8.8/32 via $GW dev $DEVb) Automatisierung mit Auf-/Ab-Skript
In client.ovpn Fügen Sie die folgenden Zeilen hinzu, um die Skripte auszuführen:
script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.shBeispiel /etc/openvpn/client-up.sh:
#!/bin/bash
echo "$(ip route show default | awk '/default/ {print $3, $5}')" > /var/run/openvpn.origgw
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route add 8.8.8.8/32 via $GW dev $DEV
ip route add 203.0.113.45/32 via $GW dev $DEV
exit 0Beispiel /etc/openvpn/client-down.sh:
#!/bin/bash
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route del 8.8.8.8/32 via $GW dev $DEV || true
ip route del 203.0.113.45/32 via $GW dev $DEV || true
rm -f /var/run/openvpn.origgw
exit 0Vergessen Sie nicht, die Skripte auszuführen:
sudo chmod +x /etc/openvpn/client-up.sh /etc/openvpn/client-down.sh
Methode 3 – Richtlinienbasiertes Routing
Mithilfe von richtlinienbasiertem Routing können Sie quellspezifischen Datenverkehr durch das VPN leiten.
echo "200 vpnroute" | sudo tee -a /etc/iproute2/rt_tables
sudo ip rule add from 10.0.0.5/32 lookup vpnroute
sudo ip route add default dev tun0 table vpnrouteUm Informationen zu finden tun0 Und virtuelles Gateway:
ip -4 addr show dev tun0
ip route show dev tun0
Verbindung mit systemd (Autostart)
Für Konfigurationsdateien im Pfad /etc/openvpn/client/ Sie können die systemd-Unit ausführen:
sudo systemctl start openvpn-client@client
sudo systemctl enable openvpn-client@client
sudo journalctl -u openvpn-client@client -f
DNS- und Namensauflösungsprobleme
Wenn DNS vom Server übertragen wird, benötigen einige Distributionen ein Skript. update-resolv-conf oder Abstimmung mit systemd-aufgelöst Du hast.
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-confIn Systemen, die systemd-aufgelöst Sie erfordern möglicherweise zusätzliche Konfigurationen.
Vollständiges client.ovpn-Beispiel (Beispiel)
client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
auth-user-pass /etc/openvpn/credentials
auth-nocache
route-nopull
route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0
script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.sh
Sicherheits- und Betriebstipps
- Erstellen Sie die Anmeldeinformationsdatei mit
chmod 600Schützen. - Aus dem Kundenzertifikat und
tls-auth/tls-cryptDient zur Verhinderung einfacher DoS-Angriffe. - Aus auth-nocache Dient dazu, das Zwischenspeichern des Passworts im Speicher zu vermeiden.
- Halten Sie OpenVPN auf dem neuesten Stand und verwenden Sie moderne Verschlüsselungs-/Hash-Algorithmen wie z. B.
AES-256-GCMOderCHACHA20Verwenden. - Überwachen Sie die Protokolle und verwenden Sie systemd mit logrotate, um die Protokolle zu rotieren.
Für Umgebungen, die eine möglichst geringe Latenz erfordern (z. B. Händler/Gamer), sollten Sie nahe beieinander liegende Standorte oder Split-Tunneling nutzen, um nur die Dienste zu routen, die Sie benötigen, um Ping und Stabilität aufrechtzuerhalten.
Häufige Fehler beheben
- Verbindung konnte nicht hergestellt werden: Überprüfen Sie Port und Protokoll in der Firewall (ufw/iptables/Sicherheitsgruppe).
- DNS funktioniert nicht: von
update-resolv-confOder manuelle Einstellung/etc/resolv.confVerwenden. - Routen wurden nicht hinzugefügt: Stellen Sie sicher
script-security 2Es ist aktiviert und die Skripte sind ausführbar. - Nach einem Verbindungsabbruch: Der Server hat wahrscheinlich die Standardroute weitergeleitet; verwenden Sie die Methoden Bypass oder Route-NoPull.
Vergleich von Anwendungen und Tipps für verschiedene Nutzertypen
- Händler: Wichtig sind Ping und Stabilität; daher sollten nahe beieinander liegende Standorte genutzt und, wenn möglich, Split-Tunneling nur zur Verbindung mit dem Handelsserver verwendet werden.
- Gamer: Der Spieldatenverkehr sollte im Allgemeinen den kürzesten Weg nehmen; ein vollständiger Tunnel kann den Ping erhöhen, daher sollte nur der Spielserver oder ein Server in der Nähe verwendet werden.
- Website-Administratoren/DevOps: Es wird empfohlen, den OpenVPN-Client auf Servern mit systemd auszuführen und für bestimmte Dienste richtlinienbasiertes Routing zu verwenden.
- KI/Rendering: Für große Datenübertragungen eignen sich Server mit vollständigem Tunnel und hoher Bandbreite besser.
Zusammenfassung und Schlussfolgerung
Um den OpenVPN-Client unter Linux auszuführen, benötigen Sie normalerweise die Datei .ovpn Zusätzlich Auth-Benutzer-Passwort Und falls nötig Route-NoPull Dies ist für Split-Tunnel ausreichend. Um während eines vollständigen Tunnels bestimmte IPs zu umgehen, speichern Sie das vorherige Gateway und fügen Sie die entsprechenden Routen hinzu. Für komplexere Abläufe verwenden Sie richtlinienbasiertes Routing.









