ginuerzh / gost

GO Simple Tunnel - a simple tunnel written in golang
MIT License
15.57k stars 2.44k forks source link

有没有类似socat作为SOCKS5代理的客户端进行端口转发的功能? #744

Open quaggalinux opened 2 years ago

quaggalinux commented 2 years ago

之前使用socat作为 SOCKS5 代理的客户端进行端口转发,具体的命令格式如下: socat TCP4-LISTEN:<本地端口>,reuseaddr,fork SOCKS5:<代理服务器IP>:<远程地址>:<远程端口>,socksport=<代理服务器端口> 然后可以用nginx的location反代这个localhost:<本地端口>,效果是socat代替nginx用sock5代理把远程地址的网页内容拉回来,然后等于nginx可以proxy_pass了socks5代理(因为现在nginx不支持这样的反代功能)

不知gost能否做到同样的功能,如果能的话,具体命令格式是怎么样的呢?

RocFang commented 2 years ago

gost支持socket5 代理

soffchen commented 2 years ago

gost -L tcp://:<本地端口>/<远程地址>:<远程端口> -F socks://<代理服务器IP>:<代理服务器端口>

quaggalinux commented 2 years ago

@soffchen 你介绍这个命令并不是socat所达到的功能,socat是把自己作为一个浏览器客户端,把网页内容拉回来,然后自己同时也作为一个虚构的web服务器,然后把网页内容以web服务器反馈的方式吐给nginx,因为nginx只能反代给一个web服务器。这个需求是有一些特殊的web服务器访问时必须隐藏中间的转发环节,让这个web服务器认为第一个转发点已经是一个真正的客户端了。

Herbert8 commented 2 years ago

socat用得少,最好能说下需求,再看gost怎么实现。