VNC & SSH : 本地 (win-putty) -> 跳 (linux) -> 遠端 (linux)
我在嘗試訪問遠端 VLC 和 SSH 時感到頭疼。這是這種情況:
Local
: NAT後面的Win box,動態IP。我想從這裡連接。
Hop
:Linux盒子,靜態IP伺服器
Remote
: NAT後面的Linux機器,動態IP。我想在這裡連接由於
remote
具有動態 IP 並且位於 NAT 之後,我將 ssh 反向隧道設置為hop
:ssh -R 55900:localhost:5900 -R 50022:localhost:22 user@hop
這一步似乎奏效了。從
hop
,我可以 sshremote
連接到 localhost 埠 50022 :ssh -p 50022 user@localhost
然後從本地,我使用 putty 創建 ssh 隧道到躍點:
一旦建立了第二條隧道
local
,當我嘗試訪問remote
SSH 或 VNC 時,連接將直接關閉。對於 SSH(通過 putty 的另一個實例),我收到錯誤“伺服器意外關閉連接”對於 VNC(TightVNC 查看器):“連接已正常關閉”在網上尋找解決方案後,我嘗試更改一些膩子選項,如“啟用 X11 轉發”或“允許代理轉發”,但沒有成功。
知道如何解決這個問題嗎?
謝謝
嗯…首先我會回答一個不同的問題:既然您可以從 LOCAL 訪問 HOP 上所需的埠,為什麼不讓 TightVNC Viewer 直接連接到 HOP:PORT?從連接的角度來看,您不需要這樣做。
其次(回答你原來的問題),如果你想確保你在整個過程中加密會話(完全合理),那麼我明白你為什麼要使用從 LOCAL 到 HOP。首先,在 HOP 上,請執行
netstat -an | grep 55900
並記下伺服器正在偵聽的 IP 地址…如果它是 127.0.0.1 或 localhost,您需要確保將 LOCALHOST 作為隧道規範的“遠端”部分油灰。如果是其他 IP 地址,請使用它。如果它是 * 或 0.0.0.0,那麼只需使用 localhost。編輯:我剛剛注意到您在 REMOTE 的 -R 隧道規範中使用了“localhost”。如果您沒有在膩子配置中使用 localhost,這幾乎肯定是問題的根源。
接下來,在 REMOTE 上,請執行
netstat -an | grep 590
(不是拼寫錯誤,真的是 590)以確保您的 VNC 軟體按預期在 5900 上偵聽……有時它在 5901 上,將其作為可能的問題源刪除很重要。如果這不能解決您的問題,請告訴我……