LISEZMOI en anglais
Site wiki : v2.gost.run
Groupe de discussion Telegram : https://t.me/gogost
Groupe de discussion Google : 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 builddocker run --rm ginuerzh/gost -Vbrew install gostsudo snap install core
sudo snap install gostgost -L=:8080gost -L=admin:123456@localhost:8080gost -L=http2://:443 -L=socks5://:1080 -L=ss://aes-128-cfb:123456@:8338gost -L=:8080 -F=192.168.1.1:8081gost -L=:8080 -F=http://admin:[email protected]:8081gost -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:NNNNgost transmettra éventuellement la demande à abcd:NNNN pour traitement via la chaîne de proxy dans l'ordre défini par -F. Chaque proxy de transfert peut être n'importe quel proxy de type HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks.
gost -L=tcp://:2222/192.168.1.1:22 [-F = ...]Transférez les données sur le port TCP local 2222 (via la chaîne proxy) vers 192.168.1.1:22. Lorsque la fin de la chaîne proxy (le dernier paramètre -F) est un type de canal de transfert SSH, gost utilisera directement la fonction de transfert de port local de SSH :
gost -L=tcp://:2222/192.168.1.1:22 -F forward+ssh://:2222gost -L=udp://:5353/192.168.1.1:53 ? ttl=60 [-F = ...] Transférez les données sur le port UDP local 5353 (via la chaîne proxy) vers 192.168.1.1:53. Chaque canal de transfert a un délai d'attente. Lorsque ce délai est dépassé et qu'il n'y a aucune interaction de données pendant cette période, le canal sera fermé. Le délai d'attente peut être défini via le paramètre ttl et la valeur par défaut est de 60 secondes.
Remarque : lors du transfert de données UDP, s'il existe une chaîne proxy, la fin de la chaîne proxy (le dernier paramètre -F) doit être un proxy de type gost SOCKS5, et gost utilisera UDP sur TCP pour le transfert.
gost -L=rtcp://:2222/192.168.1.1:22 [-F = ... -F = socks5://172.24.10.1:1080]Transférez les données sur 172.24.10.1:2222 (via la chaîne proxy) vers 192.168.1.1:22. Lorsque la fin de la chaîne proxy (le dernier paramètre -F) est un type de canal de transfert SSH, gost utilisera directement la fonction de transfert de port distant de SSH :
gost -L=rtcp://:2222/192.168.1.1:22 -F forward+ssh://:2222gost -L=rudp://:5353/192.168.1.1:53 ? ttl=60 [-F = ... -F = socks5://172.24.10.1:1080] Transférez les données sur 172.24.10.1:5353 (via la chaîne proxy) vers 192.168.1.1:53. Chaque canal de transfert a un délai d'attente. Lorsque ce délai est dépassé et qu'il n'y a aucune interaction de données pendant cette période, le canal sera fermé. Le délai d'attente peut être défini via le paramètre ttl et la valeur par défaut est de 60 secondes.
Remarque : lors du transfert de données UDP, s'il existe une chaîne proxy, la fin de la chaîne proxy (le dernier paramètre -F) doit être un proxy de type GOST SOCKS5, et gost utilisera UDP-over-TCP pour le transfert.
Le HTTP2 de Gost prend en charge deux modes :
Serveur:
gost -L=http2://:443Client:
gost -L=:8080 -F=http2://server_ip:443Serveur:
gost -L=h2://:443Client:
gost -L=:8080 -F=h2://server_ip:443la prise en charge de QUIC par gost est basée sur la bibliothèque quic-go.
Serveur:
gost -L=quic://:6121Client:
gost -L=:8080 -F=quic://server_ip:6121Remarque : le mode QUIC ne peut être utilisé que comme premier nœud de la chaîne proxy.
La prise en charge de KCP par Gost est basée sur les bibliothèques kcp-go et kcptun.
Serveur:
gost -L=kcp://:8388Client:
gost -L=:8080 -F=kcp://server_ip:8388gost chargera automatiquement le fichier de configuration kcp.json (s'il existe) dans le répertoire de travail actuel, ou vous pouvez spécifier manuellement le chemin du fichier de configuration via les paramètres :
gost -L=kcp://:8388 ? c=/path/to/conf/fileRemarque : le mode KCP ne peut être utilisé que comme premier nœud de la chaîne proxy.
Le SSH de Gost prend en charge deux modes :
Serveur:
gost -L=forward+ssh://:2222Client:
gost -L=rtcp://:1222/:22 -F=forward+ssh://server_ip:2222Serveur:
gost -L=ssh://:2222Client:
gost -L=:8080 -F=ssh://server_ip:2222 ? ping=60 Vous pouvez définir la période d'envoi du paquet de battement de cœur via le paramètre ping , en secondes. Les paquets Heartbeat ne sont pas envoyés par défaut.
Proxy transparent basé sur iptables.
gost -L=redirect://:12345 -F=http2://server_ip:443Cette fonctionnalité a été contribuée par @isofew.
Serveur:
gost -L=obfs4://:443Lorsque le serveur est en cours d'exécution, l'adresse de connexion sera imprimée sur la console pour que le client puisse l'utiliser :
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
Client:
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
Pour HTTP, TLS peut être utilisé pour chiffrer l'ensemble du processus de communication, c'est-à-dire le proxy HTTPS :
Serveur:
gost -L=https://:443Client:
gost -L=:8080 -F=http+tls://server_ip:443Le mode proxy HTTP2 de Gost prend uniquement en charge le protocole HTTP2 utilisant le cryptage TLS et ne prend pas en charge la transmission HTTP2 en texte brut.
Le mode canal HTTP2 de Gost prend en charge les modes de cryptage (h2) et de texte brut (h2c).
gost prend en charge les méthodes no-auth (0x00) et user/pass (0x02) du protocole standard SOCKS5, et en étend deux sur cette base : tls (0x80) et tls-auth (0x82) pour le cryptage des données.
Serveur:
gost -L=socks5://:1080Client:
gost -L=:8080 -F=socks5://server_ip:1080Si les deux extrémités sont gost (comme ci-dessus), la transmission des données sera cryptée (négociation utilisant la méthode tls ou tls-auth), sinon le standard SOCKS5 sera utilisé pour la communication (méthode sans authentification ou utilisateur/pass).
la prise en charge de gost pour shadowsocks est basée sur la bibliothèque shadowsocks-go.
Serveur:
gost -L=ss://chacha20:123456@:8338Client:
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338Actuellement, seul le serveur prend en charge le relais UDP.
Serveur:
gost -L=ssu://chacha20:123456@:8338gost dispose d'un certificat TLS intégré. Si vous devez utiliser d'autres certificats TLS, il existe deux méthodes :
gost -L= " http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file " Pour le client, vous pouvez activer la vérification du certificat de serveur et du nom de domaine via secure :
gost -L=:8080 -F= " http2://server_domain_name:443?secure=true "Pour le client, vous pouvez spécifier le certificat CA pour l'épinglage de certificat (Certificate Pinning) :
gost -L=:8080 -F= " http2://:443?ca=ca.pem "Fonctionnalité d'épinglage de certificat fournie par @sheerun