Английский README
Wiki-сайт: v2.gost.run
Дискуссионная группа в Telegram: https://t.me/gogost
Дискуссионная группа 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 перенаправит запрос на abcd:NNNN для обработки через цепочку прокси в порядке, установленном параметром -F. Каждый прокси-сервер пересылки может быть любым прокси-сервером типа HTTP/HTTPS/HTTP2/SOCKS4/SOCKS5/Shadowsocks.
gost -L=tcp://:2222/192.168.1.1:22 [-F = ...]
Пересылайте данные через локальный TCP-порт 2222 (через цепочку прокси) на 192.168.1.1:22. Когда конец цепочки прокси (последний параметр -F) является типом канала пересылки SSH, gost будет напрямую использовать функцию переадресации локального порта 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 = ...]
Перенаправить данные на локальный порт UDP 5353 (через цепочку прокси) на 192.168.1.1:53. Каждый канал пересылки имеет тайм-аут. Если это время превышено и в течение этого периода времени не происходит взаимодействия с данными, канал будет закрыт. Тайм-аут можно установить с помощью параметра ttl
, значение по умолчанию — 60 секунд.
Примечание. При пересылке данных UDP, если существует цепочка прокси, конец цепочки прокси (последний параметр -F) должен быть прокси-сервером типа gost SOCKS5, и для пересылки gost будет использовать UDP через TCP.
gost -L=rtcp://:2222/192.168.1.1:22 [-F = ... -F = socks5://172.24.10.1:1080]
Перенаправьте данные с адреса 172.24.10.1:2222 (через цепочку прокси) на адрес 192.168.1.1:22. Когда конец цепочки прокси (последний параметр -F) является типом канала пересылки SSH, gost будет напрямую использовать функцию переадресации удаленного порта 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]
Пересылаем данные с адреса 172.24.10.1:5353 (через цепочку прокси) на адрес 192.168.1.1:53. Каждый канал пересылки имеет тайм-аут. Если это время превышено и в течение этого периода времени не происходит взаимодействия с данными, канал будет закрыт. Тайм-аут можно установить с помощью параметра ttl
, значение по умолчанию — 60 секунд.
Примечание. При пересылке данных UDP, если существует цепочка прокси, конец цепочки прокси (последний параметр -F) должен быть прокси-сервером типа GOST SOCKS5, и для пересылки gost будет использовать UDP-over-TCP.
HTTP2 Госта поддерживает два режима:
Сервер:
gost -L=http2://:443
Клиент:
gost -L=:8080 -F=http2://server_ip:443
Сервер:
gost -L=h2://:443
Клиент:
gost -L=:8080 -F=h2://server_ip:443
Поддержка QUIC в Госте основана на библиотеке quic-go.
Сервер:
gost -L=quic://:6121
Клиент:
gost -L=:8080 -F=quic://server_ip:6121
Примечание. Режим QUIC можно использовать только в качестве первого узла цепочки прокси.
Поддержка KCP со стороны gost основана на библиотеках kcp-go и kcptun.
Сервер:
gost -L=kcp://:8388
Клиент:
gost -L=:8080 -F=kcp://server_ip:8388
gost автоматически загрузит файл конфигурации kcp.json (если он существует) в текущий рабочий каталог, или вы можете вручную указать путь к файлу конфигурации через параметры:
gost -L=kcp://:8388 ? c=/path/to/conf/file
Примечание. Режим KCP можно использовать только в качестве первого узла цепочки прокси.
SSH Госта поддерживает два режима:
Сервер:
gost -L=forward+ssh://:2222
Клиент:
gost -L=rtcp://:1222/:22 -F=forward+ssh://server_ip:2222
Сервер:
gost -L=ssh://:2222
Клиент:
gost -L=:8080 -F=ssh://server_ip:2222 ? ping=60
Вы можете установить период отправки контрольного пакета через параметр ping
в секундах. Пакеты Heartbeat не отправляются по умолчанию.
Прозрачный прокси на основе iptables.
gost -L=redirect://:12345 -F=http2://server_ip:443
Эту функцию предоставил @isofew.
Сервер:
gost -L=obfs4://:443
Когда сервер запущен, адрес подключения будет напечатан на консоли, чтобы клиент мог его использовать:
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
Клиент:
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
Для HTTP можно использовать TLS для шифрования всего процесса связи, то есть HTTPS-прокси:
Сервер:
gost -L=https://:443
Клиент:
gost -L=:8080 -F=http+tls://server_ip:443
Режим прокси-сервера HTTP2 Госта поддерживает только протокол HTTP2 с использованием шифрования TLS и не поддерживает передачу открытого текста HTTP2.
Режим канала HTTP2 Госта поддерживает режимы шифрования (h2) и открытого текста (h2c).
Гост поддерживает методы стандартного протокола SOCKS5 без аутентификации (0x00) и пользователь/пароль (0x02) и на этой основе расширяет два метода: tls (0x80) и tls-auth (0x82) для шифрования данных.
Сервер:
gost -L=socks5://:1080
Клиент:
gost -L=:8080 -F=socks5://server_ip:1080
Если оба конца соответствуют стандарту GOST (как указано выше), передача данных будет зашифрована (согласование с использованием метода tls или tls-auth), в противном случае для связи будет использоваться стандарт SOCKS5 (метод без аутентификации или метод пользователя/пароля).
Поддержка Shadowsocks в Госте основана на библиотекеshadowsocks-go.
Сервер:
gost -L=ss://chacha20:123456@:8338
Клиент:
gost -L=:8080 -F=ss://chacha20:123456@server_ip:8338
В настоящее время только сервер поддерживает UDP Relay.
Сервер:
gost -L=ssu://chacha20:123456@:8338
gost имеет встроенный сертификат TLS. Если вам нужно использовать другие сертификаты TLS, есть два метода:
gost -L= " http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file "
Для клиента вы можете включить проверку сертификата сервера и доменного имени через параметр secure
:
gost -L=:8080 -F= " http2://server_domain_name:443?secure=true "
Для клиента можно указать сертификат ЦС для закрепления сертификата (Certificate Pinning):
gost -L=:8080 -F= " http2://:443?ca=ca.pem "
Функция закрепления сертификата предоставлена @sheerun