Linux系统下用什么命令可以查看本机IP地址

来源:Android教程作者:马来西亚程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《Linux系统下用什么命令可以查看本机IP地址》,敬请观看详情。把网线插好却连不上服务,第一反应往往是本机IP没配对。Linux里并不只有一个命令能看地址,不同发行版和网络管理方式结果差异很大。ifconfig早已从默认工具里消失,ip命令成为主流,hostname和nmcli也能输出相关信息。盲目敲旧教程里的指令经常会报命令找不到。弄清楚各自适用场景,才能在服务器排障时快速拿到正确网卡与IP,避免被回环地址或容器内网段误导。

在Linux环境中确认本机IP地址是网络排障和服務部署的基础操作。由于系统版本、发行版以及网络管理框架的不同,可用于查看IP的命令也存在差异。理解这些命令背后的工作原理,能够帮助我们在不同场景下准确获取需要的信息,而不是被回环地址或虚拟网卡的地址干扰判断。

Linux系统下用什么命令可以查看本机IP地址

使用ip命令查看IP地址

现代Linux发行版普遍采用iproute2工具集,其中的ip命令取代了传统的ifconfig。执行ip addr show或者简写的ip a可以列出所有网络接口及其绑定的IP地址。该命令直接读取内核的netlink接口,信息实时且准确,不受旧版net-tools缓存影响。输出中inet后面跟着的就是IPv4地址,inet6对应IPv6地址,而lo接口下的地址通常是127.0.0.1,仅用于本机回环通信。

如果我们只想看正在工作的网卡,可以加上过滤条件,例如ip -br addr show以简洁格式呈现。对于运维脚本,通常结合grepawk提取指定网卡IP。下面的示例展示如何从eth0中截取IPv4地址:

#!/bin/bash
# 从eth0接口提取IPv4地址
IP=$(ip -4 addr show eth0 | grep -oP '(?<=inets)d+(.d+){3}' | head -1)
echo "eth0的IP是: $IP"

相比老旧命令,ip命令不仅显示地址,还能展示子网掩码长度、广播地址以及接口状态。在容器或虚拟化环境中,它也能正确区分宿主网卡与虚拟网桥。缺点是参数较多,新用户需要记忆addrlinkroute等子命令,但这正是它功能强大的体现。

ifconfig与hostname等传统命令的适用边界

早期Linux系统默认携带net-tools包,其中的ifconfig命令几乎是人手必备。它会读取/proc/net/dev并调用ioctl获取接口配置。但在CentOS 7、Ubuntu 18.04之后的最小安装中,ifconfig往往不再预装,直接运行会提示命令未找到。此时可通过安装net-tools包来补回,但这只是兼容旧习惯,并非推荐做法。

另一个常用命令是hostname -I,它返回所有非回环接口的IP地址,以空格分隔,非常适合快速粘贴使用。不过该命令依赖系统解析库,在配置了多网卡或复杂网络命名规则时,可能遗漏部分地址。而nmcli device show则适用于使用NetworkManager管理的桌面或云镜像系统,能同时给出DNS、网关与连接状态,对排错更有帮助。

# 安装net-tools后使用ifconfig
sudo apt install net-tools
ifconfig eth0 | grep "inet "

# 使用hostname快速获取IP
hostname -I

# NetworkManager环境查看设备详情
nmcli device show eth0 | grep IP4.ADDRESS

从维护角度看,如果一个服务器由云厂商初始化并采用NetworkManager,那么nmcli提供的信息比单纯IP更完整。但在无图形环境且禁用NetworkManager的精简容器里,ip命令依旧是最稳的选择。传统命令的价值在于兼容老脚本,新写工具则应当优先调用iproute2

结合路由与DNS排查真实对外IP

查看本机IP只是第一步,很多时候我们需要确认机器在局域网或公网中被识别的地址。通过ip route get 1.1.1.1可以得知系统为访问外网所选的出口网卡和源IP,这比遍历所有接口更精准。对于拥有多个网卡的服务器,该命令能直接指出默认路由对应的真实IP,避免管理员误把内网管理口当成业务IP。

若需确认公网地址,由于Linux本身不存储该信息,可以借助curl访问外部服务,但这已超出本地命令查看范畴。在纯内网环境,则应检查/etc/resolv.confip neigh显示的邻居表,确认网关MAC与IP对应正常。下面代码演示如何提取默认出口IP:

# 获取默认路由使用的源IP
ip route get 1.1.1.1 | grep -oP 'src Kd+(.d+){3}'

# 查看ARP邻居表中的网关记录
ip neigh show

综合运用接口查看、路由解析与邻居发现,我们才能构建完整的网络视图。单纯执行一个命令可能得到回环地址或Docker网桥地址,只有理解网络栈分层,才能定位到真正承载流量的IP。这也是为什么在写自动化部署脚本时,常先用ip route确定出口,再用正则提取,而不是盲目取第一个inet行。

linuxip_commandnetwork_configuration修改时间:2026-08-15 11:15:25

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。