Ubuntu网络缓存怎么清除
小樊
36
2025-11-17 16:52:33
Ubuntu 网络缓存清理指南
一、先确认你正在处理的缓存类型
- DNS 缓存:由本地解析器(如 systemd-resolved、dnsmasq、nscd)保存域名解析结果,域名改 IP 或解析异常时需要刷新。
- ARP 缓存:将 IP ↔ MAC 映射缓存在本机,局域网设备更换或 IP 冲突时需要清理。
- 路由表缓存:本机转发表项,错误路由或异常时按需删除或重启网络服务恢复。
- 内核网络内存缓存(PageCache/Dentries/Inodes):用于加速 I/O,不是“网络”意义上的缓存,仅在特殊排障时临时释放。
- 应用层缓存:如 APT 软件包缓存、浏览器/程序缓存,与网络解析无关,但常一起被提及。
二、按类型执行清理
-
DNS 缓存
- 使用 systemd-resolved(Ubuntu 默认常见):
- 查看状态:
sudo systemd-resolve --statistics
- 刷新缓存:
sudo systemd-resolve --flush-caches
- 使用 dnsmasq(常见于路由器或本地 DNS 代理/某些桌面环境):
- 重启服务:
sudo systemctl restart dnsmasq
- 使用 nscd(Name Service Cache Daemon):
- 重启服务:
sudo systemctl restart nscd
- 若不确定使用哪种解析器,可依次尝试上述方法,或重启 NetworkManager 触发解析器重建:
sudo systemctl restart NetworkManager。
-
ARP 缓存
- 查看:
arp -a
- 清空全部:
sudo ip neigh flush all
- 删除指定条目:
sudo ip neigh del <IP地址> dev <网卡名>(例:sudo ip neigh del 192.168.1.1 dev eth0)。
-
路由表
- 查看:
ip route show
- 删除错误/临时路由:
sudo ip route del <目标网段>
- 不建议清空整张路由表,通常通过重启网络服务恢复默认:
sudo systemctl restart NetworkManager 或 sudo systemctl restart networking。
-
内核网络内存缓存(仅在排障时临时使用)
- 同步数据:
sync
- 仅清页缓存:
echo 1 | sudo tee /proc/sys/vm/drop_caches
- 清目录项与 inode:
echo 2 | sudo tee /proc/sys/vm/drop_caches
- 全部清理:
echo 3 | sudo tee /proc/sys/vm/drop_caches
- 风险提示:会短暂影响 I/O 性能,生产环境慎用。
三、容易混淆但不是网络缓存的清理
- APT 软件包缓存(磁盘空间相关)
- 清理所有已下载包:
sudo apt clean
- 仅清理过期包:
sudo apt autoclean
- 删除不再需要的依赖:
sudo apt autoremove
- 用户/系统临时与应用缓存
- 用户缓存:
rm -rf ~/.cache/*
- 系统临时目录:
sudo rm -rf /tmp/*
- 日志精简:
sudo journalctl --vacuum-time=2d
- Snap 缓存:
sudo rm -rf /var/lib/snapd/cache/*
- Flatpak 未使用运行时:
flatpak uninstall --unused
- 旧内核清理(保留当前与最新备用):先
uname -r 确认版本,再 sudo apt purge linux-image-<版本号>-generic。
四、操作建议与排错提示
- 优先确认本机使用的 DNS 解析器(如 systemd-resolved),再选择对应刷新方式;不确定时重启 NetworkManager 通常可恢复一致性。
- 清理 ARP/路由 可能影响正在进行的网络连接,建议在维护时段执行,并确保有可用的回退网络(如手机热点)。
- 清理内核内存缓存仅用于定位“缓存导致”的异常,不作为日常优化手段。
- 执行删除/清理命令前,建议备份关键配置,并避免在生产环境频繁操作。