Networking

從網路外部訪問具有非靜態 IP 的機器

  • November 8, 2011

我有一台機器在大學網路中監聽 ssh 連接。他們配置網路的方式是為每個建築物分配一個外部 IP。我沒有能力改變網路基礎設施。假設我知道我要訪問的機器的目前非靜態內部 IP 以及它的外部 IP,我如何從外部建立連接(假設沒有任何類型的防火牆干擾)?

您必須做兩件事中的一件,並且它們都需要第三台具有公共 IP 地址的機器來執行您控制的軟體:

  1. 在該機器和一些具有公共 IP 的外部機器之間建立一個 VPN。連接到該 VPN 並使用它來訪問機器。

  2. 讓那台機器連接到作為代理執行的第三台機器。連接到第三台機器,讓它和您正在連接的機器合作,將來自該機器的出站連接附加到您到第三台機器的出站連接,並將該連接代理到機器的 SSH 客戶端的入站“環回”連接。

這是對方法 2 工作原理的更詳細說明。

  1. 在您希望通過 SSH 連接的機器上執行的程序與第三台機器建立出站連接。
  2. 您與第三台機器建立出站連接。您告訴它您希望與內部機器上的 SSH 客戶端建立連接。
  3. 第三台機器告訴內部機器您希望與它建立 SSH 連接。它與第三台機器建立另一個 TCP 連接。
  4. 第三台機器告訴你它已經準備好了。您與第三台機器建立 SSH 連接。第三台機器將 SSH 連接代理到在步驟 3 中建立的內部機器的第二個連接。
  5. 內部機器完成第 4 步中建立的連接和到 SSH 伺服器的新“環回”連接之間的連接和代理。
  6. 您現在正在與內部機器的 SSH 伺服器進行連接,該連接似乎是從自身到自身,但實際上是通過兩個代理(一個在第三台機器上,在它的兩個入站連接之間,一個在本地機器上)。

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