侧边栏壁纸
博主头像
叶落无痕

鸿雁长飞光不度,鱼龙潜跃水成文。

  • 累计撰写 11 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Gost隧道搭建

yeluo
2024-11-15 / 0 评论 / 0 点赞 / 199 阅读 / 0 字
温馨提示:
本文最后更新于2024-11-25,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

--相关链接--

GOST官方文档

GO 语言实现的安全隧道

功能特性

  • 多端口监听

  • 可设置转发代理,支持多级转发(代理链)

  • 支持标准 HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5 代理协议

  • Web 代理支持探测防御

  • SOCKS5 代理支持 TLS 协商加密

  • 支持多种隧道类型

  • Tunnel UDP over TCP

  • 本地/远程 TCP/UDP 端口转发

  • TCP/UDP 透明代理

  • 支持 Shadowsocks(TCP/UDP)协议

  • 支持 SNI 代理

  • 权限控制

  • 负载均衡

  • 路由控制

  • DNS 解析和代理

  • TUN/TAP 设备

一、软件安装

二进制文件

https://github.com/ginuerzh/gost/releases
wget <https://github.com/ginuerzh/gost/releases/download/v2.11.2/gost-linux-amd64-2.11.2.gz>
gzip -d gost-linux-amd64-2.11.2.gz
nohup ./gost-linux-amd64-2.11.2 -L=http2://gostadm:qw123321@:32080  > run.log 2>&1 &

源码编译

git clone <https://github.com/ginuerzh/gost.git>
cd gost/cmd/gost
go build

Docker

docker pull ginuerzh/gost

# 测试启动命令
docker run -it --rm -p 8080:8080 ginuerzh/gost -L "auto://:8080" -F "http2://qqqq:aaaa@domain:port"
# 带自启动命令
docker run -d --restart=always --name=gost -p 1080:1080 ginuerzh/gost -L "auto://:1080" -F "http2://qqqq:aaaa@domain:port"

Ubuntu Store

sudo snap install core
sudo snap install gost

二、使用配置说明

逻辑分层

在 GOST 中一个代理服务逻辑上被分成两层:协议层(Protocol)和传输层(Transport),每层有若干可选的类型,两层之间相互独立,并可以任意组合使用。

当 GOST 去连接一个代理节点时,会先按照传输层设置的传输类型进行交互,当传输层建立以后,再按照协议层设置的协议类型进行交互。

协议类型(Protocols)

支持的协议类型有:

  • ​http​ - HTTP

  • ​http2​ - HTTP2

  • ​socks4​ - SOCKS4 (2.4+)

  • ​socks4a​ - SOCKS4A (2.4+)

  • ​socks5​ - SOCKS5

  • ​ss​ - Shadowsocks

  • ​ss2​ - Shadowsocks with AEAD support (2.8+)

  • ​sni​ - SNI (2.5+)

  • ​forward​ - Forward

  • ​relay​ - TCP/UDP relay (2.11+)

传输类型(Transports)

支持的传输类型有:

  • ​tcp​ - 原始 TCP

  • ​tls​ - TLS

  • ​mtls​ - Multiplex TLS,在 TLS 上增加多路复用功能 (2.5+)

  • ​ws​ - Websocket

  • ​mws​ - Multiplex Websocket,在 Websocket 上增加多路复用功能 (2.5+)

  • ​wss​ - Websocket Secure,基于 TLS 加密的 Websocket

  • ​mwss​ - Multiplex Websocket Secure,在基于 TLS 加密的 Websocket 上增加多路复用功能 (2.5+)

  • ​kcp​ - KCP (2.3+)

  • ​quic​ - QUIC (2.4+)

  • ​ssh​ - SSH (2.4+)

  • ​h2​ - HTTP2 (2.4+)

  • ​h2c​ - HTTP2 Cleartext (2.4+)

  • ​obfs4​ - OBFS4 (2.4+)

  • ​ohttp​ - HTTP Obfuscation (2.7+)

  • ​otls​ - TLS Obfuscation (2.11+)

配置格式

端口转发相关的节点配置格式请参考端口转发

在 GOST 中节点的配置为类 URL 格式(适用于 -L​ ​和 -F​ ​参数):

[scheme://][user:pass@host]:port[?param1=value1&param2=value2]

scheme

​scheme​ ​可以是单独的协议类型或传输类型,或是二者的组合,也可以是空。

不指定任何类型

传输层默认为是原始 TCP 类型。

对于 -L​ ​参数,协议层默认为是 HTTP & SOCKS5,对于 -F​ ​参数,协议层默认为是 HTTP 类型。

gost -L :8080 -F :8888

仅指定协议类型

当仅指定协议类型时,传输层默认为原始 TCP 类型。

gost -L http://:8080 -F socks5://:1080

仅指定传输类型

当仅指定传输类型时,对于 -L​ ​参数,协议类型默认为 HTTP+SOCKS5。对于 -F​ ​参数,协议层默认为是 HTTP 类型。

gost -L tls://:443 -F ws://:1443

组合使用

gost -L http+tls://:443 -F socks5+wss://:1443

特殊的 schemes

除了上述的类型外,有几个比较特殊的 shemes:

  • ​https​ - 简写形式,等同于 http+tls​

  • ​redirect​ - TCP 透明代理 (2.3+)

gost -L redirect://:12345
  • ​ssu​ - Shadowsocks UDP relay

gost -L ssu://chacha20:123456@:8338

节点认证

user:pass

通过 user:pass​ ​指定服务的认证信息。对于 shadowsocks,user​ ​为加密类型。

gost -L admin:123456@:8080 -F ss://chacha20:123456@:8338

auth 参数 (2.9.2+)

如果认证信息中包含特殊字符,则可以通过 auth​ ​参数来设置:

gost -L :8080?auth=YWRtaW46MTIzNDU2 -F ss://:8338?auth=Y2hhY2hhMjA6QWEjJiEkMTIzNEA1Njc4

​auth​ ​的值为 user:pass​ ​base64 编码值

secrets 参数

也可以通过 secrets​ ​参数来设定多组认证信息:

gost -L=:8080?secrets=secrets.txt

secrets.txt 文件格式为按行分割的认证信息,每一行认证信息为用空格分割的 user-pass 对,以 #​ 开始的行为注释行。

# period for live reloading
reload      10s

# username password

admin           #123456
test\\user001    123456
test.user@002   12345678

​reload​ - 此配置文件支持热更新。此选项用来指定文件检查周期,默认关闭热更新。

注意: 当 secrets​ ​参数用于 shadowsocks 协议时,仅会使用第一项作为认证信息。

所有的认证信息都是用于协议层(Protocol)。

0

评论区