在Linux系统中,查看IP地址是日常运维和故障排查中的常见操作,无论是通过命令行工具还是图形界面,都有多种方法可以实现,本文将详细介绍不同场景下查看Linux IP地址的方式,包括传统命令、现代工具、图形界面操作及配置文件查看方法,帮助用户根据实际需求选择最合适的方案。
命令行工具查看IP地址
命令行是Linux环境下最常用的操作方式,通过特定命令可以快速获取本机IP地址、子网掩码、网关等网络信息,以下是几种主流命令及其使用方法:
ifconfig
命令(传统工具)
ifconfig
是早期Linux系统中查看网络接口信息的经典命令,属于net-tools
工具包,虽然在新版系统中逐渐被ip
命令取代,但部分发行版仍支持使用。
基本用法:
ifconfig # 显示所有网络接口信息 ifconfig eth0 # 查看指定网卡(如eth0)的详细信息
输出示例:
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::a00:27ff:fe4e:66a1 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:4e:66:a1 txqueuelen 1000 (Ethernet)
RX packets 1000 bytes 89000 (89.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 800 bytes 65000 (65.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
关键信息:
inet
:IPv4地址(如192.168.1.100)netmask
:子网掩码(如255.255.255.0)broadcast
:广播地址(如192.168.1.255)ether
:MAC地址
注意:若ifconfig
命令未找到,需安装net-tools
包(Ubuntu/Debian:sudo apt install net-tools
;CentOS/RHEL:sudo yum install net-tools
)。
ip
命令(现代推荐工具)
ip
命令是iproute2
工具包的核心命令,功能更强大,逐渐取代ifconfig
成为Linux网络管理的标准工具。
基本用法:
ip addr show # 显示所有网络接口的IP地址信息 ip addr show eth0 # 查看指定网卡的IP地址 ip a # "ip addr show"的简写
输出示例:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:4e:66:a1 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
valid_lft forever preferred_lft forever
关键信息:
inet
:IPv4地址及子网掩码(如192.168.1.100/24,表示子网掩码255.255.255.0)brd
:广播地址scope global
:全局作用域(公网或局域网内可访问)scope link
:链路本地作用域(仅本网络接口可用)
扩展用法:
ip route show # 查看路由表信息(含默认网关) ip neigh show # 查看ARP邻居表(局域网内其他主机IP与MAC对应关系)
hostname
命令(快速获取IP)
hostname
命令主要用于显示或设置主机名,但结合-I
选项可快速获取所有已配置的IPv4地址。
基本用法:
hostname -I # 显示所有IPv4地址,空格分隔
输出示例:
168.1.100 10.0.0.1
适用场景:仅需快速获取IP地址,无需其他网络信息时。
nmcli
命令(NetworkManager管理工具)
nmcli
是NetworkManager的命令行工具,适用于管理网络连接(尤其桌面环境或使用NetworkManager的服务器)。
基本用法:
nmcli device show # 显示所有网络设备的详细信息 nmcli connection show # 显示网络连接配置 nmcli device status # 显示设备状态(含IP地址)
输出示例(nmcli device show eth0
):
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:4E:66:A1
GENERAL.MTU: 1500
GENERAL.STATE: 100 (连接成功)
GENERAL.CONNECTION: 有线连接 1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 192.168.1.100/24
IP4.GATEWAY[1]: 192.168.1.1
IP4.DNS[1]: 8.8.8.8
IP6.ADDRESS[1]: fe80::a00:27ff:fe4e:66a1/64
IP6.GATEWAY[1]: --
关键信息:
IP4.ADDRESS[1]
:IPv4地址及子网掩码IP4.GATEWAY[1]
:默认网关IP4.DNS[1]
:DNS服务器
其他辅助命令
netstat -i
:显示网络接口统计信息(含IP地址)netstat -i
ss -l
:显示监听的端口和对应IP(需结合-i
选项查看接口信息)ss -l -i
命令对比表格
命令 | 所属工具包 | 主要功能 | 适用场景 |
---|---|---|---|
ifconfig |
net-tools | 显示/配置网络接口信息 | 旧系统兼容 |
ip |
iproute2 | 显示/管理路由、地址、网络接口 | 现代Linux系统(推荐) |
hostname -I |
coreutils | 快速获取IPv4地址 | 简单IP查询 |
nmcli |
NetworkManager | 管理网络连接、显示详细网络配置 | NetworkManager环境(桌面/服务器) |
图形界面查看IP地址
对于习惯图形界面的用户,Linux桌面环境(如GNOME、KDE、XFCE等)提供了直观的网络设置入口,无需记忆命令。
GNOME桌面(Ubuntu、CentOS 8+等)
- 路径:点击右上角网络图标 → “有线已连接”或“Wi-Fi已连接” → “详细信息” 显示IPv4地址、子网掩码、网关、DNS等信息,如图所示:
IPv4地址: 192.168.1.100 子网掩码: 255.255.255.0 默认网关: 192.168.1.1 DNS服务器: 8.8.8.8
KDE桌面(openSUSE、Fedora等)
- 路径:点击右下角网络图标 → “编辑连接” → 选择已连接的网络 → “编辑” → “IPv4” 在“方法”下拉菜单中可查看IP配置方式(DHCP/静态),并显示当前IP地址。
XFCE桌面(Xubuntu、Linux Mint XFCE等)
- 路径:点击右上角网络图标 → “网络设置” → “有线”或“Wi-Fi” → “齿轮图标” 在“IPv4”选项卡中查看IP地址、子网掩码、网关等信息。
通过网络配置文件查看IP
若需查看静态IP配置或网络服务的默认设置,可直接编辑或查看系统中的网络配置文件。
Debian/Ubuntu系统
- 主配置文件:
/etc/network/interfaces
cat /etc/network/interfaces
:
auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 1.1.1.1
address
:静态IP地址netmask
:子网掩码gateway
:默认网关
CentOS/RHEL 7系统
- 主配置文件:
/etc/sysconfig/network-scripts/ifcfg-网卡名
(如ifcfg-eth0
)cat /etc/sysconfig/network-scripts/ifcfg-eth0
:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes
Ubuntu 18.04+(NetPlan配置)
- 配置文件:
/etc/netplan/*.yaml
(如01-netcfg.yaml
)cat /etc/netplan/01-netcfg.yaml
:
network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]
特殊情况:虚拟机与容器IP查看
- Docker容器:
docker inspect 容器ID | grep IPAddress
- Kubernetes Pod:
kubectl get pod <pod名> -o wide | grep <pod名>
- Libvirt虚拟机:
virsh domiflist <虚拟机名>
相关问答FAQs
问题1:为什么ifconfig
命令在系统中提示“command not found”?
解答:ifconfig
命令属于net-tools
工具包,而新版Linux系统(如Ubuntu 20.04+、CentOS 8+)默认不再预装该工具包,推荐使用ip
命令替代,若需使用ifconfig
,可通过以下命令安装:
- Ubuntu/Debian:
sudo apt install net-tools
- CentOS/RHEL:
sudo yum install net-tools
问题2:如何区分动态IP(DHCP)和静态IP?通过命令能直接查看吗?
解答:可通过以下方式区分:
- 命令查看:
- 使用
ip addr show
查看当前IP,但无法直接判断是否为动态; - 使用
nmcli connection show "连接名" | grep ipv4.method
,若输出为auto
则为DHCP,manual
或static
则为静态IP。
- 使用
- 配置文件查看:
- Debian/Ubuntu:
/etc/network/interfaces
中iface eth0 inet dhcp
为DHCP,inet static
为静态; - CentOS/RHEL:
/etc/sysconfig/network-scripts/ifcfg-eth0
中BOOTPROTO=dhcp
为DHCP,static
为静态。
- Debian/Ubuntu:
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/32758.html