Ubuntu

SSH連接到靜態ip

  • September 3, 2011

我在 Planet VRT-311S VPN 路由器上設置了一個靜態 IP,並將埠 22(UDP 和 TCP)轉發到 LAN 上的 Ubuntu 伺服器。我仍然無法連接到 Ubuntu 伺服器。

我目前在外部電腦上使用以下命令:

ssh -p 22 <router's ip address>

我仍然無法連接到 Ubuntu 伺服器。我該如何解決這個問題?

具有公共 IP 地址的路由設備需要將埠 22 流量轉發到防火牆後面的 Ubuntu 伺服器。如果您告訴我們它是哪種防火牆/邊緣設備,我們或許可以幫助您指明更具體的方向。

**編輯:**您需要檢查流量是否真正發送到您的 Ubuntu 伺服器。執行 tcpdump以查看 SSH 流量是否正在訪問您的伺服器。如果不是,您仍然有邊緣路由器問題。如果是,那麼您可以開始關注 Ubuntu 伺服器。一旦你弄清楚這一點,我們可能會為你提供更多幫助。

**編輯 2:**如果您為埠 22 設置埠轉發,則路由器會處理所有發往公共 IP 地址的埠 22 的流量的轉換,並立即將流量發送到 Ubuntu 伺服器。然後,Ubuntu 伺服器會看到來自路由器的流量,並且對埠 22 流量的任何響應都會發送到路由器,然後路由器會將其轉發給您。路由器通過維護誰在與哪個埠進行通信的表並為每個通信者分配唯一的會話來處理所有流量轉換。這樣,即使是多人也可以使用外部 IP 地址通過 ssh 與 Ubuntu 伺服器通信。

例如:如果你家裡有一個外部 IP 地址 1.1.1.1,你的辦公室路由器有一個外部 IP 地址 2.2.2.2,而 Ubuntu 伺服器有一個本地 IP 192.168.1.10(在 2.2.2.2 路由器後面),流量是這樣的:

  • 1.1.1.1 連接到 2.2.2.2:22
  • 2.2.2.2:22 被轉發到 192.168.1.10:22。
  • 192.168.1.10:22 在 2.2.2.2:22 響應路由器(嗯,實際上它響應路由器的本地 IP 地址,而不是公共 IP 地址。在此範例中可能是 192.168.1.1:22。 )
  • 然後路由器將資訊轉發回您家的公共 IP 1.1.1.1。

引用自:https://serverfault.com/questions/307824