如何清除 Ubuntu 服务器 20 上运行的程序的 DNS 缓存

如何清除 Ubuntu 服务器 20 上运行的程序的 DNS 缓存

我已将 LDAP 服务器 (ldap.intranet.local) 从一台机器 (192.168.0.5) 上的 VM 移至新服务器 (192.168.0.7) 上的 docker 容器。我已更新 DNS 记录。当我关闭 VM 上的 LDAP 服务时,我无法再登录,并且报告的错误是无法联系 LDAP 服务器。使用时ldapsearch显示同样的问题。

我已使用 刷新了 DNS 缓存sudo systemd-resolve --flush-caches。我已重新启动nscdnslcdlibnss-ldap(反复)。

我在网上找到的一份指南建议这样做systemctl restart dnsmasq。这会导致Failed to restart dnsmasq.service: Unit dnsmasq.service not found.被举报。

另一个指南建议/etc/init.d/dns-clean start。我的系统中不存在此文件。

如果我这样做,nslookup我就会获得正确的 IP 地址。

如果我这样做,ping ldap我就会获得正确的 IP 地址。

如果我这样做,ping ldap.intranet.local我会得到旧的 IP 地址。

LDAP 已配置为使用ldap.intranet.localldapsearch该主机名仍然坚决拒绝工作。

我无法重新启动机器,因为它有一个加密硬盘,而且我正在远程工作。

我听说不同的程序使用不同的名称解析机制。

我怎样才能彻底清除所有缓存的名称解析?

一段时间后问题会自行消失吗?如果我让旧虚拟机运行一段时间,然后稍后将其关闭,问题会解决吗?我预计要等多久?

- - 更新 - -

除了将 LDAP 添加到 /etc/nsswitch.conf(并摆弄它以使其工作)之外,这些文件都是安装时的默认文件。

在 /etc/hosts 中:

127.0.0.1 localhost
127.0.1.1 my_server

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

/etc/resolv.conf:

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad
search intranet.local

/etc/nsswitch.conf:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

#passwd:         files ldap systemd
#group:          files ldap systemd
#shadow:         files ldap
passwd:         compat systemd ldap
group:          compat systemd ldap
shadow:         compat

gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

相关内容