Linux에서 DNS 구성
리눅스에서의 DNS 사용 은 인터넷 도메인 네임 시스템 (DNS)에 대한 액세스를 제공하는 C 라이브러리의 루틴 세트를 통해 이루어집니다 . 확인자 구성 파일 ( resolv.conf
)에는 프로세스가 처음 호출 할 때 확인자 루틴이 읽는 정보가 포함되어 있습니다. 간단히 말해 DNS를 요청하는 각 프로세스는 /etc/resolv.conf
라이브러리 를 읽 습니다. NSS 는이 위에 쌓여 있으며에 의해 구성됩니다 /etc/nsswitch.conf
.
Linux DNS 구성 은 파일에 /etc/resolv.conf
있지만 에서 DNS 구성 파일을 자동으로 관리하고 처리하려는 많은 프로그램 / 서비스가 /etc/resolv.conf
있습니다. 경우에 따라이 파일을 직접 관리 할 수도 있습니다. DNS를 관리하는 각 프로그램 / 서비스는 /etc/dnsmasq.conf
(dnsmasq 서비스 용)과 같은 자체 구성 파일을 가지고 있으며 연결 변경 및 / 또는 기타 이벤트에서 DNS 구성을 추가합니다 ... 빠른 해결책은 DNS 구성 파일을 잠그는 chattr +i /etc/resolv.conf
것이지만 권장하지는 않습니다 어떤 경우에는 (dnsmasq / network-manager / resolvconf / etc와 같은) DNS를 사용하여 모든 프로그램 / 서비스를 올바르게 설정하는 것이 더 나은 솔루션입니다.
DNS 제어권 회복
다음은 resolv.conf의 제어를 되찾고 덮어 쓰지 않도록 하는 전체 설정 목록입니다 ( resolv.conf 이외의 다른 위치에서 DNS를 비활성화 / 설정하는 방법 ). resolvconf는 resolv.conf와는 독립적 인 프로그램입니다. 시스템 / 구성에 따라 여기에 나열된 하나 이상의 프로그램이 없을 수 있습니다.
1. Resolvconf :
구성 파일
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
구성 업데이트
sudo resolvconf -u
resolvconf 비활성화
systemctl disable --now resolvconf.service
2. Dnsmasq 서비스 :
구성 파일
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
구성 업데이트
sudo systemctl restart dnsmasq.service
3. 네트워크 관리자 :
구성 파일
/etc/NetworkManager/*
DNS 비활성화
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
DNS 사용
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
해결 된 서비스 사용
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
resolvconf 사용
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
구성 업데이트
systemctl restart NetworkManager.service
4. 네트워크 인터페이스 :
구성 파일
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
구성 업데이트
reboot
5. DHCP 클라이언트 :
구성 파일
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
구성 업데이트
reboot
6. Rdnssd 서비스 :
rdnssd 비활성화
systemctl disable --now rdnssd.service
7. 해결 된 서비스 :
해결 비활성화
systemctl disable --now systemd-resolved.service
8. Netconfig :
구성 파일
/etc/sysconfig/network/config
netconfig 비활성화
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
구성 업데이트
reboot
DNS 서버 설정
/etc/resolv.conf
구성 예
#Cloudflare
nameserver 1.0.0.1
#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4
#Cloudflare
#nameserver 1.1.1.1
#Classic Config
#nameserver 192.168.1.1
#search lan