최근에 제가 기록한 명백한 DNS 확인 문제가 발생했습니다.여기이로 인해 /etc/resolv.conf를 더 조사하게 되었습니다.
내 Linux Mint 시스템에서 이것은 /run/systemd/resolve/stub-resolv.conf를 가리키는 심볼릭 링크이며 다음과 같습니다.
nameserver 127.0.0.53
options edns0 trust-ad
파일에는 실제로 더 많은 주석이 달린 줄이 포함되어 있었고 관리자는 내용을 변경하지 말라고 권고받았습니다(원래 문제를 해결하기 위해 결국 변경해야 했습니다).
약간의 연구 끝에 나는 최신 Linux 시스템이 새로운 resolveconf
패키지를 사용한다는 것을 이해했다고 생각합니다. 비록 매우 혼란스러운 sudo apt changelog resolvconf
최신 버전인 1.82는불안정한.
내 이해는 127.0.0.53이 DNS 요청을 필요한 조회를 수행하는 verifyconf로 리디렉션한다는 것입니다. 누구든지 이것을 확인할 수 있습니까?
이 게시물대체 DNS 서버를 사용한다고 주장하는 파일을 생성한 다음 sudo resolvconf -u
/etc/resolv.conf를 업데이트합니다. 글쎄, 이 명령은 버전 1.82에는 존재하지 않습니다. man resolvconf
가장 가까운 것이 표시되지만 resolvectl
페이지에는 그러한 -u 옵션이 표시되지 않으며 제안된 기본 파일도 언급되지 않습니다. 상황이 또 바뀌었나요? 아니면 그 기사의 댓글이 단순히 잘못된 것인가요?
내 임시 지름길은 심볼릭 링크를 삭제 /etc/resolv.conf
하고 동일한 이름과 내가 선택한 DNS 서버를 가진 파일을 만드는 것이었지만, 이로 인해solvconf 패키지가 완전히 쓸모 없게 되고 다른 부정적인 영향을 미칠 수 있다고 생각합니다. 그래서 나는 해야 할 일을 마치자마자 해킹을 재개합니다. 그 동안 나는 더 명확한 설명을 찾고 있으며 누군가가 여기에 대해 밝힐 수 있기를 바랍니다.
답변1
resolvconf
/etc/resolv.conf
다른 소스의 간섭 없이 각 소스에서 설정을 복원할 수 있는 방식으로 여러 소스(예: DHCP, 시스템 관리자의 정적 구성, VPN 클라이언트, 로컬 DNS 서버 설치...)의 파일을 업데이트할 수 있도록 설계된 도구였습니다. . 또한 후보 DNS 서버가 3개 이상 있을 때마다 처음 3개의 후보만 선택되도록 각 DNS 구성 소스에 대한 우선순위를 설정할 수 있습니다.
(DNS 시간 초과를 기본값에서 조정하지 않는 한 쿼리 시간 초과 이전에는 3번만 쿼리 시도가 가능하므로 3개 이상의 DNS 서버를 구성하는 것은 /etc/resolv.conf
일반적으로 쓸모가 없습니다.)
systemd-resolved
그러나 Ubuntu와 Mint는 classic .net 대신 glibc
DNS 확인자를 사용하도록 마이그레이션했다고 생각합니다 . hosts:
의 행 에 대신 또는 앞에 /etc/nsswitch.conf
있는 경우 resolve
이는 올바른 것입니다 dns
. 이 구성은 확인 없이 glibc의 호스트 이름 확인 API를 사용하여 수행된 모든 DNS 쿼리를 직접 라우팅합니다 systemd-resolved
. /etc/resolv.conf
(기술적으로는 libnss_resolve.so
대신 사용하세요 libnss_dns.so
.)
그러나 시스템에는 사용되지 않는 일부 레거시 응용 프로그램 이나 자체 DNS 쿼리를 구현하는 glibc
DNS 진단( nslookup
등 )이 있을 수 있지만 사용할 기본 DNS 서버를 알아보려면 읽어보세요. 따라서 DNS 서버와 유사한 인터페이스가 기본적으로 제공되며 (이 호환성 인터페이스가 비활성화되지 않는 한) 한 줄로 구성되므로 특수한 경우에도 결국 사용됩니다 .dig
/etc/resolv.conf
systemd-resolved
127.0.0.53:53
/etc/resolv.conf
nameserver 127.0.0.53
systemd-resolved
resolvectl
주로 관리 도구이며 systemd-resolved
그 기능은 (클래식 libnss_dns.so
파서 라이브러리 + ) resolvconf
의 상위 집합 입니다. 이 resolvectl
명령은 과 일부 호환되지만 resolvconf
호환성이 완벽하지는 않습니다. 기존 파일을 수정하거나 /etc/resolvconf/resolv.conf.d/
새 파일을 추가한 다음 [/var]/run/resolvconf/interface/
실행하는 대신resolvconf -u
resolvectl dns <interface name> 1.1.1.1 8.8.8.8
resolvectl domain <interface name> domain.name.example
resolvconf
와 가 모두 설치된 것으로 나타나므로 systemd-resolved
데비안 11에서와 같은 상황을 경험할 수 있습니다. 호환성 정보를 포함하여 man resolvconf
매뉴얼 페이지가 실제로 표시됩니다 . resolvectl
실제 매뉴얼 페이지를 보려면 resolvconf
를 입력해야 합니다 man 8 resolvconf
.
출력의 "불안정"은 sudo apt changelog resolvconf
버전이 불안정하다는 의미는 아닙니다.지금: 그 뜻은변경을 할 때이 버전은 Debian에 있습니다 unstable
. 보안 버그 수정의 경우 <releasename>-security
변경 unstable
로그는 개별 패키지 기록의 일부입니다. 패키지가 Debian 불안정에서 베타로, 또는 불안정/베타에서 Ubuntu, Mint 또는 기타 Debian 파생으로 이동된 경우입니다. 배포판은 다시 작성되지 않습니다.
답변2
다음을 사용해 볼 수 있습니다 systemd-resolved
.
- 누락된 네임서버를 다음에 추가하세요.
/etc/systemd/resolved.conf
- 파싱 구성 삭제
- 심볼릭 링크를
/run/systemd/resolve/stub-resolv.conf
그대로 두십시오.
resolvectl status
DNS 서버를 사용 하거나 확인 systemd-resolve --status
하고 테스트 이름 확인을 사용하십시오 systemd-resolve NAME
.