UDP代理过SOCKS5在Python代理(Proxying UDP over SOCKS5 pro

2019-09-18 02:23发布

是否有可能使用任何SOCKS客户端的lib在SOCKS5代理发送UDP数据包在Python? SocksiPy似乎没有工作或也许我只是用错了。 下面的代码无法正常工作,它会尝试直接连接到目的地:

s = socks.socksocket ( socket.AF_INET, socket.SOCK_DGRAM )
s.setproxy(socks.PROXY_TYPE_SOCKS5,"socks.proxy.lan")
s.sendto ( payload, ( ip, port ) )

如果我改变SOCK_DGRAMSOCK_STREAM代码也不起作用,它不会尝试任何地方连接即可。

Answer 1:

你有没有试过用连接()和send()代替的sendto()? 从SocksiPy源代码来看,无连接模式尚未实现。

编辑

req = struct.pack('BBB', 0x05, 0x01, 0x00)

TCP流连接(0×01)似乎在这里硬编码。 SocksiPy因为它不会起作用。



Answer 2:

你有没有试过这样:

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)

与端口和“真”取代8080,如果你想启用RDNS为True。

如果你正在使用Python版本3及以上我建议你使用PySocks,这将是

socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)


文章来源: Proxying UDP over SOCKS5 proxy in Python