假設我有兩台機器,都運行 Linux;
機器 A 正在運行 VPN 伺服器並且位於 NAT 之後。
機器 B 是 VPN 用戶端。
機器 A 創建從自身到機器 B 的反向 SSH 隧道,公開機器 B 上的端口,該端口連接回機器 A 上運行的 VPN。
如何透過 SSH 反向隧道從機器 B 連接到機器 A 的 VPN 伺服器?
答案1
SSH 隧道僅適用於 TCP,因此您的 VPN 伺服器必須設定為使用 TCP 進行連線。您可以像連接到機器 A 一樣連接機器 B 上的隧道端點。
答案2
假設我們有這樣的設定:
- 機器 B 具有公共網域 machine.b,連接埠 22 將存取機器 B 的 SSH 伺服器。
- 機器 A 的本機 IP 位址為 192.168.10.2,其 VPN 伺服器使用連接埠 1194。
透過反向 SSH 連線建立 VPN 連線的步驟:
- 電腦 A 使用下列指令與電腦 B 建立 SSH 連線: ssh -i "/path/to/key/file" -R 2500:192.168.10.2:1194[電子郵件受保護]-p 22
- 機器 B 與 127.0.0.1:2500 建立 VPN 連接
結果,從機器 B 到 localhost (127.0.0.1) 連接埠 2500 的連線將透過 SSH 隧道重定向到機器 A 上的 192.168.10.20 連接埠 1194,該連接埠是機器 A 的 VPN 伺服器。
我總是使用這個設定作為我的 DIY VPN 伺服器,以防公司的 VPN 維護。