在Unix和Linux系统中,查看IP地址是日常管理和网络故障排查中的常见操作,不同的命令适用于不同的场景,例如查看本机IP、网络接口信息、公网IP或详细的网络配置等,以下将详细介绍几种常用的查看IP命令,包括它们的语法、输出含义及适用场景。

ifconfig命令
ifconfig(interface configuration)是传统的网络配置工具,用于显示或配置网络接口的参数,在较新的Linux发行版中,该命令可能已被ip命令取代,但仍在许多系统中可用。
基本语法:
ifconfig [interface]
- 若不带参数,显示所有活跃网络接口的信息;若指定接口名(如
eth0),则只显示该接口的详情。
输出示例:
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 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 567 bytes 789012 (789.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0关键字段说明:

inet:IPv4地址及子网掩码。inet6:IPv6地址。ether:MAC地址。mtu:最大传输单元。RX/TX packets:接收/发送的数据包数量。
注意事项:在CentOS 7+、Ubuntu 18.04+等系统中,需安装net-tools包才能使用ifconfig(如sudo apt install net-tools)。
ip命令
ip是新一代的网络配置工具,功能更强大,逐渐取代ifconfig,它属于iproute2包,默认安装在大多数现代Linux系统中。
基本语法:
ip addr show [interface]
- 显示所有接口或指定接口的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关键字段说明:
link/ether:MAC地址。inet:IPv4地址及子网掩码(CIDR格式,如/24表示255.255.255.0)。scope:地址作用域(如global为全局地址,link为链路本地地址)。
扩展用法:
- 查看路由表:
ip route show - 查看网络连接:
ip link show
hostname命令
hostname命令主要用于显示或设置系统的主机名,但结合-I选项可快速获取所有活跃接口的IP地址。
基本语法:
hostname -I
输出示例:
168.1.100 10.0.0.1- 直接输出以空格分隔的所有IP地址,适合脚本调用。
dig命令
dig(Domain Information Groper)是DNS查询工具,也可用于获取公网IP地址。
基本语法:
dig +short myip.opendns.com @resolver1.opendns.com
- 通过OpenDNS服务查询当前公网IP,输出示例:
0.113.45。
curl命令
结合第三方服务,curl可快速获取公网IP。
基本语法:
curl ifconfig.me
- 或使用其他服务如
curl icanhazip.com,输出当前公网IP。
| 命令 | 主要用途 | 适用场景 | |
|---|---|---|---|
ifconfig | 显示/配置网络接口 | IPv4、IPv6、MAC、流量统计 | 传统系统,需安装net-tools |
ip | 显示/配置路由、接口、地址 | 详细的网络配置信息 | 现代Linux系统,功能更全面 |
hostname | 快速获取IP地址 | 所有活跃接口的IP列表 | 简单脚本,无需额外参数 |
dig | DNS查询,获取公网IP | 当前公网IPv4地址 | 需要公网IP且安装DNS工具 |
curl | 通过HTTP服务获取公网IP | 当前公网IPv4地址 | 轻量级查询,无需安装额外工具 |
相关问答FAQs
Q1: 为什么ifconfig命令在系统中不可用?
A: 在较新的Linux发行版(如Ubuntu 20.04、CentOS 8)中,ifconfig已被ip命令取代,属于net-tools包,可通过sudo apt install net-tools(Debian/Ubuntu)或sudo yum install net-tools(RHEL/CentOS)安装,但推荐使用ip命令以获得更好的兼容性和功能。
Q2: 如何区分本地IP和公网IP?
A: 本地IP(如168.x.x、x.x.x、16-31.x.x)属于私有地址段,仅在局域网内可用;公网IP是运营商分配的全球唯一地址,可通过curl ifconfig.me或dig命令查询,若本地IP直接暴露在外,通常说明未配置NAT或路由器。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/424912.html<
