Ssh

如何通過 ssh 隧道重定向受限網路中的網站

  • March 24, 2021

我已經建立了一個反向 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,您需要:

  1. 從主機 A 到主機 B 的隧道,即:
  • 讓 host-A 監聽埠8080
  • 通過隧道從該埠發送流量
  • 在 host-B ( aws) 上,將來自隧道的流量重定向到本地(即在 host-B 上)埠15872(我從您的評論中得到它;您可以選擇任何可用的埠;只要確保使用相同的埠即可命令)
# Execute on host-A
$ ssh -L 8080:localhost:15872 user@host-B
  1. 從主機 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 上重定向到主機80D 的埠。

引用自:https://unix.stackexchange.com/questions/480112