使用 SSH 隧道瀏覽網頁
設置:
- 具有完全管理員權限的 Windows 工作站。
- 一個非常嚴格的 http 代理,但是,它只接受到埠 80 和埠 443 的連接。
- 我可以完全控制網際網路上的一個 linux 機器。
目前,我正在做的事情是:
- linux 機器執行 sshd,監聽 443 埠。
- 在 putty 中,我只需在代理配置面板中將代理配置為 HTTP 代理即可連接到 linux 盒子。
我想達到的目標:
在我的 Windows 機器上執行瀏覽器,並通過使用某種 ssh 隧道,不受任何限制地瀏覽網頁。
我相信這被稱為代理彈跳,或類似的東西。但我必須承認,我有點失落。
據我了解,我必須在膩子中配置一個隧道,例如在 windows 盒子上監聽埠 8889。然後我可以將瀏覽器配置為使用位於 localhost:8889 的代理
事情變得模糊的時刻就是現在。
在 linux 機器上,我必須在 SSH 配置文件中配置一個 ProxyCommand 或類似的東西來進行埠轉發?此外,我是否必須在 linux 機器上執行像 squid 這樣的代理?我發現某種教程描述了 Apache 的設置:
還是我完全走錯了方向,我必須在 windows 和 linux 機器上執行 ProxyTunnel 嗎?
謝謝你的幫助。
編輯:實際上,問題更多:我在隧道的 linux 端需要做什麼
讓它工作有兩個部分,所以我將分別解決它們。
連接到您的伺服器:
正如您所提到的,您只能與 443 和 80 上的代理進行通信,您需要通過代理將 SSH 連接傳送出去。您可以通過告訴 Putty 使用代理伺服器進行連接來做到這一點。在“代理”菜單下。選擇 HTTP,然後輸入公司代理的詳細資訊。
從您的文章看來,您的連接工作正常。
配置 Putty 在本地機器上創建 SOCKS 代理
putty 和 OpenSSH 都支持打開 SOCKS 代理。對於 OpenSSH,您將使用:
ssh -D <port>
然後將您的瀏覽器指向該埠。在膩子中,您創建一個“動態”埠轉發。您可以在“隧道”菜單下找到它。輸入您想要的偵聽埠,然後輸入您喜歡的任何內容作為目標(動態轉發將被忽略)。然後,您可以將瀏覽器代理設置指向該 localhost:<port>,它應該可以工作。
有關更多資訊,膩子文件的相關部分位於http://tartarus.org/~simon/putty-snapshots/htmldoc/Chapter3.html#using-port-forwarding。
正如其他人發布的那樣,您可能不想規避公司過濾,因為這不是您可能想要解釋的事情:)。