1. 什么是 IP 地址?
IP 地址是用于在网络上标识设备的唯一编号。它是实现互联网或局域网中数据发送与接收的关键。IP 地址主要有两大类:IPv4 和 IPv6。IPv4 使用 32 位地址格式,例如 “192.168.0.1”,而 IPv6 使用 128 位地址格式,例如 “2001:0db8:85a3:0000:0000:8a2e:0370:7334”。IPv6 提供了大幅度扩展的地址空间,能够让更多设备接入互联网。
2. 在 Ubuntu 中检查 IP 地址的基本命令
Ubuntu 提供了多种命令用于查看 IP 地址。使用下面的命令,你可以轻松识别系统分配的 IP 地址。
2.1 ip addr show 命令
ip addr show 命令是现代 Linux 发行版中强大且推荐使用的工具。它会显示分配给网络接口的 IPv4 和 IPv6 地址。
示例用法:
$ sudo ip addr show
示例输出:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic ens33
valid_lft 86381sec preferred_lft 86381sec
inet6 fe80::250:56ff:fe9a:de91/64 scope link
valid_lft forever preferred_lft forever
- 紧随 inet 之后的值,例如 “192.168.1.10/24”,表示 IPv4 地址。 “/24” 是 CIDR 表示法,指代子网掩码(相当于 255.255.255.0)。前 24 位为网络部分,剩余 8 位为主机部分。
- 紧随 inet6 之后的值是 IPv6 地址,例如 “fe80::250:56ff:fe9a:de91”。
附加说明:
brd表示广播地址。scope指定地址范围:global表示可在整个互联网访问,link表示链路本地地址,仅在同一网络段内有效。
2.2 hostname -I 命令
hostname -I 命令会以空格分隔的形式显示系统分配的所有 IP 地址。当你只需要 IP 地址而不需要额外细节时,这个命令非常实用。
示例用法:
$ hostname -I
示例输出:
192.168.1.10 fe80::250:56ff:fe9a:de91
- 第一个值是 IPv4 地址,第二个值是 IPv6 地址。该命令仅显示已分配的 IP 地址,不会附带接口的其他信息。
默认接口的 IP 地址:
- 若要显示默认网络接口的 IP 地址,请运行以下命令:
$ ip route get 1.1.1.1
该命令会显示到指定地址的路由信息,并据此确定默认接口。
2.3 curl ifconfig.me 命令
curl ifconfig.me 命令通过访问外部服务来获取你的公网 IP 地址。当你想了解系统在互联网上的外部表现时,这个方法很有帮助。不过,需要注意该方法会与外部服务器通信,需考虑隐私因素。
示例用法:
$ curl ifconfig.me
示例输出:
203.0.113.50
该输出显示了从互联网看到的你的全局 IP 地址。
隐私注意事项:
curl ifconfig.me会把与 IP 相关的信息发送到外部服务器。如果你对隐私有顾虑,可以考虑通过路由器设置或其他本地方式查询公网 IP 地址。
公网 IP 与私有 IP 的区别:
ip addr show通常显示的是局域网内部使用的私有 IP 地址。curl ifconfig.me则会显示你的全局公网 IP 地址。由于 NAT(网络地址转换)的存在,内部 IP 与外部 IP 往往不同。NAT 使得多个设备能够共享同一个公网 IP 访问互联网。

3. 已废弃的 ifconfig 命令及其替代方案
ifconfig 曾是 Linux 中的标准网络管理命令,但现在已被弃用,并且在大多数现代发行版中未预装。推荐使用功能更强大的 ip 命令。
安装 ifconfig:
$ sudo apt install net-tools
示例用法:
$ sudo ifconfig
示例输出:
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
- “inet” 后面的值,例如 “192.168.1.10”,表示 IPv4 地址。
ifconfig 的局限性:
ifconfig可能无法显示所有接口,尤其是虚拟接口,并且可能省略 IPv6 细节。ip命令提供更全面、现代的网络信息。
4. 使用 NetworkManager 工具
4.1 nmcli 命令
nmcli 是用于管理 NetworkManager 的命令行工具。它可以让你查看网络设备的详细信息。如果系统未安装 nmcli,请使用以下命令:
安装:
$ sudo apt install network-manager
示例用法:
$ nmcli device show
示例输出:
IP4.ADDRESS[1]: 192.168.1.10/24
- “IP4.ADDRESS[1]” 后面的值表示 IPv4 地址。
检查 NetworkManager 状态:
- 要验证 NetworkManager 是否正在运行,请使用:
$ systemctl status NetworkManager
5. 在不同情境下检查 IP 地址
检查 IP 地址对于各种网络任务都很重要,包括故障排除、服务器配置以及远程访问的准备。掌握多种命令可以让你根据环境和场景选择最佳方法。
故障排除技巧:
- 网络问题: 如果 IP 地址未正确分配,可能导致无法连接网络。使用
ip addr show验证配置,并确认相应接口拥有 IP 地址。某些网络配置更改可能需要sudo权限。 - 远程访问: 配置服务器的远程访问时,需要知道正确的公网 IP 地址。使用
curl ifconfig.me确认全局 IP,并确保路由器的端口转发已正确配置。 - 连接测试: 为验证网络连通性,可使用
ping命令确认与主机的通信。例如,运行ping google.com测试互联网访问。此外,使用traceroute识别路由路径,定位延迟或问题所在。$ ping google.com $ traceroute google.com
- ping 结果显示响应时间和丢包情况。无响应可能表明连接问题。
- traceroute 显示每一跳的延迟,帮助你确定延迟出现的位置。
6. 总结
在 Ubuntu 中检查 IP 地址有多种方法,每种方法都有其独特优势。ip addr show 提供详细的网络信息,而 hostname -I 则以简洁方式获取 IP 地址。curl ifconfig.me 有助于识别公网 IP,但需注意隐私。虽然 ifconfig 已被弃用,但在特定场景下仍可能有用。
通过熟练掌握这些命令,你可以更高效地在 Ubuntu 上进行网络管理。理解 IP 地址概念和 NAT(网络地址转换)能够帮助你深入了解网络配置和安全。请参考官方文档和其他学习资源,提升网络管理技能。
参考资源: