我所处的网络中,大多数计算机的传出端口 8080 都被阻止(即我无法访问端口 8080 上的服务)。
然而,网络上的某些计算机没有此限制。
我想在不受限制的计算机上运行代理并通过该代理将传出请求转发到 8080。
我在这些机器上都没有 root 访问权限。
我研究过鱿鱼,它在我想要运行代理的机器上编译得很好,但由于它是一项服务,我认为在没有 root 访问权限的情况下我无法有效地运行它。
我还尝试过 ssh 端口转发,但由于不受限制的计算机上没有运行任何服务,我认为 ssh 不会解决我的问题。
如果有其他方法可以实现这一目标,我也愿意。
答案1
没有 root 权限会阻止您在典型 Linux 系统上侦听低于 1024 的端口。
因此,只要您所在的系统没有通过防火墙或iptables
.
不确定 Squid 通常使用多少个文件描述符,但如果您的管理员对此设置了限制,那么这可能是一个问题,以及其他问题。如果您正在使用 Squid 的过滤功能(例如 adzapper 脚本),请注意 Squid 会为每个传入的 HTTP 请求生成一个进程,如果您的帐户有进程限制,您可能会遇到该限制。 (它也可能会做 Apache 预分叉的事情,自从我玩 . 以来已经有一段时间了squid
。)
要按照您所描述的方式进行端口转发,您需要在第一台机器上运行某种类型的转发器、隧道器或代理来转发到第二台机器。因此,您将通过“SSH 隧道”进入不受限制的计算机,并且需要在不受限制的计算机上运行一个程序,该程序接受端口上的流量,然后将其“重新转发”到另一台主机。然后你的隧道有 2 个跃点。也许rinetd
可以轻松地为您做到这一点。