Der Prozess zum Überspringen von ChatGPT von WireGuard oder OpenVPN unter Linux

Die Logik ist einfach. Suchen Sie die IP-Adresse von chat.openai.com und legen Sie die Routing-Richtlinie so fest, dass die VPN-Schnittstelle übersprungen wird. Standardmäßig oder Der gesamte Datenverkehr wird über die VPN-Schnittstelle geleitet. Ich stelle die Metriken jedoch niedriger ein als bei der WireGuard- oder OpenVPN-Schnittstelle und leite den Datenverkehr von chat.openai.com direkt über meinen Router statt über das VPN. Mein Setup sieht wie folgt aus:

  • Debian- oder Ubuntu-Linux-Desktop
  • WireGuard oder OpenVPN auf Linode oder AWS
  • Standard-Router-IPv4: 192.168.2.254
Beachten:Geben Sie diese Befehle auf dem Linux WireGuard VPN-Client ein, nicht auf dem WireGuard Linux-Server. Dies funktioniert also nur auf Linux-Desktop-Betriebssystemen, nicht auf macOS- oder Windows 10/11-Desktops.

Schritt 1 – Suchen Sie die Standardrouteninformationen

Sobald eine Verbindung zu WireGuard/OpenVPN besteht, verwenden Sie den IP-Befehl, um die Routing-Tabelle aufzulisten:

Das ist, was ich sehe:IP-Route anzeigen

Standard über 192.168.2.254 dev enp0s31f6 Proto-DHCP-Metrik 100 10.83.200.0/24 dev lxdbr0 Proto-Kernel-Bereichslink-Quelle 10.83.200.1 169.254.0.0/16 dev ln-sg Bereichslink-Metrik 1000 172.16.0.0/24 dev ln-sg Proto-Kernel-Bereichslink-Quelle 172.16.0.6 Metrik 50 192.168.2.0/24 dev enp0s31f6 Proto-Kernel-Bereichslink-Quelle 192.168.2.25 Metrik 100

 

Meine WireGuard-Schnittstelle mit dem Namen „ln-sg“ verwendet die Metrik 50 über der Standardmetrik 100. Der Trick besteht also darin, die IP-Adresse chat.openai.com mit einer niedrigeren Metrik hinzuzufügen, die direkt durch die IP-Adresse des Standard-Gateways 192.168.2.254 geleitet wird.

Beschreibung der automatischen Metrikfunktion für IPv4-Routing

Router-MetrikenIst ein Konfigurationswert, der für Routing-Entscheidungen verwendet wird. Routermetriken helfen Routern, aus mehreren möglichen Routen die beste Route zu einem Ziel auszuwählen. Routen verlaufen in Richtung des Gateways mit der niedrigsten Metrik. Routermetriken basieren typischerweise auf Informationen wie Pfadlänge, Bandbreite, Auslastung, Anzahl der Hops, Pfadkosten, Latenz, Maximum Transmission Unit (MTU), Zuverlässigkeit und Kommunikationskosten.

Tabelle 1: Die folgende Tabelle fasst zusammen
Die Bedingungen, die mein Linux-Desktop verwendet, um Routen Metriken zuzuweisen
Link/Ziel/Routemessen
chat.openai.com (oder eine andere IP/Domäne Ihrer Wahl)10
WireGuard/OpenVPN50
Vertragsbruch100

Schritt 2 – Suchen Sie die IP-Adresse von chat.openai.com

Verwenden Sie den Befehl „dig“ oder „host“:

$ d='chat.openai.com' $ dig +short A "$d" | grep -v '\.$' $ ips="$(dig +short A "$d" | grep -v '\.$')" $ echo "$ips"

Schritt 3 – Fügen Sie die IP-Adresse von chat.openai.com zur Routing-Tabelle hinzu

Lassen Sie uns einige Shell-Variablen festlegen:

Verwenden wir eine Bash-For-Schleife, um diese IPs hinzuzufügen:my_gw="192.168.2.254" #Standard-GW
metric="10" #Routing-Metrikwert

für i in $ips führe sudo ip route aus und füge "$i" über "$my_gw" Metrik "$metric" hinzu. Fertig

Möchten Sie neu hinzugefügte IP-Adressen auflisten? Verwenden Sie den Befehl „ip“:

Das ist, was ich sehe:

$ IP-Route anzeigen $ IP-Route anzeigen | grep -w 'Metrik 10'

 

104.18.2.161 über 192.168.2.254 dev enp0s31f6 Metrik 10 104.18.3.161 über 192.168.2.254 dev enp0s31f6 Metrik 10 

Schritt 4 – Testen

Starten Sie einen Webbrowser und greifen Sie darauf zu https://chat.openai.com/ Zu testende URL:

Der Prozess zum Überspringen von ChatGPT von WireGuard oder OpenVPN unter Linux

klicken zum Vergrößern

Voila. Das ist alles, von dem Sie unter Linux zu WireGuard oder OpenVPN wechseln können. Domänenmethode.

 

Schritt 5 – Entfernen Sie die IP-Adresse von chat.openai.com aus der Routing-Tabelle

Verwenden Sie den IP-Befehl erneut wie folgt:
für i in $ips; führen Sie sudo ip route del "$i" aus; fertig

Schritt 6 – Erstellen Sie ein Shell-Skript zur Automatisierung

chat.openai.com ändert seine IP-Adresse von Zeit zu Zeit. Hier ist ein allgemeines Skript zum Hinzufügen, Entfernen und Auflisten der Domain chat.openai.com und einiger anderer Domains, die bei Verbindung mit einem VPN nicht funktionieren.

Routing.policy-Shell-Skript

#!/bin/bash # routing.policy – Hauptskript zum Hinzufügen, Entfernen und Auflisten der Routing-Richtlinie # Autor: Vivek Gite {www.cyberciti.biz} unter GPLv 2.x+ # -------------------------------------------------------------------------------- set -e # Legen Sie Metrik und Gateway nach Ihren Anforderungen fest metric="10" my_gw="192.168.2.254" domain="chat.openai.com facebook.com fbcdn.net static.xx.fbcdn.net www.facebook.com" ips="" me="${0##*/}" # Wer bin ich? get_domain_ip_lists(){ für d in $domain mache ips="${ips} $(dig +short A "$d" | grep -v '\.$')" fertig ips="${ips/$'\n'/ }" # entferne '\n' ips="$(tr ' ' '\n'<<<"${ips}" | sort -u | check_for_root_user echo "${ips/$'\n'/,} wird zur Routing-Tabelle hinzugefügt ..." 1>&2 für i in $ips do if ! is_route_exists "$i" then sudo ip route add "$i" via "$my_gw" metric "$metric" else echo "$me-Route für $i existiert bereits, wird übersprungen..." fi done } remove_opneapi_route(){ check_for_root_user echo "${ips/$'\n'/,} wird aus der Routing-Tabelle entfernt ..." 1>&2 für i in $ips do if is_route_exists "$i" then sudo ip route del "$i" via "$my_gw" else echo "$me-Route für $i nicht gefunden, überspringen …" fi erledigt } show_openapi_route_status(){ echo "Routing-Informationen für die '$domain' (${ips/$'\n'/,}) …" # entferne neue Zeile aus den ${ips} für i in $ips, führe IP-Route aus, zeige "$i" erledigt } check_for_root_user(){ wenn [[ $EUID-ne 0 ]]; dann echo "$me-Skript muss als Root ausgeführt werden" 1>&2 exit 1 fi } ## main ## get_domain_ip_lists # setze '$ips' case "$me" in routing.policy.add) add_opneapi_route;; routing.policy.delete) remove_opneapi_route;; routing.policy.remove) remove_opneapi_route;; routing.policy.show) show_openapi_route_status;; routing.policy.status) show_openapi_route_status;; *) echo "Verwendung: routing.policy.add|routing.policy.delete|routing.policy.status";;

 

Verwenden Sie den Befehl ln, um einen Softlink zu erstellen

Verwenden Sie zunächst den Befehl chmod
Ausführungsberechtigungen festlegen Legen Sie nun diese Links fest:

Verwenden Sie den Befehl ls, um Folgendes zu überprüfen:

Ausgabe:chmod +x -v routing.policy
Modus von „routing.policy“ geändert von 0664 (rw-rw-r--) auf 0775 (rwxrwxr-x)
ln -sv routing.policy routing.policy.add
ln -sv routing.policy routing.policy.remove
ln -sv routing.policy routing.policy.delete
ln -sv routing.policy routing.policy.show
ln -sv routing.policy routing.policy.status
ls -l routing.policy*

-rwxrwxr-x 1 Vivek Vivek 1913 3. Feb. 00:07 routing.policy lrwxrwxrwx 1 Vivek Vivek 14 3. Feb. 00:08 routing.policy.add -> routing.policy lrwxrwxrwx 1 Vivek Vivek 14 3. Feb. 00:08 routing.policy.delete -> routing.policy lrwxrwxrwx 1 Vivek Vivek 14 3. Feb. 00:08 routing.policy.remove -> routing.policy lrwxrwxrwx 1 Vivek Vivek 14 3. Feb. 00:08 routing.policy.show -> routing.policy lrwxrwxrwx 1 Vivek Vivek 14 3. Feb. 00:08 routing.policy.status -> routing.policy

Testen Sie es:
sudo ./routing.policy.add
sudo ./routing.policy.status
Traceroute chat.openai.com #<--test routing
sudo ./routing.policy.delete

Zusammenfassen

Ich habe es mit WireGuard und OpenVPN auf meinen Debian- und Ubuntu-Linux-Desktops getestet. Es funktioniert einwandfrei und sollte mit jeder anderen Linux-Distribution funktionieren, solange der IP-Befehl funktioniert. Kurz gesagt, wir können das Routing bestimmter IP-Adressen über VPN-Verbindungen unter Linux (oder jedem anderen Betriebssystem wie macOS oder BSD) überspringen, solange Sie der Routing-Tabelle des Systems Routing-Regeln hinzufügen können. Sie können dieses Skript automatisch ausführen, wenn NetworkManager eine Verbindung zu Ihrer OpenVPN- oder WireGuard-Schnittstelle herstellt, indem Sie einen Hook hinzufügen. Platzieren Sie das Skript beispielsweise in /etc/network/if-up.d/ und machen Sie es ausführbar. Dadurch wird das Skript ausgeführt, wenn die VPN-Schnittstelle online geht. Wenn Sie das Skript ausführen möchten, wenn die VPN-Schnittstelle ausgefallen ist, platzieren Sie es in /etc/network/if-down.d/. Rufen Sie die Manpage von NetworkManager mit dem Befehl „man“ auf:
man 8 NetworkManager

1/5 (3 Stimmen)

Das ist eine gute Idee

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * Mark