我试图让HTTP / S代理服务器无需手动移植即可正常工作。
机器A不需要在路由器上配置任何东西。
根据this answer,我已经考虑过使用uPnP,但作为这个问题的标题,我想知道是否可以反转机器的角色。
而不是机器B启动连接,机器A将执行此操作。所以机器A将是客户端而机器B将是服务器。记住机器A事先知道机器B的IP地址。
在这种情况下,计算机A仍可用作代理,但在标准TCP连接中具有客户端的角色。
我知道这需要一个定制的代理服务器,这是没问题的,因为代理服务器是在python
中实现的,我可以访问源代码,并且可以修改它。
python
requests
。答案 0 :(得分:1)
一个简单的解决方案是OpenSSH端口转发。
首先将“机器B”上的端口20000转发到具有远程端口转发功能的“机器A”上的端口10000:
[A]$ ssh -N -R 20000:localhost:10000 Machine_B
然后在具有动态端口转发的“机器A”上的端口10000上设置隧道:
[A]$ ssh -N -D 10000 localhost
现在您可以在“机器B”上使用127.0.0.1:20000作为SOCKS5代理:
[B]$ curl --socks5 127.0.0.1:20000 example.com
答案 1 :(得分:0)
它称为“反向”,您需要shootback来反向TCP隧道,它像OpenSSH端口转发和pysocks之类的Socks5代理服务器一样工作,它比HTTP / S代理服务器更好。
在MachineB(您)上
python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10800
在MachineA(远程)上
python socks5.py start --port=1080
python slaver.py -m <MachineA_IP>:10000 -t 127.0.0.1:1080
现在在MachineB上,您可以将浏览器或任何应用程序设置为袜子5
localhost:10800