저는 명령줄을 통해 업데이트하는 동적 DNS 서비스를 사용하고 있습니다. 이제 내 문제는 IP를 업데이트한 후에도 Linux가 dyndns-Adress에 액세스하려고 할 때 여전히 이전 IP를 사용한다는 것입니다.
동적 DNS 주소에 대해 ping이나 Nmap을 사용할 때 데비안이 업데이트된 DNS 정보를 요청하도록 하려면 어떻게 해야 합니까?
답변1
이는 로컬 DNS 확인자가 작동하는 방식에 따라 다릅니다. Debian 11에서는 다음을 시도해 볼 수 있습니다(항상 루트로):
/lib/systemd/systemd-resolved --flush-caches
resolvectl flush-caches
동일한 작업을 수행해야 합니다. systemd의 NS 캐시를 무효화하는 또 다른 방법은 다음과 같습니다.
pkill -USR2 systemd-resolved
이름 서비스 캐시 데몬(nscd)을 사용하는 경우 다음 명령을 사용해야 합니다.
nscd --invalidate=hosts
답변2
이것이 XY 문제입니다.
여기서 묻는 질문(클라이언트가 DNS 레코드를 다시 얻도록 하는 방법)은 로컬을 새로 고치는 경우 권한 있는 동적 DNS 서버를 DNS 공급자로 사용하지 않는 한 문제(클라이언트에 현재 DNS 레코드가 있는지 확인)를 해결하지 못합니다. 사용 중인 다른 DNS 서버의 캐시를 플러시하지 않고 컴퓨터의 캐시를 캐시합니다.
로컬 컴퓨터가 변경 사항을 즉시 반영하기 위해 DNS 레코드가 필요한 유일한 호스트이고 TTL을 제어할 수 없다면 호스트 파일을 사용하는 것이 좋습니다(또는 확인자가 지원하는 경우 재정의).
모든 클라이언트에 대한 DNS 레코드를 업데이트해야 하고 TTL을 변경할 수 없는 경우 DNS 서비스가 귀하의 목적에 적합하지 않은 것입니다. 다른 것을 사용하거나 직접 설정하십시오.