Englische README-Datei
Wiki-Site: v2.gost.run
Telegram-Diskussionsgruppe: https://t.me/gogost
Google-Diskussionsgruppe: https://groups.google.com/d/forum/go-gost
https://github.com/ginuerzh/gost/releases
git clone https://github.com/ginuerzh/gost.git
cd gost/cmd/gost
go build
docker run --rm ginuerzh/gost -V
brew install gost
sudo snap install core
sudo snap install gost
gost -L=:8080
gost -L=admin:123456@localhost:8080
gost -L=http2://:443 -L=socks5://:1080 -L=ss://aes-128-cfb:123456@:8338
gost -L=:8080 -F=192.168.1.1:8081
gost -L=:8080 -F=http://admin:[email protected]:8081
gost -L=:8080 -F=quic://192.168.1.1:6121 -F=socks5+wss://192.168.1.2:1080 -F=http2://192.168.1.3:443 ... -F=a.b.c.d:NNNN
gost leitet die Anfrage schließlich an abcd:NNNN zur Verarbeitung über die Proxy-Kette in der durch -F festgelegten Reihenfolge weiter. Jeder Weiterleitungs-Proxy kann ein beliebiger Proxy vom Typ HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks sein.
gost -L=tcp://:2222/192.168.1.1:22 [-F = ...]
Leiten Sie Daten über den lokalen TCP-Port 2222 (über die Proxy-Kette) an 192.168.1.1:22 weiter. Wenn das Ende der Proxy-Kette (der letzte -F-Parameter) ein SSH-Weiterleitungskanaltyp ist, verwendet gost direkt die lokale Port-Weiterleitungsfunktion von SSH:
gost -L=tcp://:2222/192.168.1.1:22 -F forward+ssh://:2222
gost -L=udp://:5353/192.168.1.1:53 ? ttl=60 [-F = ...]
Leiten Sie Daten über den lokalen UDP-Port 5353 (über die Proxy-Kette) an 192.168.1.1:53 weiter. Jeder Weiterleitungskanal hat eine Zeitüberschreitung. Wenn diese Zeit überschritten wird und innerhalb dieses Zeitraums keine Dateninteraktion stattfindet, wird der Kanal geschlossen. Das Timeout kann über den ttl
Parameter eingestellt werden und der Standardwert beträgt 60 Sekunden.
Hinweis: Wenn beim Weiterleiten von UDP-Daten eine Proxy-Kette vorhanden ist, muss das Ende der Proxy-Kette (der letzte -F-Parameter) ein Gost-SOCKS5-Proxy sein, und Gost verwendet UDP über TCP für die Weiterleitung.
gost -L=rtcp://:2222/192.168.1.1:22 [-F = ... -F = socks5://172.24.10.1:1080]
Leiten Sie die Daten von 172.24.10.1:2222 (über die Proxy-Kette) an 192.168.1.1:22 weiter. Wenn das Ende der Proxy-Kette (der letzte -F-Parameter) ein SSH-Weiterleitungskanaltyp ist, verwendet gost direkt die Remote-Port-Weiterleitungsfunktion von SSH:
gost -L=rtcp://:2222/192.168.1.1:22 -F forward+ssh://:2222
gost -L=rudp://:5353/192.168.1.1:53 ? ttl=60 [-F = ... -F = socks5://172.24.10.1:1080]
Leiten Sie die Daten von 172.24.10.1:5353 (über die Proxy-Kette) an 192.168.1.1:53 weiter. Jeder Weiterleitungskanal hat eine Zeitüberschreitung. Wenn diese Zeit überschritten wird und innerhalb dieses Zeitraums keine Dateninteraktion stattfindet, wird der Kanal geschlossen. Das Timeout kann über den ttl
Parameter eingestellt werden und der Standardwert beträgt 60 Sekunden.
Hinweis: Wenn bei der Weiterleitung von UDP-Daten eine Proxy-Kette vorhanden ist, muss das Ende der Proxy-Kette (der letzte -F-Parameter) ein Proxy vom Typ GOST SOCKS5 sein und Gost verwendet UDP-über-TCP für die Weiterleitung.
Gosts HTTP2 unterstützt zwei Modi:
Server:
gost -L=http2://:443
Kunde:
gost -L=:8080 -F=http2://server_ip:443
Server:
gost -L=h2://:443
Kunde:
gost -L=:8080 -F=h2://server_ip:443
Die Unterstützung von gost für QUIC basiert auf der quic-go-Bibliothek.
Server:
gost -L=quic://:6121
Kunde:
gost -L=:8080 -F=quic://server_ip:6121
Hinweis: Der QUIC-Modus kann nur als erster Knoten der Proxy-Kette verwendet werden.
Gosts Unterstützung für KCP basiert auf den Bibliotheken kcp-go und kcptun.
Server:
gost -L=kcp://:8388
Kunde:
gost -L=:8080 -F=kcp://server_ip:8388
gost lädt die Konfigurationsdatei kcp.json (falls vorhanden) automatisch in das aktuelle Arbeitsverzeichnis, oder Sie können den Pfad der Konfigurationsdatei manuell über Parameter angeben:
gost -L=kcp://:8388 ? c=/path/to/conf/file
Hinweis: Der KCP-Modus kann nur als erster Knoten der Proxy-Kette verwendet werden.
Gosts SSH unterstützt zwei Modi:
Server:
gost -L=forward+ssh://:2222
Kunde:
gost -L=rtcp://:1222/:22 -F=forward+ssh://server_ip:2222
Server:
gost -L=ssh://:2222
Kunde:
gost -L=:8080 -F=ssh://server_ip:2222 ? ping=60
Sie können den Sendezeitraum des Heartbeat-Pakets über den ping
Parameter in Sekunden festlegen. Heartbeat-Pakete werden standardmäßig nicht gesendet.
Transparenter Proxy basierend auf iptables.
gost -L=redirect://:12345 -F=http2://server_ip:443
Diese Funktion wurde von @isofew beigesteuert.
Server:
gost -L=obfs4://:443
Wenn der Server läuft, wird die Verbindungsadresse auf der Konsole gedruckt, damit der Client sie verwenden kann:
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
Kunde:
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
Für HTTP kann TLS verwendet werden, um den gesamten Kommunikationsprozess zu verschlüsseln, d. h. HTTPS-Proxy:
Server:
gost -L=https://:443
Kunde:
gost -L=:8080 -F=http+tls://server_ip:443
Der HTTP2-Proxy-Modus von Gost unterstützt nur das HTTP2-Protokoll mit TLS-Verschlüsselung und unterstützt keine Klartext-HTTP2-Übertragung.
Der HTTP2-Kanalmodus von Gost unterstützt die Modi Verschlüsselung (h2) und Klartext (h2c).
gost unterstützt die Methoden no-auth (0x00) und user/pass (0x02) des Standard-SOCKS5-Protokolls und erweitert auf dieser Basis zwei: tls (0x80) und tls-auth (0x82) für die Datenverschlüsselung.
Server:
gost -L=socks5://:1080
Kunde:
gost -L=:8080 -F=socks5://server_ip:1080
Wenn beide Enden gost sind (wie oben), wird die Datenübertragung verschlüsselt (verhandeln Sie mit der TLS- oder TLS-Auth-Methode), andernfalls wird Standard-SOCKS5 für die Kommunikation verwendet (No-Auth- oder User/Pass-Methode).
Die Unterstützung von Gost für Shadowsocks basiert auf der Shadowsocks-Go-Bibliothek.
Server:
gost -L=ss://chacha20:123456@:8338
Kunde:
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338
Derzeit unterstützt nur der Server UDP Relay.
Server:
gost -L=ssu://chacha20:123456@:8338
gost verfügt über ein integriertes TLS-Zertifikat. Wenn Sie andere TLS-Zertifikate verwenden müssen, gibt es zwei Methoden:
gost -L= " http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file "
Für den Client können Sie die Überprüfung des Serverzertifikats und des Domänennamens über secure
Parameter aktivieren:
gost -L=:8080 -F= " http2://server_domain_name:443?secure=true "
Für den Client können Sie das CA-Zertifikat für das Zertifikat-Pinning (Certificate Pinning) angeben:
gost -L=:8080 -F= " http2://:443?ca=ca.pem "
Funktion zum Anheften von Zertifikaten, bereitgestellt von @sheerun