在 Linux 网络排错中,“清缓存” 是解决诡异问题最简单有效的手段。很多时候上不了网、SSH 连不上、域名解析异常、内网不通,并不是配置错了,而是各种网络缓存 “脏数据” 在捣乱。
本文整理 Linux 下最常见、最实用的网络缓存表,包括作用说明、查看命令、清空方法,最后附赠一键清空所有网络缓存脚本,遇到网络问题直接运行,效率翻倍。
一、ARP 缓存表(邻居表)
作用:记录局域网内 IPv4/IPv6 地址与 MAC 地址的映射关系,避免每次发包都重新广播询问。
异常表现:能 ping 通网关但不通外网、IP 冲突、换路由器后断网。
查看
ip neigh
ip -4 neigh # 只看 IPv4
ip -6 neigh # 只看 IPv6
清空(必须 sudo)
sudo ip -4 neigh flush all
sudo ip -6 neigh flush all
二、路由缓存表
作用:缓存最近使用的路由条目,提高数据包转发效率。
异常表现:多网卡环境流量走错网卡、静态路由不生效、访问异常。
查看
ip route show cache
清空
sudo ip route flush cache
三、DNS 缓存
作用:缓存域名与 IP 的对应关系,加快解析速度。
异常表现:域名解析错误、切换 DNS 后不生效、网站打不开但 IP 能通。
Ubuntu / Debian 桌面默认使用 systemd-resolved:
查看统计
systemd-resolve --statistics
清空 DNS 缓存
sudo systemd-resolve --flush-caches
如果使用 dnsmasq:
sudo systemctl restart dnsmasq
四、Conntrack 连接跟踪表
作用:防火墙 / NAT 核心缓存,记录所有 TCP/UDP 连接状态(ESTABLISHED、TIME_WAIT 等)。
异常表现:服务器并发高时无法新建连接、SSH 频繁断开、内网穿透异常。
安装工具
sudo apt install conntrack
查看
conntrack -L
conntrack -S # 查看连接数占用
清空
sudo conntrack -F
五、网桥 FDB 表(虚拟机 / 容器必备)
作用:记录网桥上的 MAC 地址与端口对应关系,Docker、KVM、虚拟机环境大量使用。
异常表现:虚拟机互通异常、容器网络不通。
查看
bridge fdb show
清空
sudo bridge fdb flush dev br0
六、PMTU 路径 MTU 缓存
作用:缓存网络路径最大传输单元,避免大包被丢弃。
异常表现:能 ping 小包但大包丢包、网站加载一半中断、SSH 卡顿。
清空
sudo ip route flush cache
七、多播 IGMP 缓存
作用:记录加入的多播组,用于监控、直播、IPTV 等场景。
查看
ip maddr
cat /proc/net/igmp
八、TIME_WAIT 套接字缓存
作用:TCP 断开后保留一段时间确保数据传输完毕,属于正常机制。
无法直接清空,但可开启快速回收:
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
sudo sysctl -w net.ipv4.tcp_fin_timeout=30
终极:一键清空所有网络缓存脚本
遇到网络异常直接运行,90% 问题可快速缓解。
新建脚本文件flush-net-cache.sh:
vim flush-net-cache.sh
粘贴内容:
#!/bin/bash
echo "清空 ARP 缓存 (IPv4 + IPv6)..."
sudo ip -4 neigh flush all
sudo ip -6 neigh flush all
echo "清空路由缓存..."
sudo ip route flush cache
echo "清空 DNS 缓存..."
sudo systemd-resolve --flush-caches
echo "清空 conntrack 连接跟踪..."
if command -v conntrack &> /dev/null; then
sudo conntrack -F
fi
echo "清空网桥 FDB 缓存..."
sudo bridge fdb flush dev br0 2>/dev/null
echo -e "\n 所有网络缓存已清空完成!"
添加执行权限:
chmod +x flush-net-cache.sh
执行:
./flush-net-cache.sh
九、网络排错万能顺序
当你遇到:
- 上不了网
- SSH 连不上
- 域名解析异常
- 内网能通外网不通
- 网站加载异常
按这个顺序执行:
sudo ip -4 neigh flush all
sudo ip route flush cache
sudo systemd-resolve --flush-caches
sudo conntrack -F
绝大多数问题都会立刻恢复。
十、总结
Linux 网络缓存设计初衷是提升效率,但缓存过期、脏数据、设备更换都会导致异常。学会查看与清空各类缓存,是从 “重启解决一切” 到精准排错的重要一步。
收藏本文 + 保存一键脚本,以后遇到网络问题,不用再盲目重启了。