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

使用基本命令查看IP地址
-
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
- 安装方式(若系统中未安装):
-
ip命令
ip是iproute2工具包中的命令,功能更强大且逐渐替代ifconfig,推荐在新版Linux系统中使用。
(图片来源网络,侵删)- 查看所有网络接口的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地址:
查看动态IP获取信息
若服务器通过DHCP自动获取IP地址,可查看DHCP客户端的配置信息,了解IP租约、过期时间等。
-
dhclient命令(适用于使用dhclient的系统)
sudo dhclient -v eth0 # 详细模式查看eth0接口的DHCP交互过程
查看当前DHCP租约信息:
cat /var/lib/dhcp/dhclient.eth0.leases
(注:文件路径可能因系统而异,如CentOS系统中可能为
/var/lib/dhclient/dhclient-eth0.leases) -
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等工具实现。
-
查看 bonding 接口的IP地址
若服务器使用 bonding 技术将多个物理网卡绑定为一个逻辑接口,可通过以下命令查看:ip addr show bond0
输出示例中会显示bond0接口的IP地址,以及绑定的物理接口(如eth0、eth1)。
-
查看 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的信息。 -
查看 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地址。
- 查看Docker容器IP:
查看网络接口状态和路由信息
-
查看网络接口状态
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 -
查看路由表
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),可通过以下方法:
-
使用 curl 访问外部服务
curl ifconfig.me curl ipinfo.io/ip curl cip.cc
这些命令会直接返回服务器的公网IP地址。
-
使用 dig 查询域名解析
dig +short myip.opendns.com @resolver1.opendns.com
不同场景下的IP查看总结
| 场景 | 推荐命令 | 说明 |
|---|---|---|
| 查看所有接口IP | ip addr show 或 ifconfig |
显示所有网络接口的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)地址,可能的原因包括:
- 网络接口未启用:可通过
ip link set eth0 up手动启用接口(需root权限)。 - 接口未配置IP:静态IP未配置或DHCP客户端未成功获取IP,可检查网络配置文件(如
/etc/network/interfaces、/etc/sysconfig/network-scripts/ifcfg-eth0)或重启网络服务(sudo systemctl restart networking或sudo systemctl restart NetworkManager)。 - 接口未连接:检查物理网线是否插好、交换机端口是否正常,或虚拟机网络模式是否正确配置。
问题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来判断。
可通过traceroute或mtr命令追踪IP路由路径,若第一跳为内网网关(如192.168.1.1),则目标IP为内网IP;若第一跳为运营商网关(如202.96.1.x),则为公网IP。
