端口转发
本地转发
本地转发指的是在本机网络中配置的转发,如不同网卡之间的转发。同时,对于WSL2,也可以将其端口转发到物理机,以使用WSL2进行反向shell连接等功能。同时,GOST是在客户端指定服务器内网穿透所映射到的端口。
./gost.exe -L=tcp://:25567/172.24.64.202:25567
即将当前网络的25567
端口映射到172.24.64.202:25567
。
远程转发
服务端:
./gost -L "socks5+tls://:25566?bind=true"
客户端:
./gost -L rtcp://:25564/192.168.0.178:3001 -F socks5+tls://[服务端IP]:25566
根据rtcp服务指定的地址,通过转发链在服务端上监听25564 TCP端口。当收到请求后再通过转发链将数据转发给rtcp服务,rtcp服务再将请求转发到192.168.1.178:3001端口。
添加认证
socks5
服务可以设置用户名和密码认证,只需要修改命令中socks5+tls://:25566
部分为socks5+tls://username:password@:25566
。
端口转发实例
需求
内网有Linux运行OPENVPN服务,需要把其端口映射至公网,从公网连接内网的OPENVPN。
注意OPENVPN服务使用的协议选择为TCP,经测试,UDP协议在GOST转发下无法工作,暂时不清楚原因。
步骤
假设公网服务器IP为123.123.123.123
,本地OPENVPN服务运行在192.168.0.1:1194
,我需要把它映射到公网服务器的8090
端口,同时,公网服务器的8080
端口空闲:
配置OPENVPN:
使用一键配置脚本(注意配置协议为TCP)
./openvpn.sh --serveraddr 123.123.123.123 --port 1194 --proto tcp --auto
内网LINUX机器:
因为我们选择的是TCP协议,所以选择
rtcp
,但是测试中发现选择UDP
协议+rudp
情况下,无法正常连接。同时出于安全性考虑,我们为SOCKS5代理加上认证,因为GOST的内网穿透端口由客户端决定,不需要服务端同意,所以若他人知道我们公网服务器某个端口有运行GOST的SOCKS5代理且没有认证,那么他也可以通过我们的服务器来进行内网穿透。./gost -L rtcp://:1194/192.168.0.1:8090 -F socks5://username:[email protected]:8080
公网服务器:
./gost -L "socks5://username:password@:8080?bind=true"
然后客户端打开一键配置脚本生产的OVPN客户端文件即可。