gost 是一个非常优秀的tunnel. 支持多种形式的端口映射。
本文只介绍远程端口映射方式的tunnel.
远程端口映射的意思就是,将本地端的某个服务的端口A(tcp/udp)映射到远程的某个端口P上, 用户通过访问远程的端口P来访问本地端的这个服务。
一个典型的应用场景就是内网穿透的场景。如下图所示:
server用VPS实现,可以提供公网访问
host A和host B处于内网中,没有公网IP地址,要想让外部的人员可以访问内网中的host B上的ssh服务( :22端口),在host A上通过gost 将host B的22端口映射到远程 server上的2222端口上。
下面我们来看具体的实现:
gost 采用gost 的v3版本来做。
下载地址: Releases · go-gost/gost · GitHub
# server
./gost -L socks5://:5555?bind=true
# host A
./gost -L rtcp://:2222/hostB_IP:22 -F socks5://server_IP:5555
相关文档位于:
SOCKSv4/v5 - GOSThttps://gost.run/tutorials/protocols/socks/
用relay也是可以的,参考gost的文档
Relay - GOSThttps://gost.run/tutorials/protocols/relay/
# server
./gost -L relay://:5555?bind=true
# host A
./gost -L rtcp://:2222/hostB_IP:22 -F relay://server_IP:5555