snail007 / goproxy

🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
https://snail007.host900.com/goproxy/manual/zh/
GNU General Public License v3.0
15.87k stars 3.01k forks source link

两层TCP代理,想要拦截本地服务通过TCP访问的流量并代理转发,能够实现吗? #537

Open DeviZhao opened 1 year ago

DeviZhao commented 1 year ago

目标效果: 本地服务上启动一个Goproxy,另一台服务器上也启动一台,构成二级代理; 本地服务通过不固定的IP和指定端口进行tcp访问时,流量被本地服务器的Goproxy拦截,然后转发至另外一台服务的Goproxy,并由另外一台Goproxy完成对目标IP的TCP连接;

lowzj commented 1 year ago

redsocks + iptables 可以完成你的本地goproxy的功能

  1. iptables将本地所有非内部流量转发到redsocks
  2. redsocks将流量转发至另一个GoProxy服务

这里有个demo: https://github.com/lowzj/devcontiner-socks

这里redsocks应该可以也用GoProxy替换,未测试。