在Linux系统中,IP地址是设备在网络中的唯一标识,查询本机IP地址是日常运维和网络配置中的基础操作,无论是排查网络问题、配置服务还是进行远程连接,准确获取IP地址都是第一步,Linux查询本机IP的方法多样,可通过命令行工具快速获取,也可通过图形界面直观查看,本文将详细介绍这些方法及适用场景。
命令行查询方法(推荐)
命令行是Linux系统高效操作的核心,通过简洁的命令即可快速获取IP地址信息,以下是常用命令及详细解析:
使用ip
命令(现代Linux推荐)
ip
命令是iproute2
工具包的一部分,功能强大且全面,是现代Linux发行版(如Ubuntu 18+、CentOS 7+)默认的网络配置工具,通过ip addr
(或ip a
)可查看所有网络接口的IP信息,包括IPv4、IPv6、子网掩码、广播地址等。
基本用法:
ip addr show
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e 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::21a:2bff:fe3c:4d5e/64 scope link
valid_lft forever preferred_lft forever
输出解析:
1: lo
:回环接口(localhost),用于本机通信,IP为0.0.1
(IPv4)和:1
(IPv6)。2: eth0
:以太网接口(有线网卡),inet
后为IPv4地址(168.1.100
),/24
表示子网掩码(255.255.255.0),brd
为广播地址(168.1.255
)。inet6
:IPv6地址,通常以fe80::
开头的为链路本地地址,需通过路由器获取全局IPv6地址。
仅显示IPv4地址:
ip -4 addr show | grep -oP 'inet K[d.]+'
仅显示IPv6地址:
ip -6 addr show | grep -oP 'inet6 K[0-9a-fA-F:]+'
使用ifconfig
命令(传统方法)
ifconfig
是net-tools
工具包中的经典命令,在旧版Linux(如CentOS 6、Ubuntu 16)中广泛使用,但现代发行版可能默认未安装,需手动安装(sudo apt install net-tools
或sudo yum install net-tools
)。
基本用法:
ifconfig -a
输出示例:
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::21a:2bff:fe3c:4d5e prefixlen 64 scopeid 0x20<link>
ether 00:1a:2b:3c:4d:5e txqueuelen 1000 (Ethernet)
RX packets 12345 bytes 1234567 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6789 bytes 987654 (964.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
输出解析:
inet
后为IPv4地址,netmask
为子网掩码,broadcast
为广播地址。lo
为回环接口,与ip
命令输出一致。
使用hostname
命令(快速获取IPv4)
hostname
命令主要用于显示或设置系统主机名,但结合-I
选项可快速输出所有IPv4地址(空格分隔),适合仅需简单IP的场景。
基本用法:
hostname -I
输出示例:
168.1.100 10.0.0.5
说明:若系统有多个网卡(如eth0、wlan0),会输出所有网卡的IPv4地址,无IPv6信息。
使用ss
或netstat
查看连接对应的IP
若需通过网络连接反推本机IP(如确认服务绑定的IP),可使用ss
或netstat
查看监听或已建立的连接。
使用ss
(推荐,现代替代netstat
):
ss -tuln | grep LISTEN
输出示例:
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp6 LISTEN 0 128 [::]:22 [::]:*
说明:0.0.0
表示监听所有IPv4地址,[::]
表示监听所有IPv6地址;若显示0.0.1
或:1
,则仅本机可访问。
使用netstat
(需安装net-tools
):
netstat -tuln | grep LISTEN
使用nmcli
命令(NetworkManager管理工具)
若系统使用NetworkManager管理网络(如Ubuntu Desktop、CentOS 7+),可通过nmcli
命令获取更详细的网络配置信息,包括IP、网关、DNS等。
基本用法:
nmcli device show
输出示例(部分):
设备类型: ethernet
接口名称: eth0
通用路径: /sys/class/net/eth0
IP4 地址: 192.168.1.100/24
IP4 网关: 192.168.1.1
IP4 DNS: 8.8.8.8, 8.8.4.4
IP6 地址: fe80::21a:2bff:fe3c:4d5e/64
图形界面查询方法
对于习惯图形操作的用户,Linux桌面环境(如GNOME、KDE、XFCE)提供了直观的网络设置界面,以下是常见发行版的操作步骤:
Ubuntu/Debian(GNOME桌面)
- 点击右上角网络图标(有线/无线),若已连接,会显示“已连接”,点击“有线设置”或“无线设置”。
- 在“网络”页面,点击当前连接的网卡(如“有线1”),展开“IPv4”或“IPv6”选项,即可查看IP地址、子网掩码、网关等信息。
CentOS/RHEL(GNOME桌面)
- 点击右上角网络图标,选择“有线设置”或“无线设置”。
- 在“连接”页面,点击“齿轮图标”编辑连接,切换到“IPv4”或“IPv6”标签页,可查看IP配置(DHCP或静态)。
Fedora(KDE Plasma桌面)
- 点击右下角网络图标,选择“设置”。
- 在“网络”界面,点击当前连接的网卡,展开“详情”,即可查看IP地址、DNS等信息。
常用命令总结表格
命令 | 功能描述 | 示例 | 适用场景 |
---|---|---|---|
ip addr show |
显示所有网络接口IP信息(含IPv4/IPv6) | ip addr show |
现代Linux,全面查看IP |
ifconfig -a |
显示所有网络接口信息(需安装net-tools) | ifconfig -a |
旧版Linux或兼容场景 |
hostname -I |
快速输出所有IPv4地址(空格分隔) | hostname -I |
快速获取IPv4,无需额外参数 |
ss -tuln |
查看监听端口及对应IP | ss -tuln | grep LISTEN |
通过服务确认绑定IP |
nmcli device show |
显示NetworkManager管理的网络详情 | nmcli device show |
NetworkManager环境,查看详细配置 |
相关问答FAQs
Q1:为什么输入ifconfig
命令后提示“command not found”?
A:ifconfig
属于net-tools
工具包,现代Linux发行版(如Ubuntu 20.04、CentOS 8)默认未安装,转而推荐ip
命令,若需使用ifconfig
,可通过以下方式安装:
- Ubuntu/Debian:
sudo apt install net-tools
- CentOS/RHEL/Fedora:
sudo yum install net-tools
(CentOS 8+使用dnf
)
Q2:如何区分本机的公网IP和内网IP?
A:内网IP(如168.x.x
、x.x.x
、16.x.x-172.31.x.x
)是局域网内部分配的,仅在同一网络内可见;公网IP是路由器从ISP(互联网服务提供商)获取的,可直接访问互联网,可通过以下方法区分:
- 内网IP:使用
ip addr show
查看,若IP属于上述私有地址段则为内网IP。 - 公网IP:通过访问外部IP查询网站获取,如:
curl ifconfig.me # 或 curl ipinfo.io/ip
输出的IP即为公网IP(若通过路由器上网,公网IP为路由器的IP,非本机直连IP)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36905.html