따르다데비안 네트워크 구성 위키, 저는 정적 설정을 시도하고 있습니다오픈NIC DNS성공하지 못했습니다. 처음에 직접 편집을 해봤는데 /etc/resolv.conf
계속 덮어씌워지더라고요. 위키 페이지에는 세 가지 가능한 범위 소스가 나열되어 있습니다.
- 이것
resolvconf
프로그램- 이것
network-manager
악마- DHCP 클라이언트
$ apt-cache policy resolvconf
resolvconf:
Installed: (none)
Candidate: 1.76.1
Version table:
1.76.1 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
$ apt-cache policy network-manager
network-manager:
Installed: (none)
Candidate: 0.9.10.0-7
Version table:
0.9.10.0-7 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
내가 갖고 있지 않거나 설치되어 있지 않다는 점을 고려하면 resolvconf
소스 network-manager
가 DHCP 클라이언트라고 가정할 수 있습니다. wicd
대안을 사용하고 있지만 network-manager
속성에 정적 DNS를 설정하면 wicd-gtk
작동하지 않습니다. 그래서 /etc/dhcp/dhclient.conf
추가하여 편집했지만 여전히 supersede domain-name-servers 50.116.40.226;
다음과 /etc/resolv.conf
같습니다.
$ cat /etc/resolv.conf
nameserver 2001:558:feed::2
nameserver 2001:558:feed::1
정확히 무슨 일이 일어나고 있는 걸까요? 설치해서 resolvconf
작동하는지 확인해 볼까요? 포기 wicd
하고 설치 해야 할까요 network-manager
?
답변1
귀하의 DHCP 서버가 원치 않는 응답을 보내는 것 같습니다. 따라서 대체 매개변수를 설정하면 resolv.conf도 덮어쓰게 됩니다. +i 속성을 추가하는 것이 해결책일 수 있지만 일부 변경이 필요한 경우 수동으로 설정을 해제하고 재설정해야 합니다.
실제로 클라이언트 측에서 일부 스크립트를 작성할 수 있습니다(참조:man 8 dhclient-script
).
이 주제도 설명되어 있습니다.데비안 위키:
또 다른 방법은 dhclient-script 후크 스크립트를 활용하는 것입니다. dhclient-script(8)에 따르면:
시작 시 클라이언트 스크립트는 먼저 나중에 /etc/resolv.conf 파일을 생성하는 데 사용되는 쉘 함수 make_resolv_conf를 정의합니다. 기본 동작을 재정의하려면 Enter 후크 스크립트에서 이 함수를 재정의하세요. 따라서 다음을 수행하여 dhclient가 resolv.conf를 덮어쓰는 것을 방지할 수 있습니다.
echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
dhclient-script가 읽을 파일을 결정하기 위해 run-parts(8)를 사용하기 때문에 실행 비트가 필요합니다. 같은 이유로 파일 이름에는 문자, 숫자, 밑줄, 하이픈 외에는 어떤 것도 포함할 수 없습니다.
답변2
dhcp 클라이언트가 조작된 /etc/resolv.conf를 업데이트하지 못하도록 하려면 다음 해결 방법을 사용하십시오.
# chattr +i /etc/resolv.conf
답변3
그런데 친구도 아니고 일이 잘 안 풀리는데, 떠나기 전에 잘 살펴봐야 하니까 "chattr+i" 파일을 시스템에 적용해서 가끔은 문제에 대한 해결책을 찾아봐야 할 것 같아요 , 이러한 것들은 너무 간단하고 바로 앞에 있어서 우리가 긴장하고 시스템에 우리의 의지를 강요하기 때문에 채울 수 없습니다. 때로는 작은 스크립트가 네트워크에서 잘 실행될 때 놀라운 일을 할 수도 있지만, 분명히 당신은 원하지 않을 것입니다. 그런데 저는 시스템 관리자가 되기 위해 공부하고 있지 않거나 공부하고 있습니다. 죄송합니다! 하지만 긴장해서 시스템에 이런 무의미한 트릭을 수행하고 싶다면 결국 내 시스템에는 없으므로 화나게 해서 죄송합니다! 대신 이렇게 하세요! "chattr" 명령을 사용하여 구성하려면 "인터페이스" 파일(일반적으로 /etc/network/ 폴더에 있음)을 편집하고 원하는 네임서버 IP로 dns-nameserver 옵션을 추가/변경하세요. 이러한 옵션이 파일에 없으면 간단한 예로 추가할 수 있습니다.
-예: "/etc/network/interfaces" 파일을 다음과 같이 편집하세요.
auto lo
iface lo inet loopback
iface lo inet6 loopback
iface eth0 inet dhcp <= Here would be for DHCP devices.
iface eth0 init 192.168.1.2 <= Here your fixed IP on the network.
iface eth0 inet6 auto <= Here you define your IPv6 automatically.
dns-nameserver 192.168.1.1 <= Your IP address here.
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
-파일을 저장하고 네트워크를 다시 시작하세요..
귀하의 경우 서버의 IP 주소를 설정하고 인터페이스 파일 끝에 다음을 설정하기만 하면 됩니다.
dns-nameserver 8.8.4.4
dns-nameserver 8.8.8.8
이것은 여기에 사용된 예입니다. DHCP를 사용하지 않는 경우에만 라우터에 의해 자동으로 정의된 IP를 사용해야 합니다. 이 IP는 네트워크 시스템에서 시작할 때마다 변경됩니다.
auto lo
iface lo inet loopback
iface lo inet6 loopback
iface eth0 inet static
address 192.168.1.4/24
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 192.168.1.4
dns-nameserver 8.8.4.4
dns-nameserver 8.8.8.8
-여기에는 더 잘 확인하고 이해하기 위한 작은 예가 있습니다.