【发布时间】:2017-09-30 16:14:38
【问题描述】:
我正在尝试使 HTTP/S 代理服务器工作,而无需手动进行端口转发。
- 机器 A 已安装代理服务器
- 机器 A 位于 NAT(或带防火墙的路由器)后面。
- 机器 B 尝试通过机器 A 代理浏览互联网。
- 机器 B 不在 NAT 后面。
- 两台机器在建立任何连接之前就相互了解。
- 在全面情况下,会有多台机器 A,但只有一台机器 B。
机器 A 不需要在路由器上配置任何东西。
根据this answer,我曾考虑过使用 uPnP,但作为这个问题的标题,我想知道是否可以反转机器的角色。
不是机器 B 发起连接,而是机器 A 会这样做。所以机器 A 是客户端,机器 B 是服务器。记住机器 A 事先知道机器 B 的 IP 地址。
在这种情况下,机器 A 仍将充当代理,但在标准 TCP 连接中扮演客户端的角色。
我知道这需要一个定制的代理服务器,这没有问题,因为代理服务器是在python中实现的,我可以访问源代码,并且可以修改它。
- 这会与普通的 HTTP/S 代理兼容吗?具体来说,我将在机器 B 上使用
pythonrequests。 - 这个方法有名字吗?对 inverse 或 reverse 的研究让我找到了 reverse proxy,而 AFAIK 与我想要完成的事情没有任何关系。
- 我有什么遗漏吗?还是替代解决方案? (除了 uPnP)
【问题讨论】:
-
为什么要自己写?有许多代理选择。
-
我不想自己写。如果有适合我的解决方案。