Linux下清除代理缓存与重置网络配置

271 阅读3分钟

在Linux系统中,代理缓存或网络配置错误可能导致访问异常(如无法连接、407认证失败或DNS解析错误)。本文将详细介绍如何彻底清除代理缓存并重置网络配置,恢复系统正常访问能力。


一、清除代理缓存****

1. 浏览器缓存清理****

· Firefox/Chrome
按 Ctrl+Shift+Delete 打开清除数据界面,勾选  “缓存的图像和文件”  及  “Cookie和其他站点数据” ,选择时间范围为  “全部”  后清除。

· 命令行工具(如 wget / curl
删除临时缓存目录(路径可能因发行版不同):

· 

bash

· 

· 

 rm -rf ~/.cache/wget/ # wget缓存
 rm -rf ~/.cache/mozilla/ # Firefox缓存(部分发行版)

· 

2. 代理服务器本地缓存****

· Squid代理
若系统运行本地Squid代理,清除缓存并重启服务:

· 

bash

· 

· 

 sudo squid -k shutdown # 停止服务
 sudo rm -rf /var/spool/squid/* # 删除缓存文件(路径可能不同)
 sudo squid -z # 重建缓存目录
 sudo systemctl start squid

· 

· Nginx反向代理
清除Nginx的proxy_cache目录(需在配置中确认路径):

· 

bash

· 

· 

 sudo rm -rf /var/cache/nginx/*
 sudo systemctl restart nginx

· 

3. 系统DNS缓存****

· Systemd-resolved(Ubuntu/Debian):

· 

bash

· 

· 

 sudo systemd-resolve --flush-caches

· 

· Dnsmasq

· 

bash

· 

· 

 sudo systemctl restart dnsmasq

· 

· Nscd(通用缓存服务):

· 

bash

· 

· 

 sudo systemctl restart nscd

· 


二、重置网络配置****

1. 清除环境变量中的代理设置****

· 检查并取消所有代理相关环境变量:

· 

bash

· 

· 

 unset http_proxy https_proxy all_proxy no_proxy
 # 永久删除(编辑~/.bashrc或/etc/environment)
 sudo sed -i '/http_proxy/d' /etc/environment

· 

2. 重置NetworkManager配置****

· 方法一:通过nmcli重置连接:

· 

bash

· 

· 

 nmcli connection reload # 重新加载配置
 nmcli connection modify <连接名> ipv4.ignore-auto-dns yes # 禁用自动DNS

· 

· 方法二:删除并重建连接(谨慎操作):

· 

bash

· 

· 

 nmcli connection delete <连接名> # 删除现有配置
 nmcli device wifi connect password <密码> # 重新连接WiFi

· 

3. 恢复默认网络服务****

· 禁用代理相关服务(如cntlm、polipo):

· 

bash

· 

· 

 sudo systemctl stop cntlm polipo
 sudo systemctl disable cntlm polipo

· 

· 重置 /etc/resolv.conf(防止被覆盖):

· 

bash

· 

· 

 sudo chattr -i /etc/resolv.conf # 取消只读锁(如有)
 echo "nameserver 8.8.8.8"sudo tee /etc/resolv.conf # 恢复默认DNS

· 

4. 重启网络服务****

· 根据发行版选择命令:

· 

bash

· 

· 

 sudo systemctl restart NetworkManager # Ubuntu/CentOS 7+
 sudo systemctl restart networking # Debian旧版
 sudo /etc/init.d/network restart # CentOS 6

· 


三、验证修复效果****

1. 测试无代理访问

2. 

bash

3. 

4. 

 curl -v example.com # 应直接连接,无代理相关输出

5. 

6. 检查DNS解析

7. 

bash

8. 

9. 

|   | dig example.com | grep "QUERY TIME" # 确认解析时间正常 | | - | ----------------------------------------------- |

10. 

11. 确认环境变量

12. 

bash

13. 

14. 

|   | env | grep -i proxy # 应无输出 | | - | --------------------------- |

15. 


四、预防措施****

· 统一管理代理:通过脚本或配置管理工具(如Ansible)集中设置代理,避免手动修改导致冲突。

· 定期清理缓存:为代理服务设置cron任务自动清理旧缓存。

· 备份配置:修改网络配置前备份/etc/NetworkManager/或/etc/sysconfig/network-scripts/目录。

通过以上步骤,可彻底清除代理缓存并重置网络配置,解决因代理或网络错误导致的访问问题。