用 GOST 建立双向端口转发

 


适用的应用:

  1. 需要两端主机同时能够主动向对方建立连接的应用
  2. 需要两端主机各自拥有静态的地址和端口组合的应用,如静态 FOU 隧道

限制条件:

  1. 应用不限制对端发出流量的端口,因为对端发送流量的端口仍然是随机的
  2. 流量跑在 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 中的转发协议根据需要自行修改。

張貼留言

較新的 較舊