ifconfig ip address 不显示服务器 ip 地址

ifconfig ip address 不显示服务器 ip 地址

我被允许通过 ssh 访问服务器。我获得了 ssh 服务的 IP 地址和端口号。服务器的操作系统是 ubuntu 18.04。但ifconfig在服务器上运行时没有显示我用来连接服务器的 IP 地址。可能的原因有哪些?

答案1

元注释:要求列出事物列表并不一定适合该网站,因为它会要求部分答案,而这些答案只能共同构成一个完整列表。此答案是社区 wiki,希望用户能够改进它(添加内容),而不是将其他可能性作为单独的答案发布。


可能的解释:

  1. 基因转移酶

    DNAT 通常用于在可公开访问的 IP 地址上发布位于私有网络中的服务。

    在这种情况下ifconfig将显示私有 IP 地址。您使用的公共地址属于另一台机器。

  2. 您最初登录的服务器上的 SSH 守护程序和/或 shell 被配置为默默地将您连接到另一台机器。这有点类似于 DNAT,但在 SSH/shell 级别上工作。

  3. 多个 IPv4 地址,ifconfig只显示一个。调用ip address以查看更多。

这些解释并不相互排斥。可以配置事物,因此不止一种解释会影响您所看到的内容。

答案2

ifconfig已弃用在 Ubuntu 18.04 中,就像在许多(如果不是全部)当前 Linux 发行版中一样。它被 取代ip

检查ip addr您自己的系统。然后转到whatismyip.com。如果您有常规 ISP 连接,您的ip addrIP 地址将显示类似 192.168.1.100 的内容,而 whatismyip.com 则显示完全不同的内容。Whatismyip.com 将显示您的路由器的公共 IP 地址。

路由器对内部网络和互联网之间的流量进行 NAT。使用大多数 SoHo 路由器,您可以在路由器中创建端口转发规则,以便将特定端口的入口流量转发到特定系统。

如果您通过互联网访问服务器,同样,您用于连接服务器的 IP 地址不太可能是实际服务器的 IP,而是网络的互联网路由器的外部(公共)IP,并且路由器具有类似的规则,将所有入口流量转发到端口 22 到特定的内部 IP 地址。

答案3

有时您可能位于代理/堡垒或其他网络技巧的后面,因此他们在另一个地方配置了您访问的外部 IP 并将其转发到您的服务器(或其他解释),在这种情况下 - 您将看不到在您的服务器中配置的外部 IP 地址。

就我个人而言,我会运行它curl ipinfo.io来查看有关我正在运行的服务器的更多信息,它就像一个“镜子”,可以观察“世界”如何看待你的服务器,它会输出类似这样的内容:

{
  "ip": "<your external IP>",
  "city": "...",
  "region": "...",
  "country": "US",
  "loc": "...",
  "org": "<company that owns this server>",
  "postal": "...",
  "timezone": "...",
  "readme": "https://ipinfo..."
}

相关内容