응용 프로그램이 내 /etc/resolv.conf DNS를 수정하는 것을 방지할 수 있습니까?

응용 프로그램이 내 /etc/resolv.conf DNS를 수정하는 것을 방지할 수 있습니까?

저는 최근 기술적으로 오랫동안 저를 괴롭혔던 문제에 직면했습니다. 내 Fedora 32 DNS 구성이 /etc/resolv.conf알 수 없는 응용 프로그램에 의해 계속 수정됩니다. 수정된 구성은 다음과 같습니다.

[dolphin@MiWiFi-R4CM-srv]~/Documents/GitHub/reddwarf-music% sudo cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.31.1
nameserver 8.8.8.8
nameserver 114.114.114.114

내가 원하는 dnsconf는 다음과 같습니다.

nameserver 8.8.8.8

난 그냥 8.8.8.8DNS를 원해요. 수정하면 /etc/resolv.conf잘못된 구성이 됩니다. DNS 구성을 제어하려면 어떻게 해야 합니까?

답변1

이걸 쓰다/etc/NetworkManager/NetworkManager.conf

[main]
dns=none

/etc/resolv.confNetworkManager가 자체적으로 관리되지 않는 항목과 알고 있는 프로그램( unbound, dnsmasqsystemd-resolved) 으로 표시했기 때문에 변경되지 않은 상태 로 유지됩니다 . 에서 man NetworkManager.conf다음 섹션Main및 키dns

none: NetworkManager will not modify resolv.conf. This implies rc-manager unmanaged

또는 원하는 DNS 서버로 설정 systemd-resolved하고 편집 할 수 있습니다./etc/systemd/resolved.conf

[Resolve]
DNS=192.162.0.1, 9.9.9.9 # Whatever DNS server IP addresses you want, comma separated.
FallbackDNS=8.8.8.8, 1.1.1.1 # Same as above. 

systemd-resolved.service나중에 활성화하는 것을 잊지 마세요 .

답변2

진짜 답은 chattr

예, NetworkManager가 이 파일을 변경하지 못하도록 방지할 수 있습니다. 하지만 다른 애플리케이션이나 프로세스는 어떻습니까? 파일이 변경되는 것을 방지합니다.

chattr +i file

파일을 다시 변경할 수 있도록 허용:

chattr -i file

답변3

dhcpcd.conf매뉴얼 페이지 에 따르면 ,

nohook script
    Don't run this hook script.  Matches full name, or prefixed with 2 numbers optionally ending with .sh.

    So to stop dhcpcd from touching your DNS settings or starting wpa_supplicant you would do:-
    nohook resolv.conf, wpa_supplicant

그래서 당신의 것에 추가합니다 dhcpcd.conf(내 것이 위치합니다 /etc/dhcpcd.conf) :

nohook resolv.conf

dhcpcd또는 will을 사용하여 실행하면 -C동일한 작업이 수행되지만 일시적으로만 수행됩니다.

dhcpcd -C resolv.conf eth0

관련 정보