Linux系统如何知道本机的IP地址信息?

在Linux系统中,IP地址是网络通信的核心标识,无论是本机网络配置、服务部署还是远程连接,都需要准确获取IP信息,Linux提供了多种命令和工具来查看不同维度的IP地址,包括本机内网IP、网络接口状态、公网IP以及网络连接详情等,本文将详细介绍这些方法,帮助用户全面掌握“如何知道IP”的实用技巧。

linux 如何知道ip

查看本机网络接口及IP地址

本机IP地址通常指网络接口(如以太网、Wi-Fi)配置的IPv4或IPv6地址,是最基础的IP信息,Linux中常用ifconfigip命令查看,其中ip命令是现代Linux系统推荐的工具,功能更全面且默认安装。

使用ifconfig命令(传统工具)

ifconfig属于net-tools包,部分新系统可能默认未安装,需通过sudo apt install net-tools(Ubuntu/Debian)或sudo yum install net-tools(CentOS/RHEL)安装。
基本用法

ifconfig

输出示例

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 1234  bytes 123456 (123.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 567  bytes 78901 (77.0 KiB)
        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地址(物理地址)。

若只想查看特定接口(如eth0),可使用ifconfig eth0;过滤IPv4地址可用ifconfig | grep "inet "

使用ip命令(现代推荐工具)

ip命令来自iproute2包,功能更强大,支持IPv4/IPv6,且能查看路由、ARP表等网络信息。
基本用法

ip addr show

或简化为:

ip a

输出示例

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 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,掩码24位相当于255.255.255.0);
  • scope:地址作用域(如global表示全局地址,host表示回环地址);
  • link/ether:MAC地址。

常用参数

  • ip addr show eth0:查看指定接口eth0的IP;
  • ip addr show up:只显示已启动的接口;
  • ip -4 addr show:仅显示IPv4地址;
  • ip -6 addr show:仅显示IPv6地址。

获取本机公网IP地址

本机IP可能是内网IP(如192.168.x.x、10.x.x.x),若需访问互联网上的公网IP(如VPS对外暴露的IP),需通过外部服务查询,常用方法包括curlwget等工具调用第三方API。

使用curl查询公网IP

curl是常用的网络传输工具,多数Linux系统默认安装,通过访问提供公网IP查询的网站(如ifconfig.meipinfo.iocip.cc等)获取IP。
常用命令

curl ifconfig.me
curl ipinfo.io/ip
curl cip.cc

输出示例

linux 如何知道ip

192.123.45

扩展查询:若需同时获取IP地理位置、运营商等信息,可使用:

curl ipinfo.io/42.192.123.45  # 替换为查询到的公网IP

输出会包含city(城市)、region(地区)、country(国家)等详细信息。

使用dignslookup查询公网IP

通过DNS查询方式获取当前出口IP,适用于无curl的环境。
命令示例

dig +short myip.opendns.com @resolver1.opendns.com
nslookup myip.opendns.com resolver1.opendns.com

输出示例

192.123.45

查看网络连接状态及关联IP

若需了解当前系统建立的TCP/UDP连接(如远程SSH连接、HTTP请求),以及连接对应的本地IP和远程IP,可使用netstatss命令。

使用ss命令(推荐)

ssnetstat的替代工具,速度更快,默认安装于多数现代系统。
查看所有TCP连接

ss -t

查看所有UDP连接

ss -u

查看所有网络连接(含TCP/UDP/UNIX域socket)

ss -a

查看监听端口及关联IP

ss -tulpn

输出示例

Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128            0.0.0.0:22          0.0.0.0:*
tcp    ESTAB   0       0        192.168.1.100:22     192.168.1.50:12345

关键信息解读

  • Local Address:Port:本地IP和监听端口(如0.0.0.0:22表示所有IP监听22端口);
  • Peer Address:Port:对端IP和端口(如192.168.1.50:12345表示已建立的SSH连接);
  • State:连接状态(如LISTEN表示监听,ESTAB表示已建立)。

使用netstat命令(传统工具)

netstat功能与ss类似,但速度较慢,部分系统需手动安装(sudo apt install net-tools)。
查看TCP连接

netstat -t

查看监听端口

linux 如何知道ip

netstat -tulpn

查看路由表以了解IP路径

路由表记录了数据包的转发路径,通过查看路由表可了解本机IP对应的默认网关、子网范围等网络配置,使用ip routenetstat -rn命令查看。

使用ip route命令

ip route show

或简化为:

ip r

输出示例

default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100

**关键信息解读**:  
- `default via 192.168.1.1 dev eth0`:默认网关是192.168.1.1,通过接口`eth0`转发;  
- `192.168.1.0/24 dev eth0`:直连网络是192.168.1.0/24段,本机IP为192.168.1.100。  
#### 2. 使用`netstat -rn`命令
```bash
netstat -rn

输出示例

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 eth0

**关键信息解读**:  
- `Destination`:目标网络(如0.0.0.0表示默认路由);  
- `Gateway`:网关地址(如192.168.1.1);  
- `Genmask`:子网掩码(如255.255.255.0);  
- `Flags`:`UG`表示网关路由,`U`表示直连路由。  
### 五、通过配置文件查看静态IP
若IP是通过静态配置而非DHCP获取,可通过网络配置文件直接查看,不同Linux发行版的配置文件路径不同。
#### 1. Ubuntu/Debian(Netplan)
Ubuntu 18.04+使用Netplan,配置文件位于`/etc/netplan/`下,如`01-network-manager-all.yaml`:  
```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, 8.8.4.4]

其中addresses字段即为静态IP地址。

CentOS/RHEL 7+(NetworkManager)

配置文件位于/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

IPADDR即为静态IP地址。

CentOS/RHEL 8+(NetworkManager)

使用nmcli工具查看:

nmcli connection show "eth0" | grep ipv4.method
nmcli connection show "eth0" | grep ipv4.addresses

输出ipv4.method: manual表示静态配置,ipv4.addresses字段包含IP地址。

常用命令对比与总结

为方便快速选择工具,以下为常用IP查看命令的对比:

命令 主要用途 示例 备注
ip a 查看本机所有接口IP及状态 ip addr show eth0 推荐,支持IPv4/IPv6
ifconfig 查看本机接口IP(传统工具) ifconfig eth0 需安装net-tools
curl ifconfig.me 获取公网IP curl ipinfo.io/ip 需联网,依赖第三方服务
ss -tulpn 查看监听端口及关联IP ss -tulpn | grep 22 推荐,速度快,显示进程ID
ip route 查看路由表及默认网关 ip route show default 分析数据包转发路径
nmcli 查看和管理NetworkManager配置 nmcli connection show 适用于桌面系统及RHEL/CentOS

相关问答FAQs

Q1:为什么ifconfig命令在系统中找不到?
A: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

Q2:如何区分本机的内网IP和公网IP?
A:内网IP是私有地址段的IP,无法在互联网上直接路由,常见范围包括:

  • 0.0.0/8(10.0.0.0-10.255.255.255);
  • 16.0.0/12(172.16.0.0-172.31.255.255);
  • 168.0.0/16(192.168.0.0-192.168.255.255)。
    公网IP是互联网服务提供商(ISP)分配的IP,可通过curl ifconfig.me等命令查询,通过ip route show查看默认网关:若默认网关是私有地址(如192.168.1.1),则本机IP通常为内网IP;若默认网关是公网IP,则本机IP可能为公网IP(如VPS场景)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/30220.html

(0)
酷番叔酷番叔
上一篇 2025年9月25日 11:26
下一篇 2025年9月25日 11:39

相关推荐

  • Linux如何拆分文件?常用命令与操作步骤详解指南?

    在Linux系统中,拆分文件是常见的操作需求,无论是为了便于传输大文件、处理日志数据,还是将大型数据集拆分为小文件进行分析,掌握文件拆分技巧都能提升工作效率,Linux提供了多种命令行工具支持文件拆分,每种工具适用于不同场景,本文将详细介绍这些工具的使用方法及注意事项,按文件大小拆分:split 命令split……

    2025年9月16日
    3700
  • Linux环境下如何将多个文件夹的内容合并到一个文件夹?

    在Linux系统中,合并多个文件夹是日常文件管理中的常见需求,例如整理分散的项目文件、汇总不同来源的备份、合并用户数据等,合并文件夹的核心操作涉及文件复制、同名文件处理、子目录递归合并以及文件属性保留等问题,本文将详细介绍多种合并方法,涵盖命令行工具(如cp、rsync、find+xargs)和图形界面操作,并……

    2025年10月5日
    3600
  • Linux解压文件有哪些常用命令和方法?

    在Linux系统中,解压文件是日常操作中非常常见的任务,由于Linux支持多种压缩格式(如.tar、.gz、.bz2、.xz、.zip、.rar、.7z等),不同格式对应的解压命令和工具也有所不同,本文将详细介绍Linux中常见压缩文件的解压方法,包括命令格式、参数说明及实际示例,帮助用户高效处理各类压缩包,L……

    2025年9月16日
    4600
  • 关闭ACPI竟有隐藏风险?

    在Linux系统中,ACPI(高级配置与电源管理接口)是管理硬件电源、温度监控和系统事件的核心组件,虽然它对于现代计算机至关重要,但在某些情况下(如硬件兼容性问题、系统崩溃或电源管理故障),用户可能需要临时或永久关闭ACPI,以下是详细的操作方法和注意事项:常见场景包括:硬件兼容性问题:旧硬件或非标准设备可能因……

    2025年7月15日
    7700
  • 如何实时查看Linux系统中当前哪些进程具体占用内存大小最多?

    在Linux系统中,监控进程内存占用是系统管理和性能优化的核心任务之一,尤其当系统出现卡顿、响应缓慢或内存不足时,快速定位高内存占用进程能有效解决问题,本文将详细介绍多种查看Linux进程内存占用的方法,涵盖基础命令、进阶工具及内存指标解析,帮助用户根据实际需求选择合适的方式,基础命令:top与htop——实时……

    2025年10月7日
    25700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信