Léame en inglés
Sitio wiki: v2.gost.run
Grupo de discusión de Telegram: https://t.me/gogost
Grupo de discusión de 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 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 eventualmente reenviará la solicitud a abcd:NNNN para procesarla a través de la cadena de proxy en el orden establecido por -F. Cada proxy de reenvío puede ser cualquier proxy de tipo HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks.
gost -L=tcp://:2222/192.168.1.1:22 [-F = ...]
Reenvíe datos en el puerto TCP local 2222 (a través de la cadena de proxy) a 192.168.1.1:22. Cuando el final de la cadena de proxy (el último parámetro -F) es un tipo de canal de reenvío SSH, gost utilizará directamente la función de reenvío de puerto local de 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 = ...]
Reenvíe datos en el puerto UDP local 5353 (a través de la cadena de proxy) a 192.168.1.1:53. Cada canal de reenvío tiene un tiempo de espera. Cuando se excede este tiempo y no hay interacción de datos dentro de este período, el canal se cerrará. El tiempo de espera se puede configurar mediante el parámetro ttl
y el valor predeterminado es 60 segundos.
Nota: Al reenviar datos UDP, si hay una cadena de proxy, el final de la cadena de proxy (el último parámetro -F) debe ser un proxy de tipo gost SOCKS5, y gost utilizará UDP sobre TCP para el reenvío.
gost -L=rtcp://:2222/192.168.1.1:22 [-F = ... -F = socks5://172.24.10.1:1080]
Reenvíe los datos de 172.24.10.1:2222 (a través de la cadena de proxy) a 192.168.1.1:22. Cuando el final de la cadena de proxy (el último parámetro -F) es un tipo de canal de reenvío SSH, gost utilizará directamente la función de reenvío de puerto remoto de 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]
Reenvíe los datos de 172.24.10.1:5353 (a través de la cadena de proxy) a 192.168.1.1:53. Cada canal de reenvío tiene un tiempo de espera. Cuando se excede este tiempo y no hay interacción de datos dentro de este período, el canal se cerrará. El tiempo de espera se puede configurar mediante el parámetro ttl
y el valor predeterminado es 60 segundos.
Nota: Al reenviar datos UDP, si hay una cadena de proxy, el final de la cadena de proxy (el último parámetro -F) debe ser un proxy de tipo GOST SOCKS5, y gost utilizará UDP sobre TCP para el reenvío.
HTTP2 de gost admite dos modos:
Servidor:
gost -L=http2://:443
Cliente:
gost -L=:8080 -F=http2://server_ip:443
Servidor:
gost -L=h2://:443
Cliente:
gost -L=:8080 -F=h2://server_ip:443
El soporte de gost para QUIC se basa en la biblioteca quic-go.
Servidor:
gost -L=quic://:6121
Cliente:
gost -L=:8080 -F=quic://server_ip:6121
Nota: el modo QUIC solo se puede utilizar como primer nodo de la cadena de proxy.
El soporte de gost para KCP se basa en las bibliotecas kcp-go y kcptun.
Servidor:
gost -L=kcp://:8388
Cliente:
gost -L=:8080 -F=kcp://server_ip:8388
gost cargará automáticamente el archivo de configuración kcp.json (si existe) en el directorio de trabajo actual, o puede especificar manualmente la ruta del archivo de configuración a través de los parámetros:
gost -L=kcp://:8388 ? c=/path/to/conf/file
Nota: el modo KCP solo se puede utilizar como el primer nodo de la cadena de proxy.
SSH de gost admite dos modos:
Servidor:
gost -L=forward+ssh://:2222
Cliente:
gost -L=rtcp://:1222/:22 -F=forward+ssh://server_ip:2222
Servidor:
gost -L=ssh://:2222
Cliente:
gost -L=:8080 -F=ssh://server_ip:2222 ? ping=60
Puede configurar el período de envío del paquete de latidos a través del parámetro ping
, en segundos. Los paquetes de latidos no se envían de forma predeterminada.
Proxy transparente basado en iptables.
gost -L=redirect://:12345 -F=http2://server_ip:443
Esta característica fue aportada por @isofew.
Servidor:
gost -L=obfs4://:443
Cuando el servidor se esté ejecutando, la dirección de conexión se imprimirá en la consola para que la use el cliente:
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
Cliente:
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
Para HTTP, TLS se puede utilizar para cifrar todo el proceso de comunicación, es decir, el proxy HTTPS:
Servidor:
gost -L=https://:443
Cliente:
gost -L=:8080 -F=http+tls://server_ip:443
El modo proxy HTTP2 de Gost solo admite el protocolo HTTP2 mediante cifrado TLS y no admite la transmisión HTTP2 de texto sin formato.
El modo de canal HTTP2 de gost admite los modos de cifrado (h2) y texto sin formato (h2c).
gost admite los métodos sin autenticación (0x00) y usuario/contraseña (0x02) del protocolo estándar SOCKS5, y extiende dos sobre esta base: tls (0x80) y tls-auth (0x82) para cifrado de datos.
Servidor:
gost -L=socks5://:1080
Cliente:
gost -L=:8080 -F=socks5://server_ip:1080
Si ambos extremos son gost (como se indica arriba), la transmisión de datos se cifrará (negociación utilizando el método tls o tls-auth); de lo contrario, se utilizará SOCKS5 estándar para la comunicación (método sin autenticación o usuario/contraseña).
El soporte de gost para Shadowsocks se basa en la biblioteca Shadowsocks-go.
Servidor:
gost -L=ss://chacha20:123456@:8338
Cliente:
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338
Actualmente sólo el servidor admite UDP Relay.
Servidor:
gost -L=ssu://chacha20:123456@:8338
gost tiene un certificado TLS incorporado. Si necesita utilizar otros certificados TLS, existen dos métodos:
gost -L= " http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file "
Para el cliente, puede habilitar la verificación del certificado del servidor y del nombre de dominio a través secure
:
gost -L=:8080 -F= " http2://server_domain_name:443?secure=true "
Para el cliente, puede especificar el certificado de CA para la fijación de certificados (Certificate Pinning):
gost -L=:8080 -F= " http2://:443?ca=ca.pem "
Funcionalidad de fijación de certificados aportada por @sheerun