1、yum install -y nscd 2、vi /etc/nscd.conf logfile /var/log/nscd.log threads 4 max-threads 32 server-user nscd debug-level 0 reload-count start 4、查看命中数nscd -g 5、清除缓存,nscd -i hosts 6、配置解析 enable-cache指定对DNS解析进行缓存。 suggested-size是NSCD内部的哈希表的大小,如果缓存条目数量远大于默认的211(如10倍以上,则修改此值)。 check-files是指是否检查/etc/hosts文件的变化。 persistent是指是否在重启NSCD进程时保留已缓存的条目。 shared是指是否允许客户端直接查询NSCD的内存镜像以获得结果。 max-db-size是指DNS的缓存大小,以字节为单位。
本文将介绍在Ubuntu 20.04 LTS上,使用SwitchHosts软件每次自动更新hosts文件后,自动刷新DNS缓存并重启nscd服务,使得hosts文件立即生效。 SwitchHosts界面在Ubuntu系统 正文 前提 首先本文默认你已经: 已经安装了指定版本或更新的SwitchHosts v4.1.2 (6086) for Linux 安装了nscd服务(使用 sudo apt-get install nscd安装即可) SwitchHosts上已经有稳定的可自动更新的Github的DNS解析记录(例如Github520、ineo6/hosts等提供的hosts 下面是我自己使用的命令: echo "hosts file updated" sudo -S /etc/init.d/nscd restart << EOF [su密码] EOF echo "nscd 如果效果不好,可以试试更换其他刷新DNS的方法,或者试试nscd专门刷新hosts缓存的命令sudo nscd -i hosts,直接添加到上述命令的后面即可(当然也可以替换你觉得没用的命令)。
NSCD在许多 Linux 发行版中默认安装,可以使用 systemctl status nscd 命令检查其运行状态。 如果需要启动、停止或重新启动 NSCD,可以使用 systemctl start nscd、systemctl stop nscd 或 systemctl restart nscd 命令。 nscd包。 图片将会在当前终端运行nscd进程,如果后台已经nscd服务,使用systemctl stop nscd暂停下即可。 比如使hosts缓存失效:nscd -i hosts图片6、-K, --shutdown终止nscd进程,此选项并不会影响systemd管理的nscd服务进程。
470 nscd cwd DIR 202,1 4096 2 / nscd 453 470 nscd 202,1 180272 146455 /usr/sbin/nscd nscd 453 470 nscd mem REG 202,1 217032 401548 /var/db/nscd/hosts nscd 453 470 nscd mem REG 401548 /var/db/nscd/hosts nscd 453 471 nscd 7u unix 0xffff880037497440 0t0 11015 /var/run/nscd/socket nscd 453 471 nscd 8u netlink 0t0
nscd(Name Service Cache Daemon)是一种能够缓存 passwd、group、hosts 的本地缓存服务,分别对应三个源 /etc/passwd、/etc/hosts、/etc 这里利用 nscd 的 hosts 缓存服务来实现 清除 CentOS 8 Linux 下的 DNS 缓存。 清缓存命令: 有可能nscd没装,下面讲解一下,安装,启动,清缓存的命令 1. 安装 nscd 2. 查看状态 及 启动命令 查看状态systemctl start nscd 启动 nscd nscd 服务默认是关闭的,通过service nscd start开启。 3. 启动nscd 服务后,清缓存 开启 nscd 的 hosts 缓存服务后,每次内部接口请求不会都发起 dns 解析请求,而是直接命中 nscd 缓存散列表,从而获取对应服务器 ip 地址,这样可以在大量内部接口请求时减少接口的响应时间
: $ sudo apt install nscd 正在读取软件包列表... /nscd_2.31-0ubuntu9.9_amd64.deb ... 正在解压 nscd (2.31-0ubuntu9.9) ... 正在设置 nscd (2.31-0ubuntu9.9) ... Created symlink /etc/systemd/system/multi-user.target.wants/nscd.service → /lib/systemd/system /nscd.service 最后再重启一下nscd服务即可: $ sudo /etc/init.d/nscd restart Restarting nscd (via systemctl): nscd.service.
最常见的服务有 nscd、dnsmasq 和 systemd-resolved。 nscd如果你的系统使用 nscd,你可以使用以下命令刷新 DNS 缓存:sudo systemctl restart nscd这将重启 nscd 服务,从而清空 DNS 缓存。 你可以使用以下命令来刷新 DNS 缓存:sudo systemd-resolve --flush-cachesDebianDebian 可能使用 nscd 或 dnsmasq 来管理 DNS 缓存。 你可以使用以下命令来刷新 DNS 缓存:sudo /etc/init.d/nscd restart或者sudo /etc/init.d/dnsmasq restartCentOSCentOS 使用 nscd 你可以使用以下命令来刷新 DNS 缓存:sudo systemctl restart nscd如何验证 DNS 缓存是否已经被成功刷新在刷新 DNS 缓存后,你可能想要验证 DNS 缓存是否已经被成功刷新
/sysconfig/netwrok-scripts/ifcfg-XXX /etc/init.d/network restart 修改/etc/resolv.conf 增加nameserver 安装nscd 管理dns缓存 yum install -y nscd systemctl start nscd systemctl enable nscd 刷新缓存 systemctl restart nscd
在这里遇到了一个最大的坑,在修改/etc目录的权限后,导致了系统无法登陆,之后查看应用日志才发现,系统启用了nscd服务的原因,具体原因无法确定,但是根据nscd服务的作用是缓存passwd、group 、hosts三种服务加快解析,可能原因是用户登录时认证先通过nscd服务缓存,但是nscd服务进程因权限设置无法读取/etc/group和/etc/passwd导致。 提示No user exists for uid 0,则是nscd服务进程无法读取/etc/passwd文件的原因,关闭nscd服务并禁止自启动则行: ? ? ? ?
安装软件包: make install 为 nscd 安装配置文件并创建运行时目录: cp -v .. /glibc-2.21/nscd/nscd.conf /etc/nscd.conf mkdir -pv /var/cache/nscd 为 nscd 安装系统支持文件: install -v -Dm644 /glibc-2.21/nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf install -v -Dm644 .. /glibc-2.21/nscd/nscd.service /lib/systemd/system/nscd.service 上面的命令并没有安装可以让你的电脑用不同语言响应的语言环境。
使用 nscd(CentOS / Ubuntu)sudo systemctl restart nscd# 或sudo /etc/init.d/nscd restart4. flushdnsMac:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderLinux:取决于 DNS 服务(systemd-resolved、nscd
在 Linux 上清除/刷新 DNS 缓存 在 Linux 上,除非已安装并运行诸如 Systemd-Resolved,DNSMasq 或 Nscd 之类的缓存服务,否则没有操作系统级 DNS 缓存。 需要重新启动 Dnsmasq 服务: $ sudo systemctl restart dnsmasq.service 也可以使用以下命令 $ sudo service dnsmasq restart NSCD NSCD 是一个缓存守护程序,它是大多数基于 RedHat 的发行版的首选 DNS 缓存系统。 如果系统使用 NSCD 来清除 DNS 缓存,则需要重新启动 NSCD 服务: $ sudo systemctl restart nscd.service 或者 $ sudo service nscd
sshd_config && \ echo "xxxxxxx" | passwd --stdin root && \ yum -y install pam_ldap.so authconfig nscd openldap-clients nss-pam-ldapd && \ yum -y install sudo && \ yum clean all ADD nscd /etc/dockerservices /nscd ADD nslcd /etc/dockerservices/nslcd COPY docker_entrypoint.sh / # Commands when creating a new
2、Linux 在 Linux 上,除非已安装并运行诸如 Systemd-Resolved,DNSMasq 或 Nscd 之类的缓存服务,否则没有操作系统级 DNS 缓存。 需要重新启动 Dnsmasq 服务: $ sudo systemctl restart dnsmasq.service 也可以使用以下命令 $ sudo service dnsmasq restart NSCD NSCD 是一个缓存守护程序,它是大多数基于 RedHat 的发行版的首选 DNS 缓存系统。 如果系统使用 NSCD 来清除 DNS 缓存,则需要重新启动 NSCD 服务: $ sudo systemctl restart nscd.service 或者 $ sudo service nscd
yum install -y nscd systemctl enable nscd systemctl start nscd 6.修改后验证,问题得已解决。 10.png 【总结】 1. 【附】开启NSCD DNS缓存服务的优点和缺点 优点 本地缓存DNS解析信息,提供解析速度。 DNS服务挂了也没有问题,在缓存服务时间范围内,解析依旧正常。 缺点 DNS解析信息会滞后,如域名解析更改需要手动刷新缓存,NSCD不适合做实时的切换的应用,目前对于依赖DNS切换的服务,建议不要开启DNS缓存。
先是dns请求,当开启dns缓存服务nscd时,程序里的域名解析不是直接连接resolver.conf的nameserver地址,而是直接跟nscd socket通信,nscd作为缓存服务有个名为hosts 当nscd无域名的缓存时会跟nameserver进行udp请求。如果无nscd服务,那么strace可以看到nameserver建连及解析过程。 总之ip的解析正确的。 // xiaori.cc [pid 10007] connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110 <unfinished
Debian/Ubuntu 安装openldap客户端 $ sudo apt install libnss-ldap libpam-ldap ldap-utils nscd 在Configuring libnss-ldap use_authtok,如下 password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass 重启nscd $ sudo systemctl restart nscd OpenLDAP访问权限 上面没有考虑OpenLDAP服务器设置了访问权限必须使用dn和密码的情况,如果设置了,参考下面的配置文件 sed
:Node节点上的DNS缓存是由操作系统负责管理的,可以通过以下方式进行配置和管理:查看缓存内容:使用命令行工具,如Windows下的ipconfig /displaydns,Linux下的sudo nscd Windows可以通过注册表的方式修改,默认为1小时;Linux的DNS缓存由nscd服务管理,可以通过修改/etc/nscd.conf文件来修改缓存时间。 Windows可以通过修改注册表的方式禁用缓存;Linux可以通过停止nscd服务来禁用缓存。需要注意的是,修改操作系统的DNS缓存配置和管理可能需要管理员权限,且不同操作系统的配置方式可能有所不同。
hosts 31.13.80.17 http://global-ssl.fastly.net 52.74.223.119 http://github.com 刷新缓存 yum install -y nscd service nscd restart 或者直接reboot now
防火墙设置 yum国内源设置 配置免密ssh 一些必须工具 jdk java开发 lrzsz 上传下载 wget 网络下载 telnet 网络相关 bind* 网络相关 net-tools 网络相关 nscd mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache # 一些工具 yum install telnet bind* nscd