Skip to content

gost 2.1远程端口转发功能的使用说明

原文地址:https://groups.google.com/g/go-gost/c/_-akAbTe3ho

前一个帖子介绍了本地端口转发的使用,这里就再说说远程端口转发的使用。

gost远程端口转发的功能类似于ssh中-R参数的功能,与本地端口转发一样,也支持UDP和转发链。

还是用之前的场景:

假设有三台机器:local_host, proxy_host, remote_host

  • local_host可以访问proxy_host和remote_host

  • proxy_host无法访问local_host和remote_host

  • remote_host可以访问local_host

proxy_host <- local_host <-> remote_host

注意proxy_host与local_host是单通的,也就是说local_host在防火墙的后面。

TCP远程端口转发的使用:

我们想在proxy_host上用ssh登陆到remote_host上,在local_host上执行:

gost -L=rtcp://:2222/remote_host:22 -F=socks://proxy_host:1080

这里假设proxy_host上部署了gost socks5代理并监听在1080端口上。这样gost就会(通过转发链)连接到proxy_host,并让proxy_host监听TCP 2222端口,当我们使用ssh连接proxy_host的2222端口时,就相当于连接到了remote_host的22端口了:

ssh -p 2222 root@localhost

UDP远程端口转发的使用:

我们现在想在proxy_host上访问remote_host上的DNS服务,在local_host上执行:

gost -L=rudp://:5353/remote_host:53 -F=socks://proxy_host:1080

这里假设proxy_host上部署了gost socks5代理并监听在1080端口上。这样gost就会(通过转发链)连接到proxy_host,在proxy_host上监听UDP 5353端口,当我们向proxy_host:5353发送UDP数据,就相当于发送到了remote_host:53上了:

dig @localhost -p 5353 www.google.com

注意: TCP远程端口转发使用了socks5 bind协议,所以转发链的末端(最后一个-F参数)一定要是socks5类型; UDP远程端口转发使用了UDP-over-TCP,所以转发链的末端(最后一个-F参数)一定要是gost socks5类型。

Comments