Ssh-Tunneling

創建到本地伺服器的隧道

  • October 5, 2012

使用 VPN,我通過遠端 Ubuntu 電腦上的 SSH 連接。在這台電腦上,我可以通過本地伺服器 (192.168.xx) 使用 telnet 進行瀏覽。

有什麼方法可以從終端或 Firefox 配置我的瀏覽器以創建 SSH 隧道之王,這樣我就可以直接在 GUI 瀏覽器中瀏覽 182.168.XX 了嗎?

編輯:

例子:

從我家 ( 127.0.0.1),使用 VPN,我通過 SSH 電腦連接自己:root@distant-server.com -p 5555. 它的ip是192.168.151.2

連接後,我可以瀏覽到 Intranet 伺服器:

telnet 192.168.151.100 80
GET /index.html HTTP/1.0

我所做的是在我的127.0.0.1Firefox GUI 中配置一些東西,這樣我就可以直接瀏覽到 192.168.151.100。

編輯2:

出於一個奇怪的原因,當我使用 SOCKS v4 而不是 v5 時,問題已得到解決。

您可以使用DynamicForwardssh 選項,如下所示:

ssh -o DynamicForward=localhost:6661 yourserver

這樣 ssh 客戶端將在 localhost 上的 6661 埠上偵聽傳入連接。它實現了 SOCKS 協議,因此您可以配置您的 Firefox 或任何其他 Web 瀏覽器,通過使用localhost:6661地址將其用作 HTTP 代理伺服器。這樣,Firefox 發出的所有 HTTP 請求實際上都是從您的遠端伺服器發出的,因此您可以使用192.168.X.X地址。

這個的shorer版本是-D選項,它做同樣的事情:

ssh -D localhost:6661 yourserver

節省自己打字

.ssh/config如果您想在每次連接到此主機時啟用此選項,您還可以在文件中配置此選項以節省您自己的輸入。這是範例:

host myhost
Hostname <yourvpnaddress>
DynamicForward localhost:6661
user <someuser>

現在,您所要做的就是執行:

ssh myhost

它相當於:

ssh -o DynamicForward=localhost:6661 -l <someuser> <yourvpnaddress>

僅對 192.168.XX 使用代理

如果您只想在使用192.168.X.X地址時通過此代理進行連接,您可以使用FoxyProxy Firefox 擴展(或類似的東西)。它允許您指定僅與指定 URL 關聯的代理地址列表。

將此代理用於其他應用程序

某些應用程序不支持 SOCKS 協議,因此無法將它們配置為使用此方法。幸運的是,有解決方案,它被稱為tsocks它作為一個包裝器,使用LD_PRELOAD技術將應用程序使用的所有正常套接字操作轉換為動態的 SOCKS 請求。它不適用於所有應用程序,但它應該適用於大多數應用程序。替代tsocksisdantesocksify包裝器,它還允許在遠端端解析主機名。

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