适用的应用:
- 需要两端主机同时能够主动向对方建立连接的应用
- 需要两端主机各自拥有静态的地址和端口组合的应用,如静态 FOU 隧道
限制条件:
- 应用不限制对端发出流量的端口,因为对端发送流量的端口仍然是随机的
- 流量跑在 UDP 协议上,或是双方互为服务器/客户端。因为 TCP 是面向连接的,不能在握手后又向另外一个端口转发数据。而 UDP 可以各发各的
所需软件:
- GOST v2 及其相关依赖
测试过的应用:
- GOST v2 自带 tun/tap 实现
- GRE over UDP (由于 GRE 协议的限制,倘若 gost 跑在本地每个主机通过这种方式只能创建一条隧道)
拓扑图:
ClientHost <====> NAT Gateway <====> Internet <====> ServerHost
配置
服务端配置:
server.json:
{
"Debug": false,
"Retries": 0,
"ServeNodes": [
"socsk5+tls://$USER:$PASS@:$SERVER_SOCKS_PORT"
]
}
客户端配置:
client.json:
{
"Debug": false,
"Retries": 0,
"ServeNodes": [
"udp://127.0.0.1:$CLIENT_TO_SERVER_APP_PORT/127.0.0.1:$SERVER_APP_PORT",
"rudp://127.0.0.1:$SERVER_TO_CLIENT_APP_PORT/127.0.0.1:$CLIENT_APP_PORT"
],
"ChainNodes": [
"socks5+tls://$USER:$PASS@$SERVER_ADDR:$SERVER_PORT"
]
}
ServeNodes 中的转发协议根据需要自行修改。