在我的旧服务器上,我已经能够在任何地方使用它.所以我只是想知道:为什么外部IP不能用于我的新服务器?
操作系统是Ubuntu 15.04
在2012年和2013年订购的虚拟服务器今天仍然具有其公共IPv4地址.但是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配置.我没有尝试过这个相当复杂的实验.
这些是你有的选择:
>接受您的流量将通过1:1 NAT,并带有引入的缺点.>在IPv6上完成所有重要流量 – 因为Hetzner确实在没有NAT的情况下正确路由IPv6流量.>切换到专用服务器(假设那些仍然获得公共IPv4地址,这很难弄清楚,因为在产品描述中没有提到NAT的使用).>切换到其他提供商.