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如何添加lm模块及实现配置?

    在Linux系统中,“加lm”通常涉及与LAN Manager(LM)哈希或LM认证相关的操作,这在特定场景下(如与旧版Windows系统兼容、Samba服务配置或安全审计)可能需要处理,LM哈希是微软早期Windows版本(如Windows 95/98/Me及NT 4.0之前)使用的密码存储算法,因其安全性低……

    2025年10月1日
    900
  • 问题频发?如何快速解决常见原因

    常见问题通常由操作失误、系统故障或外部因素引发,解决时需先定位具体原因,再采取针对性措施如重启设备、修复设置或联系技术支持。

    2025年7月31日
    4300
  • U盘启动Linux系统后如何退出并返回原系统?

    从U盘启动Linux系统常用于系统修复、数据恢复或临时试用,结束后正确退出并恢复硬盘启动是关键操作,若操作不当可能导致数据丢失、系统异常或下次启动仍默认从U盘引导,以下是详细的退出流程及注意事项,涵盖图形界面与命令行两种常见操作环境,退出前的准备工作在执行退出操作前,需完成以下准备工作,避免数据损坏或系统残留……

    2025年10月3日
    700
  • Linux下如何打开任务管理器?命令行与图形界面方法详解

    在Linux系统中,并没有一个与Windows任务管理器完全相同的单一工具,因为Linux的设计哲学强调模块化和命令行灵活性,其任务管理功能通过多种命令行工具和图形界面工具实现,覆盖了进程查看、资源监控、进程终止等需求,本文将详细介绍Linux中常用的任务管理工具,包括它们的用途、使用方法及适用场景,帮助用户根……

    2025年9月29日
    1800
  • Linux系统安装配置DHCP服务器的具体步骤是什么?

    在Linux系统中安装和配置DHCP(动态主机配置协议)服务器,能够为局域网中的自动分配IP地址、子网掩码、网关等网络参数,简化网络管理,以下是详细的安装配置步骤,涵盖不同发行版、核心配置及常见问题处理,安装DHCP服务器软件不同Linux发行版的包管理器不同,需使用对应的命令安装:Ubuntu/Debian系……

    2025年9月9日
    2500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信