Linux에서의 DNS 구성

Linux에서의 DNS 구성

리눅스에서는 /etc/resolv.confDNS 서버를 관리하는 프로그램이 많기 때문에 DNS를 설정할 때 다뤄지는 경우가 많습니다.

DNS를 올바르게 설정하는 방법은 무엇입니까?

답변1

Linux에서의 DNS 구성

Linux에서 DNS 사용이 완료되었습니다.인터넷 DNS(Domain Name System)에 대한 액세스를 제공하는 C 라이브러리의 루틴 세트입니다. 파서 구성 파일( resolv.conf)에는 프로세스에서 파서 루틴을 처음 호출할 때 읽는 정보가 포함되어 있습니다. 즉, DNS를 요청하는 모든 프로세스는 /etc/resolv.conf라이브러리를 읽습니다.국가안보국그 위에 위치하며 에 의해 구성됩니다 /etc/nsswitch.conf.

리눅스 DNS 구성파일에 위치/etc/resolv.conf 하지만거기에 있는 DNS 구성 파일을 자동으로 관리하고 처리하려는 많은 프로그램/서비스가 있습니다 /etc/resolv.conf. 어떤 경우에는 이 파일을 직접 관리하고 싶을 수도 있습니다. DNS를 관리하는 각 프로그램/서비스에는 고유한 구성 파일(예 /etc/dnsmasq.conf: dnsmasq 서비스용)이 있으며 연결 변경 및/또는 기타 이벤트에 DNS 구성을 추가합니다. 빠른 해결책은 DNS 구성 파일을 잠그는 것입니다 chattr +i /etc/resolv.conf. 아니요 어떤 경우에는 DNS(dnsmasq/network-manager/resolvconf/etc)를 사용하여 모든 프로그램/서비스를 올바르게 설정하는 것이 더 나은 해결책인 것이 좋습니다.

DNS 제어권을 되찾으세요

전체 설정 목록입니다.resolv.conf의 제어권을 다시 얻습니다.덮어쓰지 마세요(resolv.conf가 아닌 다른 곳에서 DNS를 비활성화/설정하는 방법) resolvconf는 resolv.conf와 별도의 프로그램이며 시스템/구성에 따라 여기에 나열된 프로그램 중 하나 이상이 없을 수도 있습니다.

1. 구문 분석 구성:

구성 파일

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. 네트워크 구성:

구성 파일

/etc/sysconfig/network/config

네트워크 구성 비활성화

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

답변2

Fedora 36에서는 다음을 수행했습니다.

# print existing DNS settings for all interfaces
$ resolvectl dns

# set new DNS
$ resolvectl dns enp0s22f6 8.8.8.8 8.8.4.4

# check again
$ resolvectl dns

관련 정보