在Linux系统中查看服务器IP地址是日常运维和故障排查中的基础操作,掌握多种方法可以帮助用户根据不同场景灵活选择,本文将详细介绍通过命令行工具、系统配置文件、网络管理工具等多种方式查看IP地址,并解析各方法的适用场景和输出信息。

使用基本命令行工具查看IP地址
-
ifconfig命令
ifconfig是传统的网络配置工具,可显示活动网络接口的详细信息,在较新的Linux发行版中可能需要安装net-tools包。ifconfig
执行后输出类似以下内容:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a00:27ff:fe4e:66a1 prefixlen 64 scopeid 0x20<link> ether 08:00:27:4e:66:a1 txqueuelen 1000 (Ethernet) RX packets 1234 bytes 123456 (123.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 567 bytes 789012 (789.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0其中
inet字段后的168.1.100即为IPv4地址,inet6字段对应IPv6地址。 -
ip命令
ip是现代Linux系统推荐的网络工具,功能更全面,可替代ifconfig。
(图片来源网络,侵删)ip addr show
输出结构更清晰,包含接口状态、IP地址、子网掩码等信息:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:4e:66:a1 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::a00:27ff:fe4e:66a1/64 scope link valid_lft forever preferred_lft forever通过
ip addr show eth0可指定查看特定接口的IP。 -
hostname命令
该命令主要用于显示系统主机名,但结合-I选项可快速获取所有IP地址:hostname -I
输出为空格分隔的IP列表,
168.1.100 10.0.0.1。
(图片来源网络,侵删)
通过系统文件查看IP配置
-
/etc/network/interfaces文件
在Debian/Ubuntu系统中,该文件配置静态IP或DHCP信息。auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1若为DHCP配置,则显示
iface eth0 inet dhcp。 -
/etc/sysconfig/network-scripts/目录
CentOS/RHEL系统下,网卡配置文件位于此目录,如ifcfg-eth0:DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0静态IP需明确指定
IPADDR和NETMASK,DHCP模式下则无需。
使用网络管理工具查看IP
-
nmcli命令
NetworkManager的命令行工具,适用于现代Linux发行版:nmcli connection show nmcli connection show "eth0" | grep ipv4.addresses
输出包含连接名称、IP、网关等详细信息。
-
netstat命令
主要用于网络连接状态,但可结合-i选项查看接口IP:netstat -i
显示接口名称、MTU、数据包统计等,但不直接显示IP地址。
查看公网IP地址
若需获取服务器的外网IP,可通过以下方式:
-
使用curl访问外部服务
curl ifconfig.me curl icanhazip.com
直接返回服务器的公网IP。
-
使用nslookup查询
nslookup myip.opendns.com resolver1.opendns.com
通过OpenDNS服务器查询当前公网IP。
不同场景下的适用方法总结
| 场景 | 推荐命令 | 优势 |
|---|---|---|
| 查看所有接口IP | ip addr show |
信息全面,支持IPv4/IPv6 |
| 快速获取IP列表 | hostname -I |
简洁高效 |
| 查看静态配置 | /etc/network/interfaces |
直接查看配置文件内容 |
| 网络管理工具集成环境 | nmcli |
适合NetworkManager管理的系统 |
| 获取公网IP | curl ifconfig.me |
无需本地工具依赖 |
相关问答FAQs
Q1: 为什么使用ifconfig命令提示“command not found”?
A: 在较新的Linux发行版(如Ubuntu 18.04+、CentOS 7+)中,ifconfig已被ip命令取代,可通过安装net-tools包解决:
sudo apt install net-tools # Debian/Ubuntu sudo yum install net-tools # CentOS/RHEL
但建议逐步迁移到ip命令,因其功能更强大且为未来趋势。
Q2: 如何区分服务器内网IP和外网IP?
A: 内网IP通常为私有地址段(如168.x.x、x.x.x、16-31.x.x),可通过ip route查看默认网关判断:
ip route | grep default
若默认网关为168.1.1,则168.1.100为内网IP,外网IP可通过前述curl或nslookup方法获取,也可登录路由器管理界面查看NAT映射后的公网IP。
