遠端支持:通過 ssh 隧道路由 RDP?
我想用 FOSS 解決方案替換 TeamViewer。我需要支持一些遠端電腦。我使用這樣的中間人伺服器在兩台電腦之間建立了一個有效的 SSH 隧道:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
這個 SSH 隧道現在正在工作。
接下來,我想使用 SSH 隧道從“Kubuntu_laptop”連接到“Kubuntu_desktop”上的桌面。
關於這條腿的連接:
Debian_Server<--nat_fw<--Kubuntu_desktop
這是它的建立方式:
autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22
我無法更改現有的監控埠 (5234) 或遠端 (-R) 埠號(本例中為 1234)。vnc 可以通過這個現有的 SSH 連接建立隧道嗎?**更新:**答案是
no
;我需要設置一個新的 SSH 隧道以與 vnc 一起使用,如此處所述。關於這條腿的連接:
Kubuntu_laptop--->nat_fw--->Debian_Server
我可以使用任何所需的 SSH 參數。
我無法打開路由器/防火牆上的任何埠。
向我推薦了 x11vnc 伺服器,所以我正在測試它。它在桌面上執行並偵聽埠 5900。但是,我在啟動 x11vnc 時沒有使用任何命令行選項,因此它可能尚未正確配置。
vnc 會在這個現有的 SSH 連接上工作嗎?請注意,沒有定義埠 5900。請注意,如上所述,我無法更改 -R 選項的埠號。
我有很多關於如何使它工作的問題,但一個是 vnc 是否可以偵聽現有埠(上例中的 -R 1234)。如果是這樣,我還能像現在一樣 ssh 進入那個盒子嗎?
這是我到目前為止所嘗試的:
在遠端桌面上(安裝了 x11vnc 伺服器):
tester@Kubuntu_desktop:~> autossh -M 5234 -i ~/.ssh/my_id_rsa -fNR 1234:localhost:5901 user@mydebian.com
確保 x11vnc 伺服器在埠 5901 上執行:
tester@Kubuntu_desktop:~> x11vnc -autoport 5901
在我的筆記型電腦上:
sudo ssh -NL 5901:localhost:1234 -i ~/.ssh/admin_id_rsa admin@mydebian.com
將本地 vnc 客戶端連接到 localhost 埠 5901
在 Kubuntu_laptop 中打開 KRDC 並連接到 (vnc)
localhost:5901
我的連接失敗 -
server not found
。
聽起來您目前在筆記型電腦和伺服器之間有一個預設的 ssh 連接:
Kubuntu_laptop—>nat_fw—>Debian_Server
修改ssh連接的參數,這樣你就有了
-fNL [localIP:]localPort:remoteIP:remotePort
例如:
-fNL 5900:localhost:1234
如果您的筆記型電腦在預設埠 5900 上使用 VNC,那麼您將告訴您的筆記型電腦 vnc 到 localhost,然後將埠 5900 上的 VNC 流量發送到埠 1234 上的伺服器。
接下來,您需要擷取到達伺服器端 1234 埠的流量並將其轉發到桌面:
Debian_Server<–nat_fw<–Kubuntu_desktop
修改桌面ssh連接的參數以包含
-fNR [remoteIP:]remotePort:localIP:localPort
例如:
-fNR 1234:localhost:5900
發送到伺服器 localhost 上的埠 1234 的所有流量現在都將傳輸到桌面並到達 VNC 伺服器希望監聽的埠 5900。
將埠 5900 更改為適合您使用的協議。對於 RDP 可能是 3389,對於 VNC 可能是 5901,因為可能正在使用 5900。另外,我只是隨機選擇了埠 1234 用於伺服器。
*針對您更新的問題的一些說明:
- ssh 的預設埠是 22,因此它
-p 22
是多餘的,因為它會覆蓋預設值並將其設置為 22- 看起來的設置
localPort:remoteIP:remotePort
與 ssh 用於隧道的埠無關,該埠仍為 22,除非您在客戶端上使用 -p 覆蓋它並覆蓋 ssh 伺服器上的埠。因此,前面提到的所有 ssh 命令都使用埠 22,您可以通過查看您的偵聽和已建立的網路連接來確認這一點。您無需在防火牆上打開任何其他埠。前面的命令是正確的。- 根據您在更新中添加的內容,桌面的命令應該是
autossh -M 5234 -fNR 1234:localhost:5900 user@mydebian.com
- 抱歉,就 VNC 客戶端而言,我沒有任何建議。您必須為此打開一個單獨的問題,但是我猜它會被否決,因為它是一個意見問題。