CentOS는 /etc/resolv.conf
정기적으로 수행 한 수동 변경 사항을 모두 지 웁니다. Linux의 기본값은 적절한 시간에 장애 조치 (failover) 측면에서 좋지 않습니다 (매번 동일한 순서로 쿼리 이름 서버, 5 초 시간 초과, 2 회 재시도).
따라서 귀하의 첫 번째 DNS resolv.conf
는 본질적으로 중요한 경로입니다. 실패하면 10 초 전에 장애 조치를 수행 할 수 있습니다.
이러한 기본값은 조정할 수 있지만 ( resolv.conf 매뉴얼 페이지 참조) CentOS에서 어떻게 변경 사항을 영구적으로 적용하고 재부팅 등을 통해 유지할 수 있습니까?
답변
대답은 다음에서 찾을 수 있습니다 /sbin/dhclient-script
.
if [ -n "${RES_OPTIONS}" ]; then
echo "options ${RES_OPTIONS}" >> ${rscf}
fi
그러나 RES_OPTIONS
스크립트에서 스크립트를 선택하도록 설정할 수있는 곳은 분명하지 않습니다. 검색 도메인과 같은 일부 ifcfg-ethX
파일에 설정할 수 있지만 리졸버 옵션은 다른 곳에 설정되어 있습니다. 원하는 파일은 실제로 /etc/sysconfig/network
입니다. 관련 옵션을 설정하려면 해당 파일에 다음 줄을 추가하십시오.
RES_OPTIONS="rotate timeout:1 retries:1"
타임 아웃을 1 초로 설정하고 단일 재 시도를 사용하고 매번 목록을 순차적으로 처리하는 대신 요청마다 리졸버를 회전하도록 클라이언트에 지시합니다.
변경 사항을 즉시 적용 service network restart
하려면 명령을 내리고 새로운 /etc/resolv.conf
영광을 확인하십시오 . 이것을 테스트 할 때 내 모습은 다음과 같습니다.
# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search example.com
options rotate timeout:1 retries:1
nameserver 10.1.1.2
nameserver 10.1.1.1
답변
레거시 네트워킹 스크립트를 사용할 때 허용되는 답변입니다. NetworkManager 를 사용하는 경우 네트워크 관리자 가 없을 수도 있으며 /etc/sysconfig/network
, 사용하는 경우 여전히 NetworkManager가 관리하는 연결에 사용되지 않습니다 .
NetworkManager 를 사용하는 경우 :
예는 추가 옵션을 추가 rotate
로를 bond0
:
nmcli con mod bond0 +ipv4.dns-options rotate
해당 옵션을 제거하려면
nmcli con mod bond0 -ipv4.dns-options rotate
+
옵션도 변경 하는 것이 좋습니다. NetworkManager 는 기존 옵션을 감지하고 업데이트 할 수있을 정도로 똑똑합니다. 예를 들어, 시간 종료 값 변경 :
root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options: "rotate,timeout:5"
root@debian:~# nmcli con mod bond0 +ipv4.dns-options timeout:3
root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
ipv4.dns-options: "rotate,timeout:3"
이는 제거를 위해 값이 무시되고 필요하지도 않음을 의미합니다. 시간 초과를 제거하려면
nmcli con mod bond0 -ipv4.dns-options timeout
시간 초과 값으로도 작동하지만 해당 값은 무시 되므로 제거 timeout:5
하면 다른 시간 초과 값도 제거됩니다.
NB :이를 살펴 보면서 네트워크 관리자 v1.14.6 , v1.15.2-dev 및 v1.16 에서 수정 된 관련 버그 가 발견되었습니다 . 문제가 발생하면 먼저 네트워크 관리자 버전을 확인하십시오 .
답변
nmcli
구성 관리 도구와 같은 명령이 아닌 플랫 파일로이 작업을 수행해야하는 경우 Red Hat은 다른 솔루션을 제공합니다.
/etc/NetworkManager/dispatcher.d/15-resolv
사용자 정의 /etc/resolv.conf
를 제자리에 복사 하는 스크립트를 작성하십시오 .
#!/bin/bash
#
# Description : script to override default resolv.conf file
# with customized file.
cp -f /etc/resolv.conf.custom /etc/resolv.conf
NetworkManager를 다시 시작하면이 스크립트가 실행되어 파일을 자신의 것으로 바꿉니다.
답변
/etc/resolv.conf
파일을 모두 함께 관리하지 않도록 NetworkManager에 지시 할 수 있습니다 .
/etc/NetworkManager/conf.d/90-dns-none.conf
다음 내용으로 파일을 작성하십시오 .[main] dns=none
NetworkManager 서비스를 다시로드하십시오.
systemctl reload NetworkManager
이 문서에는 /etc/resolv.conf
파일에 대한 심볼릭 링크로 대체하는 두 번째 솔루션이 있습니다.
이에게 읽어주세요 : 22. 수동으로 /etc/resolv.conf 파일을 구성
답변
그냥 추가
resolv_conf_options=rotate\ timeout:1\ retries:1
당신의 resolvconf.conf
답변
지난번에 새로 가입 한 Linux VPS에서 같은 문제에 직면했습니다. 내가 해결 한 방법은 chattr + i 명령을 사용하여 파일을 변경할 수 없도록하는 것이 었습니다. resolv.conf 파일을 필요한대로 변경 한 후 / etc 폴더로 이동하여이를 실행하십시오.
chattr + i resolv.conf
설정을 되돌리려면 다음과 같이하십시오.
chattr -i resolv.conf
참조를위한 전체 지침 :
http://boxtutor.com/fix-etcresolv-conf-is-not-saving-after-server-reboot/