無法在 Hetzner VPS 上使用外部 IP

無法在 Hetzner VPS 上使用外部 IP

我最近更改了 Hetzner 上的虛擬伺服器模型。新的有一個外部 IPv4 位址,可以透過網路存取它(正如它應該的那樣)。但我無法在配置中使用此外部 IP:iptables規則無效,openvpn伺服器無法使用此 IP 等在任何連接埠上綁定偵聽器。它,一切都像魅力一樣。172.31.x.xifconfig

在我的舊伺服器上,我可以在任何地方使用它。所以我只是想知道:為什麼外部 IP 不適用於我的新伺服器?作業系統是Ubuntu 15.04

答案1

Hetzner 已停止向虛擬伺服器指派公共 IPv4 位址。據我所知,這項變更是在他們將產品名稱從 VQ 更改為 CX 時發生的。但產品說明中並未提及 NAT 的使用。

最終 Hetzner 推出了一個更新的雲端平台,其中虛擬機器可以獲得真正的公共 IPv4 位址和路由的 /64 IPv6 前綴。兩個版本共享 CX 名稱。

2012 年和 2013 年訂購的虛擬伺服器將保留其公共 IPv4 位址,直到 2019 年 VQ 產品線停產為止。但 2016 年訂購的虛擬伺服器只有 RFC1918 位址,Hetzner 不會將公用 IPv4 位址路由到此類虛擬伺服器。

他們仍然為每個虛擬伺服器分配一個專用的公共 IPv4 位址,並將其 NAT 到分配的 RFC1918 位址。 Hetzner 認為這不是問題,因為它是 1:1 NAT。

正如您所發現的,配置伺服器時很容易出錯。你必須了解這個 NAT。每當您配置某些內容時,您都必須尋找映射。對於我們採用這種配置的第一個虛擬伺服器,由於這個原因,它在最初幾天內兩次配置錯誤。

任何依賴於了解公共 IPv4 位址的軟體要么會崩潰,要么需要特殊配置。此外,某些 VPN 和 IP 隧道可能會出現問題,因為隧道封包不會經過 NAT。

如果您已確定這些潛在問題不會影響您的預期用途,並且您願意在進行配置變更時考慮公共位址和專用位址之間的映射,那麼您可以接受這種情況。

但請注意,大多數 NAT 實作都是有狀態的。如果 NAT 確實是有狀態的,則當狀態遺失時,您可能會遇到 TCP 連線停滯的情況。

我不知道Hetzner使用的NAT是有狀態的還是無狀態的。我能想到的有狀態測試最明顯的方法是建立隧道連接,並在建立 TCP 連接後停用隧道。唉,這種隧道確實行不通,因此為了執行此實驗,必須先複製其 1:1 NAT 配置。我沒有嘗試這個相當複雜的實驗。

您可以選擇以下選項:

  • 升級到較新的 CX 線路,Hetzner 將為您提供真實的 IPv4 位址和路由 /64 IPv6 前綴。
  • 接受您的流量將通過 1:1 NAT 的事實,但會帶來一些缺點。
  • 在 IPv6 上處理所有重要流量 - 如 Hetzner 一樣,無需 NAT 即可正確路由 IPv6 流量。
  • 切換到專用伺服器(假設這些伺服器仍然獲得公共 IPv4 位址,這很難弄清楚,因為產品描述中沒有提到 NAT 的使用)。
  • 切換到不同的提供者。

答案2

由於您是從 Hetzner 租的,我猜您會說德語,所以這是直接來自的答案Hetzner 的支持 wiki

Warum hat meine VM die IP 172.31.1.100?

或者:

Warum hat meine VM eine andere IP als im Robot angegeben?

Warum hat meine VM eine 私人 IP?

在 CX 模型中,IPv4 位址是虛擬伺服器的私人 IP,每個 NAT 與 IPv4 位址的比例為 1:1。現在是 Allen gleich 的私有 IP:172.31.1.100。 Hetzner Robot 的 IP 非常出色。

用英語

為什麼我的虛擬機器的 IP 為 172.31.1.100?

或者也可以:

為什麼我的虛擬機器的 IP 與機器人中顯示的 IP 不同?

為什麼我的虛擬機器有私有 IP?

對於 CX 型號,虛擬伺服器的 IPv4 位址是私人 IP,透過 NAT 在公用 IP 上進行 1:1 設定。目前,所有私有 IP 都是相同的:172.31.1.100。公用IP顯示在Robot中。

相關內容