如何编写一款网络代理服务
本篇文章仅供技术交流,请遵循相关国家法律法规,作者不提供任何技术支持 没啥思路,文章暂时搁置 - 2022-03-02 前言 Socks5 协议 在编写相关代码之前,我们需要先将 Socks5 协议给了解一下 使用 WireShark 抓取 Socks5 报文 $ curl --socks5 157.90.140.29:1080 ip.sb 同时我也将 WireShark 抓取到的报文片段截取下来了,可以点击 下载 后,使用相同的软件进行本地分析 分析Go-Shadowsocks2的源码 tcp.go // Create a SOCKS server listening on addr and proxy to server. func socksLocal(addr, server string, shadow func(net.Conn) net.Conn) { logf("SOCKS proxy %s <-> %s", addr, server) tcpLocal(addr, server, shadow, func(c net.Conn) (socks.Addr, error) { return socks.Handshake(c) }) } // Create a TCP tunnel from addr to target via server....