首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >笔记 | SwitchHosts自动刷新DNS缓存和重启nscd服务[Ubuntu]

笔记 | SwitchHosts自动刷新DNS缓存和重启nscd服务[Ubuntu]

作者头像
Ranlychan
发布2023-03-05 16:37:38
发布2023-03-05 16:37:38
4K0
举报
文章被收录于专栏:蓝里小窝蓝里小窝

介绍

众所周知,Github在国内由于DNS污染而常常无法访问。故而诞生了种种解决手段。其中修改本地hosts文件直接进行本地DNS解析是其中一个合法且免费的手段。

本文将介绍在Ubuntu 20.04 LTS上,使用SwitchHosts软件每次自动更新hosts文件后,自动刷新DNS缓存并重启nscd服务,使得hosts文件立即生效。

SwitchHosts界面在Ubuntu系统

正文

前提

首先本文默认你已经:

  1. 已经安装了指定版本或更新的SwitchHosts v4.1.2 (6086) for Linux
  2. 安装了nscd服务(使用sudo apt-get install nscd安装即可)
  3. SwitchHosts上已经有稳定的可自动更新的Github的DNS解析记录(例如Github520ineo6/hosts等提供的hosts源)

步骤

很简单,只需在SwitchHosts的设置->偏好(Preferences)->命令行(Commends)中,写入刷新DNS缓存的命令即可。

下面是我自己使用的命令:

代码语言:javascript
复制
echo "hosts file updated"
sudo -S /etc/init.d/nscd restart << EOF 
[su密码]
EOF
echo "nscd restarted"
sudo systemd-resolve --flush-caches 
echo "dns caches flushed"

请将里面的[su密码]自行替换为自己的管理员密码,不需要添加["等。

如果效果不好,可以试试更换其他刷新DNS的方法,或者试试nscd专门刷新hosts缓存的命令sudo nscd -i hosts,直接添加到上述命令的后面即可(当然也可以替换你觉得没用的命令)。

添加命令行

添加并保存后,尝试开关一次某个hosts源,再回来设置界面,点击查看历史记录(Show History)查看命令行的历史执行情况,看看有没有报错。正常执行则应该如下图:

正常执行显示的执行日志

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 正文
    • 前提
    • 步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档