Not-Root-User

有沒有可以在沒有 root 權限的情況下執行的輕型 HTTP 代理?

  • September 9, 2012

我所在的網路在大多數機器上都阻止了傳出埠 8080(即我無法訪問埠 8080 上的服務)。

然而,網路上的一些機器沒有這個限制。

我想在不受限制的機器上執行代理,並通過該代理將傳出請求轉發到 8080。

我在這些機器上都沒有 root 訪問權限。

我看過 squid,它在我想執行代理的機器上編譯得很好,但由於它是一項服務,我認為沒有 root 訪問權限我不能有效地執行它。

我也嘗試過 ssh 埠轉發,但由於不受限制的機器上沒有執行服務,我認為 ssh 不會解決我的問題。

如果有其他方法可以實現這一目標,我也對此持開放態度。

沒有 root 權限會阻止您在典型的 Linux 系統上偵聽低於 1024 的埠。

因此,只要您所在的系統沒有通過防火牆或iptables.

不確定 Squid 通常使用多少文件描述符,但如果您的管理員為此設置了限制,這可能是一個問題,以及其他問題。如果您使用 Squid 的過濾功能(例如 adzapper 腳本) - 請注意 Squid 會為每個傳入的 HTTP 請求生成一個程序,如果您的帳戶有程序限制,您可能會遇到它。(它也可能會做 Apache pre-fork 的事情,我已經有一段時間沒有玩了squid。)

要以您描述的方式進行埠轉發,您需要在第一台機器上執行的某種類型的轉發器、隧道器或代理轉發到第二台機器。因此,您將“SSH 隧道”進入不受限制的機器,並且您需要在不受限制的機器上執行一個程序,該程序接受埠上的流量,然後將其“轉發”到另一台主機。然後,您的隧道有 2 個躍點。可能rinetd可以輕鬆地為您做到這一點。

引用自:https://unix.stackexchange.com/questions/47607