在Ubuntu系统中,查看IP地址最快捷且通用的命令是ip addr或hostname -I,前者提供详细的网络接口信息,后者仅返回当前主机的IPv4地址。
对于许多刚接触Linux服务器的运维新手或开发者来说,网络配置往往是第一道门槛,与Windows系统那样在图形界面中点击几下就能轻松获取IP不同,Ubuntu作为命令行主导的操作系统,要求用户通过终端指令来交互,这种差异不仅体现了操作系统的底层逻辑差异,也反映了Linux系统对效率和安全性的极致追求,掌握正确的查看方法,不仅能解决连接问题,更是排查网络故障、配置防火墙以及进行远程管理的基础技能。
Ubuntu查看IP地址的常用命令解析
在Ubuntu环境中,获取IP地址并非只有一种途径,不同的命令适用于不同的场景,理解它们的区别能帮助你更高效地工作。
ip addr命令:现代网络管理的标准工具
ip addr(或者简写为ip a)是目前Linux发行版中推荐使用的网络配置工具,它取代了老旧的ifconfig命令,这个命令属于iproute2软件包的一部分,功能强大且输出信息丰富。
当你执行ip addr时,系统会列出所有网络接口,包括物理网卡、虚拟网卡以及回环接口,输出内容通常包含以下关键信息:
- 接口名称:如
eth0(以太网)、wlan0(无线)或lo(本地回环)。 - 状态:显示接口是
UP(启用)还是DOWN(禁用)。 - MAC地址:硬件层面的物理地址。
- IP地址:以
inet开头的行显示IPv4地址,以inet6开头的行显示IPv6地址。
在输出中你可能会看到类似inet 192.168.1.100/24,其中168.1.100就是你要找的IP地址,/24代表子网掩码。
如何快速筛选特定IP
由于ip addr输出信息较多,对于只需要IP地址的用户来说,直接阅读可能略显繁琐,业内专家指出,结合grep命令可以极大地简化这一过程,你可以使用以下命令来过滤出包含”inet”的行,从而快速定位IPv4地址:
ip addr | grep 'inet '
这条命令会隐藏掉MAC地址、状态等其他信息,只留下IP地址相关的行,非常适合在脚本中使用或快速查看。

hostname -I命令:极简主义者的首选
如果你只需要知道当前主机的IP地址,而不关心具体的网络接口细节,hostname -I是最简洁的选择,注意这里的-I是大写的i,而不是小写的L。
这个命令的作用是返回主机名对应的所有IP地址,与ip addr不同,它不会显示接口状态或MAC地址,也不会显示回环地址(127.0.0.1),输出结果通常是一串由空格分隔的IP地址。
- 优点:命令短小精悍,输出结果干净利落,适合在SSH连接或脚本中直接提取。
- 缺点:如果主机配置了多个网络接口,可能会返回多个IP,需要用户自行判断哪个是目标IP。
Ubuntu查看IP地址命令与Windows及传统Linux的对比
不同操作系统和网络工具之间的差异,往往让跨平台用户感到困惑,了解这些对比,有助于你建立更清晰的知识体系。
与Windows ipconfig命令的对比
在Windows系统中,用户习惯使用ipconfig命令来查看网络配置,虽然功能相似,但两者在输出格式和细节上存在显著差异。
| 特性 | Ubuntu (ip addr) | Windows (ipconfig) |
|---|---|---|
| 输出详细程度 | 极高,包含MTU、状态、MAC等 | 中等,主要关注IP、子网掩码、网关 |
| 接口命名规则 | 可预测命名(如eth0, enp3s0) | 通常命名为”以太网适配器” |
| IPv6支持 | 默认显示,格式标准 | 显示,但有时需手动展开 |
| 命令别名 | 支持ip a简写 |
无常用简写 |
对于从Windows迁移到Ubuntu的用户来说,ip addr的输出可能看起来有些杂乱,但一旦习惯了这种结构化的信息展示,你会发现它在排查复杂网络问题时提供了更多线索。

与ifconfig命令的对比
ifconfig是旧版Linux系统中常用的网络配置工具,属于net-tools软件包,虽然许多老用户依然习惯使用它,但Ubuntu等现代发行版默认不再安装该软件包,且官方已停止维护。
- ifconfig的局限性:它无法显示IPv6地址(除非特别配置),也无法显示某些现代网络接口的详细状态。
- ip addr的优势:作为
net-tools的继任者,iproute2套件提供了更全面的功能支持,包括更强大的路由管理和策略路由配置。
行业共识认为,在2026年的今天,学习和使用ip addr是更明智的选择,因为它代表了Linux网络管理的未来方向。
Ubuntu查看IP地址命令在实际场景中的应用
掌握命令只是第一步,如何在实际场景中灵活运用这些知识,才是提升工作效率的关键。
远程SSH连接中的IP查找
当你需要通过SSH连接到另一台Ubuntu服务器时,准确获取目标服务器的IP地址至关重要,在这种情况下,hostname -I通常是最方便的选择,因为SSH客户端只需要一个IP地址即可建立连接。
假设你正在管理一台云服务器,你可以直接运行:
ssh user@$(hostname -I)
这条命令会自动将hostname -I的输出作为目标IP填入SSH命令中,极大简化了连接过程,前提是目标服务器允许基于主机名的解析或直接使用IP连接。
多网卡环境下的IP识别
在服务器或工作站中,多网卡配置非常常见,一台机器可能同时连接内网和外网,或者拥有多个以太网接口,简单的hostname -I可能会返回多个IP,导致混淆。
在这种情况下,ip addr的优势就体现出来了,你可以通过接口名称来精确指定查看哪个网卡的信息,如果你想查看名为eth0的网卡的IP地址,可以使用:
ip addr show eth0
或者结合grep进一步过滤:
ip addr show eth0 | grep 'inet '
这种精确控制能力,在处理复杂网络拓扑时尤为重要,据工信部数据,近年来企业级服务器多网卡配置的比例显著上升,因此掌握这种精细化的查看方法已成为运维人员的必备技能。

容器与虚拟化环境中的IP查看
在Docker或Kubernetes等容器化环境中,网络隔离使得IP地址的管理变得更加复杂,每个容器都有独立的网络命名空间,因此直接在宿主机上运行ip addr可能无法看到容器的IP。
在这种情况下,你需要进入容器内部执行命令,或者使用docker inspect等工具来查看容器的网络配置,在Docker中,你可以使用以下命令查看特定容器的IP:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
虽然这超出了基础ip addr的范畴,但理解网络命名空间的概念,有助于你更好地在虚拟化环境中排查IP相关的问题。
Ubuntu查看IP地址命令常见问题解答
为什么ip addr显示的是127.0.0.1而不是我的公网IP?
0.0.1是回环地址(Loopback Address),代表本机。ip addr会列出所有接口,包括lo(本地回环)接口,要查看你的局域网IP或公网IP,请忽略lo接口,查看eth0、enp3s0或wlan0等物理或虚拟网络接口下的inet字段,如果你的服务器位于NAT后面,ip addr显示的是内网IP,要获取公网IP,可以使用curl ifconfig.me等外部服务。
如何永久修改Ubuntu的静态IP地址?
修改IP地址涉及网络配置文件的更改,在较新的Ubuntu版本(如20.04及以后)中,推荐使用netplan进行配置,你需要编辑/etc/netplan/目录下的YAML配置文件,将DHCP改为静态IP,并指定IP地址、网关和DNS服务器,修改完成后,执行sudo netplan apply使配置生效,注意,错误的配置可能导致网络中断,建议在修改前备份原文件。
Ubuntu查看IP地址命令在断网情况下还能用吗?
可以。ip addr和hostname -I命令读取的是本地网络接口的配置信息,这些信息存储在本地系统中,不依赖于网络连接,即使网线被拔掉或Wi-Fi断开,只要网络接口驱动程序正常工作,这些命令依然可以返回接口当前的IP配置(可能是0.0.0.0或之前分配的IP),在网络故障排查初期,这些命令是判断本地网络栈是否正常的重要工具。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/415733.html
