我有 3 台機器,它們連成一條鏈,A、B、C。
A-->B-->C
A 是我的機器,B 是伺服器,C 是其他機器,上面有一些服務和 Web 伺服器。由於一些問題,我需要從A訪問C上的Web伺服器(連接埠80),我可以使用ssh從A登入B,然後從B登入C,但此時控制台太少了。我需要網頁瀏覽器,並且使用帶有選項的 ssh-X
不起作用(Firefox 啟動時 dbus 出現一些問題)。
我使用經典命令在 B 上進行連接埠轉發,為 ssh 轉發 22 連接埠:
ssh -L 2222:localhostB:22 user@ipC
但使用相同的方法轉送連接埠 80 不起作用:
ssh -L 8888:localhostB:80 user@ipC
我知道還有其他一些轉發可以使其工作,但我不明白如何以及什麼。
我需要這樣的東西:
A --> B (frd from B:8888 to C:80) --> C (port 80 web server)
因此,當我輸入 ipB:8888 時,我將被轉發到 C:80。
任何解釋必須做什麼的幫助或帶有命令的腳本將不勝感激。我從一篇部落格中註意到必須完成兩次ssh -L
轉發,但我不明白為什麼。
答案1
你走在正確的軌道上。
在A上:
ssh -L 8888:ipC:80 user@ipB -N
將使 C 上的 Web 伺服器可透過 A 上的 localhost:8888 進行存取
應OP要求提供更多詳細資訊:
我從你的問題假設你想訪問A上C的網頁伺服器(我猜你在A上有一個GUI環境,有網頁瀏覽器)。
您無法直接存取C(無論出於何種原因),但您可以存取B,B 又可以存取C。 Web 伺服器