Ssh
如何通過 ssh 隧道重定向受限網路中的網站
我已經建立了一個反向 ssh 隧道到
aws
伺服器的受限網路,即訪問它,我 ssh 到aws
伺服器,然後從那裡我可以訪問某個自定義埠上受限網路中的機器。在這個受限網路上,有些設備可以通過 Web 瀏覽器進行配置。
我相信我可以做一些事情,比如
ssh -R 8080:deviceIP:80 user@aws
把它轉發到aws
機器上,但我仍然無法訪問它(除了通過非常慢的遠端 X 之外)。我如何通過管道deviceIP:80
連接到家裡的瀏覽器aws
?我已經嘗試了上面的 ssh 命令,然後將我家用電腦上的瀏覽器定向到
aws:8080
但沒有載入任何頁面……
SSH 隧道對於跨越不安全的網路很有用,在連接位於不同網路上的兩個端點時提供端到端加密。
據我所知(感謝評論),您所擁有的是:
- 本地主機-A:您的
localhost
, 在您的本地網路上(可能在防火牆/NAT 後面)- A可公開訪問的主機-B:
aws
伺服器- 不可公開訪問的主機-C:在受限制的遠端網路上(可能在防火牆/NAT 後面)
- 不可公開訪問的主機-D:您稱為 的主機
deviceIP
,它偵聽埠80
並位於遠端受限網路上如果您想將主機 A 連接到主機 D,讓您的瀏覽器通過埠訪問它
80
,您需要:
- 從主機 A 到主機 B 的隧道,即:
- 讓 host-A 監聽埠
8080
- 通過隧道從該埠發送流量
- 在 host-B (
aws
) 上,將來自隧道的流量重定向到本地(即在 host-B 上)埠15872
(我從您的評論中得到它;您可以選擇任何可用的埠;只要確保使用相同的埠即可命令)# Execute on host-A $ ssh -L 8080:localhost:15872 user@host-B
- 從主機 C 到主機 B 的隧道,即:
- 讓 host-B 監聽埠
15872
- 通過隧道從該埠發送流量
80
在主機 C(您的 Linux 伺服器)上,將該流量重定向到主機 D 上的埠# Execute on host-C $ ssh -R *:15872:host-D:80 user@host-B
這樣,在埠上向主機 A 發出的請求
8080
將通過隧道傳送到主機 B,重定向到15872
同一主機 B 上的埠,隧道傳送到主機 C 並在主機 C 上重定向到主機80
D 的埠。