socks5 icon indicating copy to clipboard operation
socks5 copied to clipboard

关于参数不太理解

Open yl604636754 opened this issue 2 years ago • 1 comments

NewClassicServer(addr, ip, username, password, tcpTimeout, udpTimeout)

这个接口即有addr,又有ip 。能说明设计之初,两者之间的区别么

yl604636754 avatar May 18 '23 08:05 yl604636754

UDP

addr:监听地址 ip: socks5 server 真正的 IP。

因为 socks5 server 的 UDP 地址是:当客户端向服务端询问的时候,需要由服务端告诉客户端的,所以你得先告诉服务端程序应该告诉客户端什么。记住这句话

有两种情况。有NAT和无NAT的环境。

无NAT环境:

比如你买了一个机器。公网IP是 1.2.3.4。此时你进入机器,你会发现网卡上的确绑定了 1.2.3.4。

就可以直接 addr 为 1.2.3.4:1080,ip 为 1.2.3.4。最终客户端使用的时候就是 1.2.3.4:1080

这时当客户端向服务端询问UDP 地址时,程序就需要告诉客户端,也就是这个 ip, 你好客户端,去连这个UDP吧: 1.2.3.4:1080

有NAT环境

比如你买了一个 google cloud 机器。公网IP是 5.6.7.8。此时你进入机器,你会发现网卡没有 5.6.7.8,只有内网 IP 比如 192.168.1.2。所以也无法监听 5.6.7.8,只能监听 192.168.1.2

这时 addr 只能为 192.168.1.2:1080,ip 为 5.6.7.8。最终客户端使用的时候就是 5.6.7.8:1080

这时当客户端向服务端询问UDP 地址时,程序就需要告诉客户端,也就是这个 ip, 你好客户端,去连这个UDP吧: 5.6.7.8:1080

具体解释看这边文章

https://www.txthinking.com/talks/articles/socks5-and-http-proxy.article

txthinking avatar May 18 '23 08:05 txthinking