리눅스에서는 /etc/resolv.conf
DNS 서버를 관리하는 프로그램이 많기 때문에 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