在Linux系统中,判断网络是否正常工作需要从多个维度进行检查,包括网络接口状态、IP配置、连通性、DNS解析、网络连接等,以下将详细介绍常用的检查方法和命令,帮助用户全面排查网络问题。
使用ping命令测试基本连通性
ping
是最基础的网络测试工具,通过向目标主机发送ICMP回显请求并接收响应,判断网络是否可达。
基本用法
ping 目标主机IP或域名
测试与本地网关的连通性(默认网关通常为168.1.1
或168.0.1
,具体可通过ip route
查看):
ping 192.168.1.1
测试与外网服务器的连通性(如Google DNS):
ping 8.8.8.8
常用参数
-c 次数
:指定发送数据包的数量,默认持续发送,直到手动中断,例如ping -c 4 8.8.8.8
发送4个包后退出。-i 间隔
:设置发送数据包的时间间隔(秒),默认1秒,普通用户最小间隔为0.2秒。-W 超时
:等待响应的超时时间(秒),默认1秒,例如ping -W 2 8.8.8.8
设置超时为2秒。-s 包大小
:指定发送数据包的大小(字节),默认56字节(加上ICMP头部共64字节)。
输出解读
成功时会显示64 bytes from <目标IP>: icmp_seq=<序号> ttl=<生存时间> time=<往返时间>ms
,其中time
越小表示延迟越低;若目标不可达,会显示Request timeout
或Unknown host
(域名无法解析时)。
查看网络接口状态
网络接口(如eth0
、wlan0
)是物理或虚拟网络设备的逻辑名称,需确认其是否已启用并正确连接。
使用ip命令(现代Linux推荐)
ip
是iproute2
工具包中的命令,功能比传统的ifconfig
更强大,推荐优先使用。
查看所有网络接口状态
ip link 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 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/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
关键字段说明:
UP
:接口已启用( administrative status up)。LOWER_UP
:链路层已激活(物理连接正常,如网线已插好或WiFi已连接)。state UP
:接口处于运行状态(综合 administrative 和 link 状态)。inet
:IPv4地址及子网掩码(如168.1.100/24
表示子网掩码为255.255.0
)。link/
:MAC地址(硬件地址)。
查看特定接口状态
ip link show eth0
使用ifconfig命令(传统工具,需安装)
在部分旧版Linux(如CentOS 7之前)或未安装iproute2
的系统上,可使用ifconfig
,需先安装:
- Debian/Ubuntu:
sudo apt install net-tools
- CentOS/RHEL:
sudo yum install net-tools
查看所有接口:
ifconfig -a
查看特定接口:
ifconfig eth0
输出与ip a
类似,需关注UP BROADCAST RUNNING MULTICAST
(接口状态)和inet addr
(IP地址)等字段。
检查IP配置和网络路由
确认接口已启用后,需检查IP地址、子网掩码、网关、DNS等配置是否正确,以及网络路由是否可达。
查看IP地址和路由信息
ip addr show ip route show
ip route
输出示例:
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 192.168.1.1 dev eth0 proto dhcp scope link metric 100
关键说明:
default via <网关IP> dev <接口>
:默认路由,所有非本地网段的流量通过网关转发。<子网段> dev <接口>
:直连路由,表示该子段内的设备可直接通信(如168.1.0/24
表示168.1.x
网段)。
若缺少default
路由,可能无法访问外网;若直连路由缺失,可能接口IP配置错误或物理连接问题。
检查网关连通性
通过ping
网关(如168.1.1
)确认本地网络是否可达,若网关不可达,外网访问必然失败。
测试DNS解析
DNS(域名系统)负责将域名(如www.baidu.com
)解析为IP地址,若DNS配置错误,域名无法解析,但IP直连可能正常。
使用nslookup命令
nslookup 域名
nslookup www.baidu.com
输出示例:
Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 182.61.200.7 Name: www.a.shifen.com Address: 182.61.200.13
若输出server can't find www.baidu.com: NXDOMAIN
,表示DNS解析失败,需检查DNS服务器配置。
使用dig命令(更详细)
dig 域名
dig www.baidu.com
输出包含更详细的DNS查询过程,包括查询的DNS服务器、响应时间、解析结果等,适合排查复杂DNS问题。
检查DNS配置文件
DNS服务器配置通常位于:
/etc/resolv.conf
(全局配置,可能被NetworkManager等工具动态管理)cat /etc/resolv.conf
示例:
# Generated by NetworkManager nameserver 192.168.1.1 # 本地DNS服务器(如路由器) nameserver 8.8.8.8 # 公共DNS服务器(Google DNS) nameserver 114.114.114.114 # 国内公共DNS服务器
若
nameserver
为空或配置错误,需手动修改或检查网络管理工具(如NetworkManager)的DNS设置。
检查网络连接和服务状态
确认网络接口和配置正常后,需进一步检查网络连接是否活跃、相关服务是否运行。
使用ss或netstat查看连接状态
ss
(Socket Statistics)是现代Linux推荐的网络连接查看工具,比netstat
更高效。
查看所有TCP/UDP连接
ss -tuln
参数说明:
-t
:TCP连接-u
:UDP连接-l
:仅显示监听端口-n
:以数字形式显示地址和端口(不解析域名)
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
关键说明:
LISTEN
:端口处于监听状态(如SSH服务默认监听22端口)。- 若目标服务的端口未监听,可能服务未启动或配置错误。
查看与特定IP的连接
ss -t | grep 192.168.1.1
使用netstat命令(传统工具)
若系统未安装ss
,可使用netstat
:
netstat -tuln
检查网络管理服务状态
Linux中常见的网络管理服务有NetworkManager
(现代系统推荐)和network
(传统服务),需确保其正常运行。
检查NetworkManager
systemctl status NetworkManager
若未运行,启动并设置开机自启:
sudo systemctl start NetworkManager sudo systemctl enable NetworkManager
检查传统network服务(CentOS 7等)
systemctl status network
使用网络诊断工具综合排查
若以上方法均未发现问题,可使用综合诊断工具快速定位故障。
使用mtr工具(结合ping和traceroute)
mtr
(My TraceRoute)可实时显示网络路径中各节点的延迟和丢包情况,比traceroute
更直观。
安装:
- Debian/Ubuntu:
sudo apt install mtr
- CentOS/RHEL:
sudo yum install mtr
使用:
mtr 目标IP或域名
输出示例:
Keys: Help Display mode Restart statistics Order of hosts Packets sent with size
Start: 2023-10-01T10:00:00
HOST: Loss% Snt Last Avg Best StDev Status
1.-- 0.0% 10 0.1 0.2 0.1 0.0
2.|-- 0.0% 10 1.2 1.5 1.0 0.3
3.|-- 10.0% 10 5.0 5.5 4.8 0.5
4.|-- 20.0% 10 10.1 11.0 9.5 1.2
关键说明:
Loss%
:丢包率,若中间节点丢包率高,可能是该节点或上游网络问题。Avg
:平均延迟,延迟过高可能影响网络体验。
使用nmcli管理网络(NetworkManager命令行工具)
nmcli
可查看和管理网络连接,适合配置排查:
查看所有连接
nmcli connection show
查看活动连接详情
nmcli connection show "连接名称" | grep -E "ipv4.method|ipv4.addresses|ipv4.dns|ipv4.gateway"
nmcli connection show "eth0" | grep -E "ipv4.method|ipv4.addresses|ipv4.dns|ipv4.gateway"
查看设备状态
nmcli device status
常用网络检查命令总结
为方便用户快速查阅,以下将常用命令及其功能整理为表格:
命令 | 功能描述 | 常用参数/示例 |
---|---|---|
ping |
测试网络连通性 | ping -c 4 8.8.8.8 (发送4次包) |
ip a /ip link |
查看网络接口状态和IP配置 | ip a show eth0 (查看eth0接口) |
ip route |
查看网络路由表 | ip route show (显示所有路由) |
ss -tuln /netstat -tuln |
查看端口监听状态 | ss -t | grep 22 (查看22端口连接) |
nslookup /dig |
测试DNS解析 | nslookup www.baidu.com |
mtr |
综合网络路径诊断 | mtr 8.8.8.8 |
nmcli |
NetworkManager网络管理 | nmcli device status (查看设备状态) |
相关问答FAQs
Q1:Linux显示网络已连接(如右上角图标显示连接),但无法上网怎么办?
A:这种情况通常属于“假连接”,可按以下步骤排查:
- 确认IP配置:使用
ip a
查看是否获取到IP地址(如DHCP分配的地址),若无IP,可能是DHCP服务未启动或网线问题。 - 测试网关连通性:
ping 网关IP
(如168.1.1
),若不通,检查网线、WiFi连接或路由器设置。 - 测试DNS解析:
nslookup www.baidu.com
,若域名无法解析但IP直连正常(如ping 182.61.200.7
),则是DNS问题,检查/etc/resolv.conf
中的nameserver
配置。 - 检查防火墙:防火墙可能阻止出站流量,临时关闭防火墙测试(
sudo ufw disable
或sudo systemctl stop firewalld
),若恢复则需添加放行规则。 - 查看系统日志:
journalctl -u NetworkManager --since "10 min ago"
查看NetworkManager日志,定位错误信息(如DHCP分配失败、IP冲突等)。
Q2:如何查看Linux系统当前使用的DNS服务器?
A:有三种常用方法查看当前DNS配置:
-
查看
/etc/resolv.conf
文件(全局配置,可能被动态管理):cat /etc/resolv.conf | grep nameserver
输出示例:
nameserver 8.8.8.8
(当前使用的DNS服务器)。 -
使用
nmcli
命令(NetworkManager管理的网络):nmcli dev show | grep "IP4.DNS"
输出示例:
IP4.DNS[1]: 8.8.8.8
(显示DNS服务器列表)。 -
使用
resolvectl
命令(systemd-resolved管理的系统,如Ubuntu 20.04+):resolvctl status
在“Current DNS Server”部分显示当前使用的DNS服务器。
注意:若系统使用NetworkManager,/etc/resolv.conf
可能被动态更新,优先推荐nmcli
或resolvectl
查看。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34952.html