![透過 SSH 建立隧道以透過網關使用 VNC](https://rvso.com/image/1344727/%E9%80%8F%E9%81%8E%20SSH%20%E5%BB%BA%E7%AB%8B%E9%9A%A7%E9%81%93%E4%BB%A5%E9%80%8F%E9%81%8E%E7%B6%B2%E9%97%9C%E4%BD%BF%E7%94%A8%20VNC.png)
有人給我任何關於這種情況的提示嗎?我的公司有一台桌上型電腦(運行 Ubuntu)。公司有 VPN 網關,可以幫助我透過 ssh 連接我的桌面電腦。現在我想用VNC遠端控製家裡的桌上型電腦。我已經安裝了 xtightvncserver 並且它已經在我的桌上型電腦中運行。
如何在 my-laptop 和 company-gw 之間建立 ssh 隧道以使用 vnc-client?有人提供詳細資訊將不勝感激。我想將我的計算機命名如下。
company-pc - 工作中的桌上型電腦(vnc 伺服器)
company-gw - 公司的 VPN 閘道(執行 openssh 伺服器)
my-laptop - 我家裡的筆記型電腦(vnc 用戶端)
答案1
據我了解您的問題,您無法從company-pc或company-gw連接到my-laptop,但您可以從my-laptop連接到company-gw,以及從company-pc連接到company-gw。是對的嗎?我不知道你所說的桌上型電腦是什麼。
如果我的筆記型電腦正在執行 sshd,請嘗試以下操作:
當你還在家裡時,從我的筆記型電腦:
ssh -R 8022:localhost:22 myusername@company-gw
登入後,(從任何地方)到 company-gw 上連接埠 8022 的連線將轉送到 my-laptop 上的連接埠 22。上班時保持登入狀態。
在工作中,從公司電腦:
ssh -L 5900:localhost:5900 -p 8022 myhomeusername@company-gw
當您執行此操作時,您實際上是透過 ssh 進入 my-laptop,因為 company-gw 上的連接埠 8022 被轉送到 my-laptop 上的連接埠 22。現在,您將 company-pc 上的連接埠 5900 轉送到 my-laptop 上的連接埠 5900(因為此指令中的「localhost」是 my-laptop 所稱的 localhost)。
現在透過 vnc 進入本機。它連接到您自己公司電腦上的連接埠 5900,該連接埠透過 company-gw 轉送到我的筆記型電腦。
如果任何轉送連接埠正在使用中,只需嘗試不同的連接埠號碼(8023 而不是 8022,5901 而不是第一個 5900),直到獲得空閒端口
答案2
這是另一種解決方法,以防伺服器沒有存取或管理權限來啟用/啟動 sshd,或者當您在我的筆記型電腦中沒有任何使用者/密碼對時。
在我的筆記型電腦上,執行以下命令:
ssh -R 8022:localhost:5900 gw-user@company-gw
這樣,從 company-gw:8022 開始的每次使用都會被重定向到 my-laptop:5900
在公司電腦上:
ssh -L 5900:localhost:8022 gw-user@company-gw
gw-user 的指令可以不同;重要的是兩端都可以存取 8022 連接埠。