凌峰创科服务平台

Linux如何查看服务器IP地址?

在Linux系统中查看服务器IP地址是日常运维和管理的常见操作,由于Linux系统的多样性(不同发行版、不同网络配置工具),查看IP地址的方法也多种多样,本文将详细介绍通过命令行工具、配置文件查看IP地址的方法,并涵盖静态IP、动态IP(DHCP)、虚拟IP(VIP)等不同场景下的操作,同时说明网络接口状态、路由信息等相关内容的查看方式,帮助用户全面掌握Linux服务器IP地址的查看技巧。

Linux如何查看服务器IP地址?-图1
(图片来源网络,侵删)

使用基本命令查看IP地址

  1. ifconfig命令
    ifconfig是传统的网络配置工具,虽然在新版Linux系统中逐渐被ip命令取代,但仍广泛使用。

    • 安装方式(若系统中未安装):
      sudo apt install net-tools  # Debian/Ubuntu系统
      sudo yum install net-tools  # CentOS/RHEL系统
    • 查看所有网络接口的IP地址:
      ifconfig

      执行后会显示所有网络接口(如eth0、ens33、lo等)的详细信息,包括IP地址(inet)、子网掩码(netmask)、MAC地址(ether)等。

      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
          inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
          ether 00:0c:29:12:34:56  txqueuelen 1000  (Ethernet)

      其中inet后面的168.1.100即为该接口的IPv4地址。

    • 查看特定接口的IP地址:
      ifconfig eth0
  2. ip命令
    ip是iproute2工具包中的命令,功能更强大且逐渐替代ifconfig,推荐在新版Linux系统中使用。

    Linux如何查看服务器IP地址?-图2
    (图片来源网络,侵删)
    • 查看所有网络接口的IP地址:
      ip addr show

      简化写法:

      ip a

      输出示例:

      2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
          link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff
          inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
            valid_lft forever preferred_lft forever
          inet6 fe80::20c:29ff:fe12:3456/64 scope link
            valid_lft forever preferred_lft forever

      其中inet后面的168.1.100/24表示IPv4地址及子网掩码长度(24位掩码对应255.255.255.0)。

    • 查看特定接口的IP地址:
      ip addr show eth0
    • 仅显示IP地址(过滤其他信息):
      ip addr show eth0 | grep "inet " | awk '{print $2}' | cut -d/ -f1

      该命令会提取eth0接口的IPv4地址(不包含子网掩码部分)。

查看动态IP获取信息

若服务器通过DHCP自动获取IP地址,可查看DHCP客户端的配置信息,了解IP租约、过期时间等。

  1. dhclient命令(适用于使用dhclient的系统)

    sudo dhclient -v eth0  # 详细模式查看eth0接口的DHCP交互过程

    查看当前DHCP租约信息:

    cat /var/lib/dhcp/dhclient.eth0.leases

    (注:文件路径可能因系统而异,如CentOS系统中可能为/var/lib/dhclient/dhclient-eth0.leases

  2. NetworkManager命令(适用于使用NetworkManager的系统)

    nmcli device show eth0

    输出中包含IP地址、DHCP服务器地址、租约开始/结束时间等信息。

    IP4.ADDRESS[1]:                         192.168.1.100/24
    IP4.GATEWAY:                            192.168.1.1
    IP4.DNS[1]:                             8.8.8.8
    DHCP4.OPTION[1]:                        lease_time  86400
    DHCP4.OPTION[2]:                        renewal_time  43200
    DHCP4.OPTION[3]:                        expiry_time  1672531200

查看虚拟IP(VIP)和集群IP

在负载均衡、高可用集群环境中,服务器可能配置虚拟IP(VIP),通常通过 bonding、keepalived、haproxy等工具实现。

  1. 查看 bonding 接口的IP地址
    若服务器使用 bonding 技术将多个物理网卡绑定为一个逻辑接口,可通过以下命令查看:

    ip addr show bond0

    输出示例中会显示bond0接口的IP地址,以及绑定的物理接口(如eth0、eth1)。

  2. 查看 keepalived 管理的 VIP
    keepalived 会通过虚拟接口(如eth0:0)管理VIP,可通过以下命令查看:

    ip addr show | grep -E "inet.*vip|inet.*192.168.1.200"

    或直接查看网络接口列表:

    ip addr show | grep "inet"

    若VIP存在,会在输出中显示类似inet 192.168.1.200/24 scope global secondary eth0:0的信息。

  3. 查看 Docker/Kubernetes 容器IP

    • 查看Docker容器IP:
      docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或ID
    • 查看Kubernetes Pod IP:
      kubectl get pod -n 命名空间 -o wide | grep Pod名称

      输出中的IP列即为Pod的IP地址。

查看网络接口状态和路由信息

  1. 查看网络接口状态

    ip link show

    输出中会显示接口是否启用(UP/DOWN)、MAC地址、MTU值等。

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff
  2. 查看路由表

    ip route show

    输出示例:

    default via 192.168.1.1 dev eth0
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

    其中default via表示默认网关,168.1.0/24表示直连网段。

查看公网IP地址

若需查看服务器的公网IP(而非内网IP),可通过以下方法:

  1. 使用 curl 访问外部服务

    curl ifconfig.me
    curl ipinfo.io/ip
    curl cip.cc

    这些命令会直接返回服务器的公网IP地址。

  2. 使用 dig 查询域名解析

    dig +short myip.opendns.com @resolver1.opendns.com

不同场景下的IP查看总结

场景 推荐命令 说明
查看所有接口IP ip addr showifconfig 显示所有网络接口的IPv4/IPv6地址、子网掩码、MAC地址等
查看特定接口IP ip addr show eth0 仅显示指定接口(如eth0)的IP信息
查看DHCP租约信息 nmcli device show eth0 适用于NetworkManager管理的系统,显示IP、网关、DNS、租约时间等
查看VIP/集群IP ip addr show | grep "inet.*VIP" 查看虚拟IP,常用于keepalived、HAProxy等集群环境
查看公网IP curl ifconfig.me 通过外部服务获取服务器的公网IP地址
查看容器IP docker inspect 容器ID 查看Docker容器的IP地址(需进入容器网络详情)

相关问答FAQs

问题1:为什么使用ip addr show命令看不到IP地址?
解答:若ip addr show命令输出中没有显示inet(IPv4)或inet6(IPv6)地址,可能的原因包括:

  1. 网络接口未启用:可通过ip link set eth0 up手动启用接口(需root权限)。
  2. 接口未配置IP:静态IP未配置或DHCP客户端未成功获取IP,可检查网络配置文件(如/etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-eth0)或重启网络服务(sudo systemctl restart networkingsudo systemctl restart NetworkManager)。
  3. 接口未连接:检查物理网线是否插好、交换机端口是否正常,或虚拟机网络模式是否正确配置。

问题2:如何区分服务器的内网IP和公网IP?
解答:

  • 内网IP:通常为私有地址段,包括:
    • 0.0.0/8(10.0.0.0 ~ 10.255.255.255)
    • 16.0.0/12(172.16.0.0 ~ 172.31.255.255)
    • 168.0.0/16(192.168.0.0 ~ 192.168.255.255)
      可通过ip addr show查看的IP地址是否属于上述范围来判断。
  • 公网IP:通过curl ifconfig.me等命令获取的IP,或通过ip route show中默认网关(default via)对应的外网IP来判断。
    可通过traceroutemtr命令追踪IP路由路径,若第一跳为内网网关(如192.168.1.1),则目标IP为内网IP;若第一跳为运营商网关(如202.96.1.x),则为公网IP。
分享:
扫描分享到社交APP
上一篇
下一篇