上一篇
Linux系统中,可以使用命令
ifconfig或
ip addr show来获取IP地址。
Linux系统中,获取IP地址是一项常见且重要的操作,无论是用于网络配置、故障排查还是日常管理,以下是几种在Linux中获取IP地址的详细方法,涵盖命令行工具、图形界面以及不同发行版的差异。
使用ip命令
ip命令是现代Linux系统中推荐的工具,用于管理网络接口和路由,它功能强大且灵活,适用于大多数场景。
命令示例:
ip addr show
或简写:
ip a
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 86400sec preferred_lft 86400sec
inet6 fe80::20c:29ff:fe8e:a1b2/64 scope link
valid_lft forever preferred_lft forever
解析:
inet表示IPv4地址,inet6表示IPv6地址。scope global表示全局地址,scope host表示本地回环地址。eth0是网络接口名称,可能因系统不同而有所变化(如enp3s0、wlan0等)。
提取IP地址:
如果只需要IPv4地址,可以使用以下命令:

ip -4 addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1
使用ifconfig命令
ifconfig是传统的网络配置工具,虽然已被ip命令取代,但仍在一些旧系统或脚本中使用。
命令示例:
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::20c:29ff:fe8e:a1b2 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:8e:a1:b2 txqueuelen 1000 (Ethernet)
RX packets 123456 bytes 12345678 (12.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 123456 bytes 12345678 (12.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
解析:
inet后面是IPv4地址,inet6后面是IPv6地址。eth0是网络接口名称。
提取IP地址:
如果只需要IPv4地址,可以使用以下命令:
ifconfig eth0 | grep 'inet ' | awk '{print $2}'
使用hostname命令
hostname命令可以显示系统的主机名和IP地址。

命令示例:
hostname -I
输出示例:
168.1.100
解析:
-I选项仅显示IP地址,不显示主机名。- 如果系统有多个IP地址,会以空格分隔输出。
使用nmcli命令
nmcli是NetworkManager的命令行工具,适用于使用NetworkManager管理网络的系统。
命令示例:
nmcli device show | grep 'IP4.ADDRESS'
输出示例:
IP4.ADDRESS[1]: 192.168.1.100/24
解析:
nmcli可以显示详细的网络设备信息,包括IP地址、DNS、路由等。
使用图形界面
对于桌面环境(如GNOME、KDE),可以通过图形界面查看IP地址。
步骤:
- 打开“设置”或“网络设置”。
- 找到当前连接的网络接口(如Wi-Fi或有线连接)。
- 查看详细信息,通常会显示IP地址、子网掩码、网关等。
不同发行版的差异
不同Linux发行版可能默认使用不同的工具或命令,以下是一些常见发行版的默认情况:

| 发行版 | 默认工具 | 备注 |
|---|---|---|
| Ubuntu | ip |
推荐使用ip命令 |
| CentOS | ip |
推荐使用ip命令 |
| Debian | ip |
推荐使用ip命令 |
| Fedora | ip |
推荐使用ip命令 |
| Arch Linux | ip |
推荐使用ip命令 |
| Mint | nmcli |
使用NetworkManager |
| openSUSE | ip |
推荐使用ip命令 |
常见问题与解决方法
问题1:为什么ifconfig命令找不到?
- 原因:现代Linux发行版可能默认未安装
ifconfig工具。 - 解决方法:安装
net-tools包。sudo apt install net-tools # Ubuntu/Debian sudo yum install net-tools # CentOS/RHEL
问题2:如何查看IPv6地址?
- 使用
ip -6 addr show或ifconfig命令,输出中会包含inet6字段。
FAQs
Q1:如何快速查看IP地址?
A1:使用hostname -I命令,它会直接输出IP地址,简单快捷。
Q2:如何查看所有网络接口的IP地址?
A2:使用ip addr show或ifconfig命令,它们会列出所有网络接口及其详细信息。
