Linux如何查询本机IP地址?命令方法有哪些?

在Linux系统中,IP地址是设备在网络中的唯一标识,查询本机IP地址是日常运维和网络配置中的基础操作,无论是排查网络问题、配置服务还是进行远程连接,准确获取IP地址都是第一步,Linux查询本机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命令(传统方法)

ifconfignet-tools工具包中的经典命令,在旧版Linux(如CentOS 6、Ubuntu 16)中广泛使用,但现代发行版可能默认未安装,需手动安装(sudo apt install net-toolssudo yum install net-tools)。

基本用法

ifconfig -a

输出示例

linux如何查询本机ip

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信息。

使用ssnetstat查看连接对应的IP

若需通过网络连接反推本机IP(如确认服务绑定的IP),可使用ssnetstat查看监听或已建立的连接。

使用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

linux如何查询本机ip

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.xx.x.x16.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

(0)
酷番叔酷番叔
上一篇 2025年10月6日 09:41
下一篇 2025年10月6日 10:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信