端口转发

GOST从2.1版本开始增加了对端口转发的支持。

节点配置

端口转发服务节点的配置与普通的代理节点有所不同:

scheme://[bind_address]:port/[host]:hostport[,[host]:hostport]

scheme - 端口转发模式, 本地端口转发: tcp, udp; 远程端口转发: rtcp, rudp; 转发隧道: tls, kcp等传输类型。

[bind_address]:port - 本地/远程绑定地址。

[host]:hostport[,[host]:hostport] - 目标访问地址,支持以逗号分割的多地址形式。注意:多地址支持需要2.6+版本。

TCP本地端口转发

将本地的TCP端口A映射到指定的目标TCP端口B,所有到端口A的数据会被转发到端口B。此功能类似于SSH的本地端口转发功能。

gost -L=tcp://:2222/192.168.1.1:22 [-F=..]

将本地TCP端口2222上的数据(通过代理链)转发到192.168.1.1:22上。

当代理链末端(最后一个-F参数)为forward+ssh类型时,GOST会直接使用SSH的本地端口转发功能:

gost -L=tcp://:2222/192.168.1.1:22 -F forward+ssh://:2222

服务端可以是标准的SSH程序,也可以是GOST的SSH转发模式:

gost -L forward+ssh://:2222

scheme必须是forward+ssh

TCP远程端口转发

将目标TCP端口B映射到本地TCP端口A,所有到端口B上的数据会被转发到端口A。此功能类似于SSH的远程端口转发功能。

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上。

SOCKS5多路复用模式

在2.5版本中,SOCKS5的BIND方法增加了对多路复用的支持,远程端口转发可以利用这个特性提高传输效率。

gost -L rtcp://:8080/192.168.1.1:80 -F socks5://:1080?mbind=true

客户端通过mbind=true参数开启SOCKS5的BIND多路复用模式。

SSH端口转发模式

当代理链末端(最后一个-F参数)为forward+ssh类型时,GOST会直接使用SSH的远程端口转发功能:

gost -L=rtcp://:2222/192.168.1.1:22 -F forward+ssh://:2222

服务端可以是标准的SSH程序,也可以是GOST的SSH转发模式:

gost -L forward+ssh://:2222

scheme必须是forward+ssh

UDP本地端口转发

将本地的UDP端口A映射到指定的目标UDP端口B,所有到端口A的数据会被转发到端口B。

gost -L=udp://:5353/192.168.1.1:53?ttl=60 [-F=... -F=socks5://172.24.10.1:1080]

将本地UDP端口5353上的数据(通过代理链)转发到192.168.1.1:53上。

每一个不同的客户端(不同的端口)对应一条转发通道,每条转发通道都有超时时间,当超过此时间且在此时间段内无任何数据交互,则此通道将关闭。 可以通过ttl参数来设置超时时间,默认值为60秒。

UDP远程端口转发

将目标UDP端口B映射到本地UDP端口A,所有到端口B上的数据会被转发到端口A。

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方式进行转发。

转发隧道

在2.5版本中TCP本地端口转发可以配合传输类型一起使用:

服务端:

gost -L tls://:443/:1443 -L sni://:1443

对应的scheme为传输类型,协议类型必须为空。

客户端:

gost -L :8080 -F forward+tls://server_ip:443

对应的schemeforward+transport格式,其中协议类型必须为forward

使用场景

加密

gost -L tls://:443/:8080 -L http://:8080

将8080端口的HTTP代理服务转成443端口的HTTPS代理服务

加速

gost -L kcp://:8388/:8338 -L ss://chacha20:123456@:8338

将8338端口的shadowsocks代理服务转成使用KCP传输。

comments powered by Disqus