Linux系统中,HTTP缓存的清理是释放存储空间、解决因缓存导致的内容加载异常(如旧页面显示、资源加载失败)的常见操作,HTTP缓存主要分布在浏览器本地存储、命令行工具临时目录及系统DNS缓存等位置,不同类型缓存的清理方式有所差异,需结合具体场景选择合适方法。
浏览器本地HTTP缓存清理
浏览器是HTTP缓存的主要生成者,其缓存通常存储在用户目录下的特定文件夹中,包含网页资源(图片、CSS、JS等)及会话数据,主流浏览器的缓存路径及清理命令如下:
Google Chrome/Chromium
缓存路径:~/.cache/google-chrome/Default/Cache/
(Chrome)或~/.cache/chromium/Default/Cache/
(Chromium)。
清理命令:
rm -rf ~/.cache/google-chrome/Default/Cache/* # 清理缓存文件(保留目录结构) rm -rf ~/.cache/google-chrome/Default/Code Cache/* # 清理JS编译缓存(如有)
注意:清理前需完全关闭Chrome浏览器,避免文件被占用导致删除失败。
Mozilla Firefox
缓存路径:~/.cache/mozilla/firefox/xxxx.default/cache2/
(xxxx.default
为随机 profiles 名称)及~/.cache/mozilla/firefox/xxxx.default/startupCache/
。
清理命令:
# 查找Firefox profiles目录 ls ~/.mozilla/firefox/ # 清理指定profiles的缓存(替换"xxxx.default"为实际名称) rm -rf ~/.cache/mozilla/firefox/xxxx.default/cache2/* rm -rf ~/.cache/mozilla/firefox/xxxx.default/startupCache/*
Firefox也可通过about:cache
页面查看缓存详情,或通过菜单“设置→隐私与安全→清除数据”图形化清理。
Microsoft Edge
缓存路径:~/.cache/microsoft-edge/Default/Cache/
及~/.cache/microsoft-edge/Default/Code Cache/
。
清理命令与Chrome类似:
rm -rf ~/.cache/microsoft-edge/Default/Cache/* rm -rf ~/.cache/microsoft-edge/Default/Code Cache/*
命令行工具HTTP缓存清理
开发或运维场景中,命令行工具(如wget
、curl
)也会生成HTTP缓存,需单独清理。
wget缓存
wget默认将缓存存储在~/.wget-hists
(下载历史)及~/.cache/wget/
(临时文件)。
清理命令:
rm -f ~/.wget-hists # 清空下载历史 rm -rf ~/.cache/wget/* # 清理临时缓存文件
若需禁用wget缓存,可使用-nc
(no-clobber)参数避免覆盖,或通过--cache=off
禁用缓存功能。
curl缓存
curl默认不启用文件缓存,但会存储DNS解析结果(可通过--dns-cache
控制),若需清理DNS缓存或临时文件:
# 清理curl的DNS缓存(需安装`libc-bin`或`bind-utils`) nscd -i hosts # 清理主机名缓存(适用于nscd系统) # 或直接删除curl可能的临时文件(如通过`--output`保存的文件需手动指定路径清理)
系统级HTTP缓存清理
除用户级缓存外,系统还可能存在代理服务器缓存或DNS缓存,影响HTTP请求。
代理服务器缓存(如Squid)
若系统运行Squid代理,缓存默认位于/var/spool/squid/
,清理需通过服务命令:
sudo systemctl stop squid # 停止服务 sudo rm -rf /var/spool/squid/* # 清空缓存目录 sudo squid -z # 重新初始化缓存 sudo systemctl start squid # 启动服务
DNS缓存
DNS缓存虽非HTTP缓存,但可能导致域名解析异常,需结合发行版清理:
- systemd-resolved系统(Ubuntu 18.04+、CentOS 8+):
sudo systemd-resolve --flush-caches
- nscd服务(CentOS 7、Debian旧版):
sudo nscd -i hosts sudo systemctl restart nscd # 重启服务生效
- NetworkManager管理的DNS(桌面Linux):
sudo nmcli dns flush
不同类型缓存清理方法总结
缓存类型 | 默认路径/命令 | 清理命令/操作 |
---|---|---|
Chrome缓存 | ~/.cache/google-chrome/Default/Cache/ | rm -rf ~/.cache/google-chrome/Default/Cache/* (关闭浏览器后执行) |
Firefox缓存 | ~/.cache/mozilla/firefox/xxxx.default/cache2/ | rm -rf ~/.cache/mozilla/firefox/xxxx.default/cache2/* |
wget缓存 | ~/.wget-hists、~/.cache/wget/ | rm -f ~/.wget-hists; rm -rf ~/.cache/wget/* |
curl DNS缓存 | 系统DNS缓存 | sudo systemd-resolve --flush-caches (systemd系统)或sudo nscd -i hosts |
Squid代理缓存 | /var/spool/squid/ | sudo systemctl stop squid; rm -rf /var/spool/squid/*; sudo squid -z; start squid |
相关问答FAQs
Q1:清理浏览器缓存后,是否会影响已保存的登录状态或书签?
A:清理缓存通常不会删除登录状态(存储在cookies中)或书签(存储在~//.config/google-chrome/Default/Bookmarks
等配置文件),但部分网站依赖本地存储(localStorage)的“记住登录”功能可能失效,若需保留登录状态,可通过浏览器设置“清除浏览数据”时勾选“缓存的图片和文件”,而保留“Cookies及其他网站数据”。
Q2:为什么清理HTTP缓存后,某些网页仍显示旧内容?
A:可能原因包括:① 浏览器启用了“硬缓存”(如Service Worker),需进入开发者工具(F12)选择“Application→Storage→Clear storage”手动清理;② CDN节点缓存未刷新,需等待CDT TTL(生存时间)过期或联系CDN服务商强制刷新;③ 本地hosts文件有域名映射,需检查/etc/hosts
文件是否包含旧IP地址。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38019.html