linux 如何看ip

在Linux系统中查看IP地址是网络管理的基础操作,无论是排查网络问题、配置服务还是监控连接状态,都需要掌握多种查看IP的方法,根据不同的需求(如查看本机IP、公网IP、网络连接状态等),Linux提供了丰富的命令工具,下面将详细介绍这些方法及其使用场景。

linux 如何看ip

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

本机IP地址通常指网络接口(如以太网、Wi-Fi)配置的IPv4或IPv6地址,这是本地网络通信的基础,Linux中最常用的命令ip addrifconfig(较旧系统可能默认安装)。

使用ip addr命令(推荐)

ip addriproute2工具包的一部分,功能强大且在现代Linux发行版中默认安装,通过该命令可以查看所有网络接口的详细信息,包括IP地址、MAC地址、接口状态等。

基本语法

ip addr [选项]

常用选项

  • show:显示所有接口信息(默认选项,可省略);
  • list:同show
  • s/stats:显示接口统计信息(如接收/发送数据包数);
  • brief:以简洁格式显示接口名称和IP地址。

示例

ip addr show          # 显示所有接口详细信息
ip addr show eth0     # 仅显示eth0接口信息
ip addr brief         # 简洁显示接口名称和IP

输出解析
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

关键字段说明:

  • lo:回环接口,IP为0.0.1,用于本地进程通信;
  • eth0:以太网接口,IPv4地址为168.1.100,子网掩码为/24(即255.255.255.0),广播地址为168.1.255
  • link/ether:MAC地址,唯一标识网络硬件;
  • UP:接口已启用;DOWN:接口已禁用;BROADCAST:支持广播;MULTICAST:支持多播。

使用ifconfig命令(传统工具)

ifconfignet-tools工具包的命令,在早期Linux系统中广泛使用,但部分新发行版(如Ubuntu 20.04+)默认不再安装,需手动安装net-tools包。

安装方法(Ubuntu/Debian):

sudo apt install net-tools

基本语法

ifconfig [接口名称] [选项]

示例

ifconfig          # 显示所有接口信息
ifconfig eth0     # 显示eth0接口信息
ifconfig eth0 up  # 启用eth0接口
ifconfig eth0 down # 禁用eth0接口

输出解析
ifconfig 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::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.5 KiB)
        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0

关键字段说明:

  • inet:IPv4地址及子网掩码;
  • broadcast:广播地址;
  • ether:MAC地址;
  • RX packets/TX packets:接收/发送的数据包数。

ip addrifconfig对比

为方便理解,以下是两者核心功能的对比:

linux 如何看ip

对比维度 ip addr ifconfig
所属工具包 iproute2(默认安装) net-tools(需手动安装)
功能丰富度 支持IPv4/IPv6、路由、隧道等复杂操作 仅支持基础接口配置,功能较简单
输出格式 结构化,字段清晰(如scopevalid_lft 较传统,部分字段冗余(如flags
推荐场景 新版Linux系统,日常运维 旧系统或兼容性需求

查看公网IP地址

本机IP地址通常是局域网IP(如168.x.xx.x.x),若需访问公网IP(即出口路由器分配的IP),需通过外部服务查询。

使用curlwget访问IP查询服务

通过HTTP请求获取第三方服务返回的公网IP,是最常用的方法。

示例

curl ifconfig.me          # 最简洁,直接返回公网IP
curl ipinfo.io/ip         # 返回IP,附带地理位置信息(需加`/ip`)
curl cip.cc              # 返回详细IP信息(运营商、地区等)

输出示例

curl ifconfig.me
203.0.113.123

使用nslookupdig查询

若本地DNS配置了公网IP解析服务(如resolver1.opendns.com),可通过DNS查询获取公网IP。

示例

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

输出示例

nslookup myip.opendns.com resolver1.opendns.com
Server:         208.67.222.222
Address:        208.67.222.222#53
Non-authoritative answer:
myip.opendns.com        canonical name = o-o.myip.opendns.com.
Name:   o-o.myip.opendns.com
Address: 203.0.113.123

查看网络连接的远程IP

当需要监控当前系统与哪些远程IP建立了连接(如排查异常连接、查看访问的网站服务器IP),可使用ssnetstat命令。

使用ss命令(推荐)

ssiproute2工具包的一部分,比netstat更快、功能更强大,默认安装于现代Linux系统。

基本语法

ss [选项] [过滤条件]

常用选项

  • t:显示TCP连接;
  • u:显示UDP连接;
  • l:显示仅监听端口;
  • n:以数字形式显示IP和端口(避免域名解析);
  • p:显示进程ID和名称;
  • a:显示所有连接(包括监听和未监听)。

示例

ss -tuln          # 显示所有TCP/UDP监听端口(数字形式)
ss -t -p         # 显示所有TCP连接及关联进程
ss -t src 192.168.1.100:80  # 显示本地IP为192.168.1.100、端口80的TCP连接

输出解析
ss -tuln为例,输出如下:

State      Recv-Q Send-Q Local Address:Port   Peer Address:Port
LISTEN     0      511          0.0.0.0:22          0.0.0.0:*
LISTEN     0      4096         127.0.0.1:6379       0.0.0.0:*
LISTEN     0      100          0.0.0.0:80           0.0.0.0:*

关键字段说明:

linux 如何看ip

  • State:连接状态(LISTEN表示监听,ESTABLISHED表示已建立连接,TIME_WAIT表示等待关闭);
  • Local Address:Port:本地IP和端口;
  • Peer Address:Port:远程IP和端口(若为0.0.0:*表示未连接)。

使用netstat命令(传统工具)

netstatnet-tools工具包的命令,功能与ss类似,但速度较慢,旧系统可能默认使用。

示例

netstat -tuln      # 显示所有TCP/UDP监听端口
netstat -t -p      # 显示所有TCP连接及关联进程
netstat -an | grep ESTABLISHED  # 过滤已建立的连接

输出解析
ss类似,但netstatState字段用LISTENESTABLISHED等表示,Local AddressForeign Address分别对应本地和远程地址。

查看DHCP与网络配置信息

若系统通过DHCP自动获取IP,可通过以下命令查看DHCP租约信息、网关、DNS等配置。

查看DHCP租约信息

Ubuntu/Debian系统:DHCP客户端租约信息存储在/var/lib/dhcp/dhclient.eth0.leases(接口名可能不同)。

cat /var/lib/dhcp/dhclient.eth0.leases | grep "fixed-address|option routers option domain-name-servers"

CentOS/RHEL系统:使用nmcli(NetworkManager命令行工具)查看DHCP配置:

nmcli connection show "连接名称" | grep ipv4.method  # 查看是否为DHCP
nmcli connection show "连接名称" | grep ipv4.dns      # 查看DNS服务器
nmcli connection show "连接名称" | grep ipv4.gateway  # 查看网关

查看默认网关与路由表

默认网关是局域网访问公网的出口,可通过ip routeroute命令查看路由表。

ip route show default  # 查看默认网关
ip route               # 查看所有路由条目

输出示例

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

说明:默认网关为168.1.1,通过eth0接口可达。

Linux查看IP的方法需根据场景选择:

  • 本机接口IP:优先用ip addr,兼容旧系统可用ifconfig
  • 公网IP:通过curl访问第三方服务(如ifconfig.me);
  • 网络连接ss(推荐)或netstat查看远程IP及连接状态;
  • DHCP/路由nmcli(NetworkManager)、ip route或查看租约文件。

掌握这些命令,可高效解决网络配置、故障排查等问题。

相关问答FAQs

Q1:为什么在Linux中使用ifconfig命令提示“command not found”?
A:ifconfig属于net-tools工具包,部分新版Linux发行版(如Ubuntu 20.04、CentOS 8)默认不再安装该工具包,可通过以下方法解决:

  • Ubuntu/Debian:sudo apt install net-tools
  • CentOS/RHEL:sudo yum install net-tools(或dnf install net-tools)。
    建议优先使用ip addr替代ifconfig,因其功能更强大且默认安装。

Q2:如何快速定位某个特定网络接口(如eth0)的IP地址?
A:可通过以下命令直接显示指定接口的IP信息:

  • 使用ip addrip addr show eth0 | grep "inet"(过滤IPv4地址);
  • 使用ifconfigifconfig eth0 | grep "inet addr"(传统格式);
  • 使用nmcli(NetworkManager):nmcli device show eth0 | grep IP4.ADDRESS(显示IPv4地址及子网掩码)。
    ip addr show eth0 | grep "inet"会输出类似inet 192.168.1.100/24 brd 192.168.1.255,直接提取IP地址即可。

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

(0)
酷番叔酷番叔
上一篇 2小时前
下一篇 2小时前

相关推荐

  • Linux如何安全登录Oracle数据库?

    前提条件安装Oracle客户端或服务端需已安装Oracle数据库服务端(如oracle-database-server)或客户端工具(如oracle-instantclient),验证安装:执行 sqlplus -v 查看版本信息,若未安装需下载安装包,配置环境变量在用户配置文件(如 ~/.bashrc 或……

    2025年7月17日
    2200
  • Linux下如何查看JVM内存的分配与占用情况?

    在Linux系统中查看JVM内存使用情况是Java应用运维和性能调优的核心技能,常用的方法包括命令行工具、可视化监控工具以及日志分析等,本文将详细介绍这些方法的具体操作和输出解读,帮助开发者高效掌握JVM内存状态,命令行工具:快速精准的内存监控命令行工具是Linux环境下最直接的JVM内存查看方式,适合快速定位……

    15小时前
    300
  • 如何使用 unzip 命令?

    unzip命令是解压zip格式压缩文件的常用工具,基本用法unzip 文件名.zip可将内容解压至当前目录,常用选项如-d指定解压路径,-l查看压缩包内容列表。

    2025年6月24日
    2700
  • 如何在官网下载jdk linux版本

    Oracle官网,导航至JDK下载页面,选择Linux版本并按照提示完成下载和安装

    2025年8月17日
    700
  • 在Linux操作系统中,如何生成ko文件?具体步骤是怎样的?

    Linux 内核模块(Kernel Module)是动态加载到内核中的代码片段,用于扩展内核功能,而 .ko 文件就是编译后的内核模块文件,生成 .ko 文件需要准备开发环境、编写模块代码、配置 Makefile 并通过编译工具完成,以下是详细步骤和说明,环境准备在开始生成 .ko 文件前,需确保系统已安装必要……

    4天前
    900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信