SSH 隧道通過 localhost 工作,但不能通過 IP 地址或 DNS 查找
我的工作中有兩台電腦 - 一台具有公共 IP 地址,另一台具有 Apache 伺服器,在埠 80 上執行基於瀏覽器的應用程序。具有公共 IP 地址的電腦的埠 80 接收與公共 DNS 的流量。域.edu。裝有 Apache 伺服器的電腦的 80 埠不是公共埠,但可以通過 private.domain.edu 在本地網路上訪問。
我想創建一個從公共電腦的埠 80 到實現了 Apache 伺服器的電腦的本地 SSH 隧道。到目前為止,我已經從具有公共 IP 地址的電腦上嘗試了這個命令:
sudo ssh admin1@private.domain.edu -L 80:private.domain.edu:80
當我執行這個特定命令時,我可以通過在 public.domain.edu 上執行瀏覽器並在地址欄中鍵入“localhost”來訪問 private.domain.edu 上的 Web 應用程序。但是,當我在地址欄中輸入 public.domain.edu 的 IP 地址時,它不會隧道到 private.domain.edu 的應用程序,而是說找不到 URL。此外,當我在地址欄上鍵入 public.domain.edu 的 DNS 查找時,它仍然不起作用。
如何修復 SSH 隧道,以便當我在地址欄上鍵入 public.domain.edu(或其 IP 地址)時,我可以訪問 private.domain.edu 的 Web 應用程序?
試試
sudo ssh admin1@private.domain.edu -g -L 80:private.domain.edu:80
。正如手冊頁所述:-g 允許遠端主機連接到本地轉發埠。
但是請注意,這可能不是完成您想要做的事情的最佳方式。如果您想從外部啟用對內部 Web 應用程序的訪問,但只是為了您自己,那麼某種 VPN 將不太容易被濫用;如果您想為所有人啟用它,請與您的本地網路管理員交談並獲得一個通過防火牆的埠。