LEIA-ME em inglês
Site Wiki: v2.gost.run
Grupo de discussão do Telegram: https://t.me/gogost
Grupo de discussão do 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 encaminhará a solicitação para abcd:NNNN para processamento por meio da cadeia de proxy na ordem definida por -F. Cada proxy de encaminhamento pode ser qualquer proxy do tipo HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks.
gost -L=tcp://:2222/192.168.1.1:22 [-F = ...]
Encaminhe dados na porta TCP local 2222 (por meio da cadeia de proxy) para 192.168.1.1:22. Quando o final da cadeia de proxy (o último parâmetro -F) for um tipo de canal de encaminhamento SSH, gost usará diretamente a função de encaminhamento de porta local do 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 = ...]
Encaminhe dados na porta UDP local 5353 (por meio da cadeia de proxy) para 192.168.1.1:53. Cada canal de encaminhamento possui um timeout. Quando esse tempo for excedido e não houver interação de dados nesse período, o canal será fechado. O tempo limite pode ser definido através do parâmetro ttl
e o valor padrão é 60 segundos.
Nota: Ao encaminhar dados UDP, se houver uma cadeia de proxy, o final da cadeia de proxy (o último parâmetro -F) deve ser um proxy do tipo gost SOCKS5 e gost usará UDP sobre TCP para encaminhamento.
gost -L=rtcp://:2222/192.168.1.1:22 [-F = ... -F = socks5://172.24.10.1:1080]
Encaminhe os dados em 172.24.10.1:2222 (por meio da cadeia de proxy) para 192.168.1.1:22. Quando o final da cadeia de proxy (o último parâmetro -F) for um tipo de canal de encaminhamento SSH, gost usará diretamente a função de encaminhamento de porta remota do 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]
Encaminhe os dados em 172.24.10.1:5353 (por meio da cadeia de proxy) para 192.168.1.1:53. Cada canal de encaminhamento possui um timeout. Quando esse tempo for excedido e não houver interação de dados nesse período, o canal será fechado. O tempo limite pode ser definido através do parâmetro ttl
e o valor padrão é 60 segundos.
Nota: Ao encaminhar dados UDP, se houver uma cadeia de proxy, o final da cadeia de proxy (o último parâmetro -F) deve ser um proxy do tipo GOST SOCKS5, e gost usará UDP sobre TCP para encaminhamento.
o HTTP2 do gost suporta dois 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
O suporte do gost para QUIC é baseado na biblioteca quic-go.
Servidor:
gost -L=quic://:6121
Cliente:
gost -L=:8080 -F=quic://server_ip:6121
Nota: O modo QUIC só pode ser usado como o primeiro nó da cadeia de proxy.
O suporte do gost para KCP é baseado nas bibliotecas kcp-go e kcptun.
Servidor:
gost -L=kcp://:8388
Cliente:
gost -L=:8080 -F=kcp://server_ip:8388
gost carregará automaticamente o arquivo de configuração kcp.json (se existir) no diretório de trabalho atual, ou você pode especificar manualmente o caminho do arquivo de configuração por meio de parâmetros:
gost -L=kcp://:8388 ? c=/path/to/conf/file
Nota: O modo KCP só pode ser usado como o primeiro nó da cadeia de proxy.
o SSH do gost suporta dois 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
Você pode definir o período de envio do pacote heartbeat através do parâmetro ping
, em segundos. Os pacotes de pulsação não são enviados por padrão.
Proxy transparente baseado em iptables.
gost -L=redirect://:12345 -F=http2://server_ip:443
Este recurso foi contribuído por @isomew.
Servidor:
gost -L=obfs4://:443
Quando o servidor estiver em execução, o endereço de conexão será impresso no console para o cliente usar:
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
Cliente:
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
Para HTTP, o TLS pode ser usado para criptografar todo o processo de comunicação, ou seja, proxy HTTPS:
Servidor:
gost -L=https://:443
Cliente:
gost -L=:8080 -F=http+tls://server_ip:443
O modo proxy HTTP2 do Gost oferece suporte apenas ao protocolo HTTP2 usando criptografia TLS e não oferece suporte à transmissão HTTP2 de texto simples.
O modo de canal HTTP2 do gost suporta modos de criptografia (h2) e texto simples (h2c).
gost suporta os métodos no-auth (0x00) e user/pass (0x02) do protocolo SOCKS5 padrão e estende dois nesta base: tls (0x80) e tls-auth (0x82) para criptografia de dados.
Servidor:
gost -L=socks5://:1080
Cliente:
gost -L=:8080 -F=socks5://server_ip:1080
Se ambas as extremidades forem gost (como acima), a transmissão de dados será criptografada (negociação usando o método tls ou tls-auth), caso contrário o SOCKS5 padrão será usado para comunicação (método sem autenticação ou usuário/passagem).
O suporte do gost para shadowocks é baseado na biblioteca shadowocks-go.
Servidor:
gost -L=ss://chacha20:123456@:8338
Cliente:
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338
Atualmente apenas o servidor oferece suporte ao UDP Relay.
Servidor:
gost -L=ssu://chacha20:123456@:8338
gost possui um certificado TLS integrado. Se você precisar usar outros certificados TLS, existem dois métodos:
gost -L= " http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file "
Para o cliente, você pode ativar o certificado do servidor e a verificação do nome de domínio por meio secure
:
gost -L=:8080 -F= " http2://server_domain_name:443?secure=true "
Para o cliente, você pode especificar o certificado CA para fixação de certificado (Certificate Pinning):
gost -L=:8080 -F= " http2://:443?ca=ca.pem "
Funcionalidade de fixação de certificado contribuída por @sheerun