ifconfig
(需安装net-tools)或ip addr
命令查询网络接口IP,hostname -I
可快速获取本机IP地址。在Linux系统中查询IP地址是网络管理的基础操作,无论是配置服务器、排查连接问题还是监控网络状态都需要掌握,以下是多种详细方法,涵盖不同场景:
查询本机IP地址
ip
命令(推荐)
ip addr show
- 输出解析:
inet
后是IPv4地址(如168.1.100/24
)。inet6
后是IPv6地址。- 网卡名称如
eth0
(有线)或wlan0
(无线)。
- 精简用法:
ip -br -c addr show # 简洁格式并高亮显示
ifconfig
(传统工具,部分系统需安装)
ifconfig
- 若未安装:
sudo apt install net-tools
(Debian/Ubuntu)或sudo yum install net-tools
(CentOS/RHEL)。 - 输出中找
inet
字段对应的IP。
hostname
命令
hostname -I # 显示所有非回环IP(适用于快速获取)
查询公网IP(外部IP)
当需要获取服务器对外的公网地址时:
curl ifconfig.me # 最常用 curl icanhazip.com # 备用方案 curl ipinfo.io/ip # 返回纯IP无多余信息
注意:需安装
curl
(sudo apt install curl
或sudo yum install curl
)。
查询远程主机IP
域名解析(DNS查询)
nslookup example.com # 交互式查询 dig example.com # 输出更详细(安装:`sudo apt install dnsutils`)
- 输出中找
ANSWER SECTION
下的IP地址。
Ping 测试
ping -c 4 example.com # 发送4个包并显示目标IP
- 首行显示
PING example.com (203.0.113.5)
即为解析后的IP。
特殊场景处理
仅显示特定网卡的IP
ip addr show eth0 # 只查看eth0网卡 ifconfig wlan0 # 只查看无线网卡
过滤IP地址(脚本自动化)
ip -o -4 addr show | awk '{print $4}' | cut -d '/' -f1 # 提取所有IPv4 hostname -I | awk '{print $1}' # 取第一个IP
无外网时获取公网IP
- 登录路由器管理界面查看分配的公网IP(适用于本地服务器)。
常见问题解决
-
命令未找到:
- 安装缺失工具:
sudo apt install iproute2 net-tools curl dnsutils # Debian/Ubuntu sudo yum install iproute net-tools curl bind-utils # CentOS/RHEL
- 安装缺失工具:
-
无IP显示:
- 检查网卡状态:
ip link show
(确认UP
状态)。 - 重启网络:
sudo systemctl restart NetworkManager
或sudo systemctl restart networking
。
- 检查网卡状态:
-
公网IP与预期不符:
可能处于NAT后(如家庭网络),需通过路由器或云平台控制台查看真实公网IP。
- 基础查询:优先用
ip addr show
(现代系统)或hostname -I
(快速获取)。 - 公网IP:使用
curl ifconfig.me
。 - 远程主机:
ping
或nslookup
。 - 脚本处理:结合
awk
/grep
过滤输出。
基于 Linux 内核文档(kernel.org)及iproute2
官方手册,命令兼容主流发行版(Ubuntu 20.04+、CentOS 7+、Debian 11+),实际操作前请确保权限正确(普通用户需sudo
提权)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/35351.html