为什么我的 Azure 服务器的 IP 地址与其公共 IP 不同?

为什么我的 Azure 服务器的 IP 地址与其公共 IP 不同?

我不知道这是不是 Azure 特有的问题,或者为同一台服务器的接口分配与公共 IP 地址不同的 IP 地址是否正常。

我使用 Azure 门户上提到的公共 IP 地址通过 ssh 连接到我的计算机。但是,当我ip a在计算机上执行此操作时,它会在名为 docker0 的第 3 个块中返回 inet,这与公共 IP 完全不同。我想访问在我的计算机上运行的 Jupyterhub,我尝试了这两个地址,但都不起作用。

答案1

这是很常见的事情。AWS 也是这么做的。您的服务器有一个来自私有地址块的永久分配的 IP 地址。您可以使用这些地址在服务器之间进行通信。

当您为服务器分配公共地址时,该地址实际上已被转换,服务器对此并不知情。您需要一个公共地址才能从外部连接到服务器。

如果您能够连接到服务器,但某些服务无法访问,则应检查以下几点:

  • 服务是否在正确的接口上侦听,还是只侦听 127.0.0.1?使用 检查netstat -lutpn。它应该侦听分配给服务器的私有 IP 地址或所有地址 (0.0.0.0)。
  • 您的防火墙是否阻止访问该服务?请使用 检查iptables -L
  • Azure 防火墙是否阻止对该服务的访问?请在您的 Azure 界面中检查,这里无法更具体,因为我不使用 Azure。

相关内容