上一篇
2025年8月最新动态:
近期全球多地用户报告DNS污染导致的访问异常,部分主流云服务商已升级加密DNS协议(如DoH/DoT),Linux基金会建议管理员定期清理本地DNS缓存以规避劫持风险,尤其对长期运行的服务器而言。
当你访问某个网站时,系统会先通过DNS解析将域名(如google.com
)转换成IP地址,为了加速后续访问,Linux会将解析结果临时保存在DNS缓存中,但以下情况可能导致缓存失效:
不同Linux发行版和网络管理工具对应的操作略有差异,以下是详细步骤:
# 查看当前DNS缓存状态 sudo systemd-resolve --statistics # 清除缓存 sudo systemd-resolve --flush-caches # 验证是否生效(输出应为空) sudo systemd-resolve --cache | grep -v "NO-CACHE"
适用于手动安装NSCD服务的系统:
# 重启NSCD服务 sudo systemctl restart nscd # 或直接删除缓存文件(激进方案) sudo rm -f /var/cache/nscd/hosts sudo systemctl restart nscd
# 发送USR1信号触发缓存清理 sudo killall -USR1 dnsmasq # 或通过服务重启 sudo systemctl restart dnsmasq
# 先关闭网络连接 sudo nmcli connection down eth0 # 清除缓存后重新连接 sudo nmcli connection up eth0
# 直接调用缓存清理 sudo /etc/init.d/nscd restart
某些浏览器会维护独立DNS缓存,需手动操作:
chrome://net-internals/#dns
→ 点击"Clear host cache" about:config
→ 搜索network.dnsCacheExpiration
→ 临时改为0
编辑/etc/sysctl.conf
,添加:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
执行sudo sysctl -p
生效
修改/etc/resolv.conf
(注意:部分系统会覆盖该文件):
nameserver 8.8.8.8 # Google DNS nameserver 208.67.222.222 # OpenDNS
通过cronjob每天凌晨清理:
# 编辑crontab sudo crontab -e # 添加以下行(以systemd-resolved为例) 0 3 * * * /bin/systemd-resolve --flush-caches
使用dig
或nslookup
测试:
dig example.com +stats # 观察"Query time"是否为首次解析值 nslookup example.com # 检查返回IP是否与预期一致
注意事项:
/etc/hosts
文件是否有静态绑定 通过合理管理DNS缓存,可显著减少"域名无法访问"等故障,提升网络响应速度,建议根据实际环境选择最适合的方案。
本文由 蒲柔雅 于2025-08-02发表在【云服务器提供商】,文中图片由(蒲柔雅)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/514432.html
发表评论