Python反向代理连接
我正在尝试使HTTP/S代理服务器工作,而不必手动向前移植Python反向代理连接,python,tcp,proxy,Python,Tcp,Proxy,我正在尝试使HTTP/S代理服务器工作,而不必手动向前移植 计算机A已安装代理服务器 机器A位于NAT(或带防火墙的路由器)后面 机器B试图通过机器A代理浏览internet 机器B不在NAT后面 在建立任何连接之前,两台机器都相互了解 在满量程中,将有多台机器a,但只有一台机器B 机器A不需要在路由器上配置任何东西 根据,我曾考虑过使用uPnP,但作为这个问题的标题,我想知道是否有可能反转机器的角色 机器a将启动连接,而不是机器B启动连接。因此,机器A将是客户端,机器B将是服务器。记住,机
- 计算机A已安装代理服务器
- 机器A位于NAT(或带防火墙的路由器)后面
- 机器B试图通过机器A代理浏览internet
- 机器B不在NAT后面
- 在建立任何连接之前,两台机器都相互了解
- 在满量程中,将有多台机器a,但只有一台机器B
python
实现的,我可以访问源代码,并且可以修改它
- 这是否与普通HTTP/S代理兼容?具体来说,我将在机器B上使用
python
请求
- 这个方法有名字吗?研究反向或反向将我置于反向代理上,而AFAIK与我试图实现的目标无关
- 有什么我遗漏的吗?还是另一种解决方案?(除uPnP外)
- 一个简单的解决方案是OpenSSH端口转发
通过远程端口转发,将“机器B”上的第一个端口20000转发到“机器A”上的端口10000:
[A]$ ssh -N -R 20000:localhost:10000 Machine_B
[A]$ ssh -N -D 10000 localhost
然后使用动态端口转发在“机器a”上的端口10000上设置隧道:
[A]$ ssh -N -R 20000:localhost:10000 Machine_B
[A]$ ssh -N -D 10000 localhost
现在,您可以使用127.0.0.1:20000作为“机器B”上的SOCKS5代理:
它称为“反向”,您需要反向TCP隧道,它的工作原理类似于OpenSSH端口转发,而Socks5代理服务器比HTTP/S代理服务器更喜欢它
关于机器B(你)
在机器上(远程)
你为什么要自己写?有很多代理选择。我不想写我自己的。如果有一个有效的解决方案,我也没问题。
python socks5.py start --port=1080
python slaver.py -m <MachineA_IP>:10000 -t 127.0.0.1:1080
localhost:10800