Centos 7에서 작업 중인데 네트워크 인터페이스를 dhcp에서 고정 IP 구성으로 설정하는 데 문제가 있습니다.
변경 사항 이 /etc/resolv.conf
사라지고 systemctl restart network.service
일반 파일이 생성되었습니다.
cat /etc/resolv.conf
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
참고: ifcfg-ens160 파일의 PEERDNS="yes"입니다.
PEERDNS=, 여기서는 다음 옵션 중 하나입니다. yes — DNS 지시어가 설정된 경우 /etc/resolv.conf를 수정합니다. DHCP를 사용하는 경우 기본값은 yes입니다.
no - /etc/resolv.conf를 수정하지 마십시오.
뭔가 관련이 있을 것 같지만 dhcp로 설정하면 제대로 작동하므로 /etc/resolv.conf
자동으로 구성하면 성공할 것으로 기대합니다.
해결 방법은 /etc/resolv.conf
서비스를 다시 시작한 후 편집하는 것입니다.
하지만 저는 이 동작과 파일이 기본 실패 메시지로 재설정되는 것을 방지하는 방법을 이해하고 싶습니다.
답변1
/etc/init.d/network
고전 (으로 번역됨 network.service
)을 와 비교할 수 있습니다 NetworkManager.service
. 이것들은 부분적으로 공존할 것으로 예상되지만 그중 하나만 선택하고 다음을 수행하는 것이 가장 좋습니다.멈추다그리고장애를 입히다또 다른.
/etc/resolv.conf
어느 쪽이든 직접 작성하지 않고 올바르게 구성 /etc/sysconfig/network
및/또는 /etc/sysconfig/network-scripts/ifup-*
파일링 하는 것이 좋습니다 .
활성화해야합니다DHCP또는 에서 네임서버를 수동으로 설정하세요 /etc/sysconfig
.
예(DHCP):
BOOTPROTO=dhcp
예(정적):
BOOTPROTO=none
DNS1=192.168.1.1
실제로 /etc/resolv.conf
직접 설정하고 NetworkManager가 덮어쓰지 않도록 하려면 에서 그렇게 할 수 있습니다 /etc/NetworkManager/NetworkManager.conf
.
[main]
dns=none
네임서버 수에 대한 추가 질문과 관련하여 /etc/resolv.conf
libc 확인자 동작에서 너무 많은 것을 기대해서는 안 됩니다. 단지 네임서버를 순서대로 시도하고 목록에 존재하지 않는 네임서버가 있는 경우 오랜 시간 지연이 발생하게 됩니다.
네임서버를 3개 이상 사용하시는 이유는 잘 모르겠습니다. 하지만 그런 것이 있다면 반드시 다음과 같은 로컬 전달 DNS 서버를 구성해야 합니다.속박되지 않은또는DNS동적 구성에 대한 최상의 경험을 위해서는 이 경우 NetworkManager를 사용해야 합니다 /etc/resolv.conf
.127.0.0.1
NetworkManager 및 dnsmasq는 오랫동안 지원되어 왔으며 Ubuntu 및 기타 배포판의 기본값입니다.
[main]
dns=dnsmasq
바인딩되지 않은 NetworkManager는 최신 NetworkManager 버전에서 알파 품질이며 현재 다음이 필요합니다.dnssec 트리거주요 사용 사례는 로컬 호스트에서 DNSSEC 유효성 검사를 제공하는 것이기 때문입니다.
[main]
dns=unbound
dnsmasq 및 언바운드 플러그인이 모두 /etc/resolv.conf
구성 되어 nameserver 127.0.0.1
있으며 각 플러그인은 자체 로컬 DNS 서버를 구성합니다.
답변2
이름 서버를 지정하려면 dhclient.conf를 사용하십시오. 이는 네임서버 항목의 순서를 세밀하게 제어할 수 있으며 네트워크 구성의 "Red Hat 방식"과 일치합니다.
dhclient.conf는 기본적으로 존재하지 않지만 생성할 수 있습니다.
interface "eth0" {
prepend domain-name-servers 8.8.8.8;
append domain-name-servers 8.8.4.4;
}
생성된 resolv.conf:
# Generated by NetworkManager
search example.com
nameserver 8.8.8.8
nameserver 10.0.2.3
nameserver 8.8.4.4
Vagrant로 테스트:
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.provision "shell", inline: <<VAGRANTEOF
cat <<EOF > /etc/dhcp/dhclient-eth0.conf
interface "eth0" {
prepend domain-name-servers 8.8.8.8;
append domain-name-servers 8.8.4.4;
}
EOF
sudo service network restart
VAGRANTEOF
end
추가 자료:
- dhclient.conf 맨페이지
- /usr/share/doc/dhclient-4.2.5/dhclient.conf.example