Ssh

如何為 SSH 隧道分配主機名

  • January 6, 2012

我正在使用 ssh root@my.server.ip -g -L 4321:localhost:28017 在我的託管服務提供商處建立從我的 MacBook 到我的專用伺服器的隧道。它運作良好。現在我想訪問遠端伺服器上的幾個管理站點(MongoDB 狀態頁面、RabbitMQ 頁面等,都在不同的埠上)。它們都綁定到遠端機器上的 127.0.0.1。如何將此 ssh 命令調整為

  • 為隧道分配一個名稱並在我的瀏覽器中使案例如“my.tunnel.name”
  • 能夠在我的瀏覽器中定義遠端埠;我想連接到 my.tunnel.name:port,以便能夠呼叫不同的站點

這可能與 ssh 嗎?我已經閱讀了手冊頁並在 Google 上搜尋了兩天,但它似乎不起作用。

–edit 2012-06-01 23:36– 感謝提供的答案和評論,埠轉發現在使用

ssh user@remote.server -D 4321

我可以在我的瀏覽器中將其設置為代理,瀏覽器會將對 localhost:anyport 的任何請求視為是在遠端伺服器上發出的。現在不需要使用名稱,因為瀏覽器僅適用於遠端伺服器站點。

你描述的不可能。但還是有好消息:

然而,可以建立與 SSH 伺服器的動態連接。這將在您的本地電腦上打開一個埠,您可以將瀏覽器的代理設置指向該埠,並允許您將隧道用作代理伺服器。但是您必須在瀏覽器中鍵入主機名/ip 和埠,就好像瀏覽器在 SSH 伺服器所在的機器上執行一樣。

命令如下所示:ssh user@server.example.com -D 1234

然後將瀏覽器的代理指向localhost:1234.

因此,如果您通過隧道連接到伺服器 A,並希望連接到伺服器 B,您可以在瀏覽器中輸入您在伺服器 A 上執行的瀏覽器中輸入的任何地址。如果在伺服器 A 上執行的瀏覽器無法連接到伺服器 B(如果伺服器 B 上的程序僅在 127.0.0.1 上偵聽)然後您仍然無法連接。聽起來您只有一台伺服器,但我想確保這一點很清楚。

如果您只有一台伺服器,則使用動態連接隧道進入它,設置您的代理。然後,您將能夠在瀏覽器中鍵入“localhost:1234”(例如),它將連接到在埠 1234 上執行在遠端伺服器上的服務。

Securit 旁注:永遠永遠永遠不要設置 root 可以 SSH 進入的伺服器!嚴重的安全漏洞。創建一個普通使用者帳戶(允許 su 或 sudo)並以該使用者身份登錄 SSH。

引用自:https://serverfault.com/questions/347499