가 /etc/resolv.conf
쓸모 우분투 12.04 LTS (정확한 천산갑)?
DNS 서버 정보가 이제 NetworkManager에 저장되어 있습니다. nmcli
명령 줄 도구는 당신을 위해 나열 할 수 있습니다.
DNS 서버를 하나 더 추가 /etc/resolv.conf
하려면 resolvconf
패키지 도움말 을 사용하여 추가 할 수 있습니까?
가 /etc/resolv.conf
쓸모 우분투 12.04 LTS (정확한 천산갑)?
DNS 서버 정보가 이제 NetworkManager에 저장되어 있습니다. nmcli
명령 줄 도구는 당신을 위해 나열 할 수 있습니다.
DNS 서버를 하나 더 추가 /etc/resolv.conf
하려면 resolvconf
패키지 도움말 을 사용하여 추가 할 수 있습니까?
답변:
경우 /etc/resolv.conf
포함 nameserver 127.0.0.1
다음에 항목을 추가하는 /etc/resolvconf/resolv.conf.d/tail
정말 유용한 아무것도하지 않습니다.
NetworkManager를 사용하는 경우 네트워크 표시기 를 통해 이름 서버 주소를 정적으로 추가해야합니다 . 연결 편집 ... | 편집 ... | IPv4 설정 | 추가 DNS 서버 .
당신이 경우 정말 많은 항목을 추가 할 /etc/resolv.conf
하는을 만들고 /etc/resolvconf/resolv.conf.d/tail
거기에 추가합니다.
모든 우분투 릴리스와 마찬가지로 다음 위치에서 우분투 릴리스 정보를 읽는 것이 좋습니다.
데스크탑 및 공통 인프라 섹션에는
/etc/resolvconf/resolv.conf.d/tail
파일 추가 또는 Network Manager 사용 과 비교하면 어떻습니까? 감사.
dns-nameservers
을 사용하십시오.의 eth0 섹션에 추가 하십시오 /etc/network/interfaces
.
/etc/resolvconf/update.d/libc
Ubuntu 14.04.1 서버에서 : # Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no
# to allow additional nameserver addresses to be listed in
# resolv.conf after an initial loopback address 127.* or ::1.
( 쇼의 /etc/default/resolvconf
23 행 및 24 행으로 설정/etc/resolvconf/update.d/libc
여기 에 다음과 같은 줄을 추가하는 다른 접근 방법이 있습니다/etc/dhcp/dhclient.conf
.
prepend domain-name-servers x.x.x.x, y.y.y.y;
마찬가지로, 여기 에 줄을 추가 하는 세 번째 방법을 찾았 습니다 /etc/network/interfaces
.
auto eth0
iface eth0 inet static
. . .
dns-nameservers 8.8.8.8 8.8.4.4
업데이트 : 세 번째 접근 방식에 대한 공식 문서 는 다음과 같습니다 .
third approach
하는 가장 간단한 방법 이기 때문에 이것을 투표했습니다 .
/etc/resolvconf/resolv.conf.d/head
(그곳에서 오해의 소지가있는 "편집하지 말 것"주석을 극복 한 후에 사용 했다) :)
resolvconf 패키지에 대해 이야기하는 것 같습니다.
resolvconf 패키지를 설치하십시오 .
운영
cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig #backup copy, always do this
sudo nano head
파일 상단은 무서운 경고입니다. /etc/resolv.conf 파일은이 파일의 내용에서 자동 생성됩니다. 경고는 /etc/resolv.conf가 생성 될 때 /etc/resolv.conf에 놓이게됩니다. 파일의 끝에 추가
nameserver <ip_of_nameserver>
Ctrl x파일을 저장하려면 예를 누르고 대답하십시오. 완료하려면 /etc/resolv.conf를 다시 생성하여 변경 사항을 지금 적용하십시오.
sudo resolvconf -u
그런 다음 /etc/resolv.conf의 내용을 확인하여 추가 한 줄이 있는지 확인하십시오. 또한 다음에 머신을 부팅하거나 네트워크 서비스를 다시 시작하면 둘 중 더 빠른 시간이 유지됩니다.
아래에서는 Ubuntu Server 에디션을 실행하고 NetworkManager 대신 ifup을 사용한 이후 찾은 가장 좋은 방법을 보여줍니다.
실제로 나를 위해 / etc / network / interfaces 파일에 모두 넣음으로써 이것을 쉽게 만들었습니다. resolv.conf에 작성한 것과 동일한 구성이 이제 아래 예와 같이 네트워크 어댑터 구성과 동일한 파일에있을 수 있습니다.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 75.75.75.75 75.75.76.76
dns-search local
나는 이것이 도움이되고 나처럼 쉽게하기를 바랍니다. 이제 정적 IP 주소를 만들고 네임 서버와 DNS 도메인을 하나의 파일로 모두 추가 할 수 있습니다 :)
참고 :이 답변은 원하는 이름 서버 앞에 추가하는 것에 만 초점을 둔 다소 다른 사전 병합 버전의 질문에 대한 것입니다.
이것은 12.04 이전에 작동합니다.
편집 /etc/dhcp3/dhclient.conf
및 추가 :
prepend domain-name-servers 127.0.0.1;
(실제로이 행은 이미 존재하므로 주석 처리를 해제하기 만하면됩니다.)
man dhclient.conf
dhclient 매뉴얼 페이지에 액세스하십시오. (Azendale의 질문에 대한 답변은 아닙니다.)
resolvconf
쓸모가 없습니다. Linux 서버에 있고 내 IP 주소 는 정적이며 DNS 서버는 정적입니다. resolvconf
또는 NetworkManager 가 필요하지 않습니다 .
서버에서 작업 할 때 간단하게 유지하는 것이 나의 정책입니다. 복잡성이 적을수록 문제가 발생했을 때 관리 / 수정이 쉬워집니다.
그래서 aptitude purge resolvconf
수동으로 심볼릭 링크/etc/resolv.conf
가 아니며 정적 파일을 만들 었는지 수동으로 확인했습니다 . 프로그램이 파일을 변경하려고하는 경우 예방 조치로 (불변)했습니다 .chattr +i
/etc/resolv.conf
위의 대부분은 깨끗한 시스템을 가지고 있다고 가정하지만 실제로는 다른 dhcp 클라이언트를 설치하고 특정 이전 버전의 Ubuntu에서 네트워크 관리자를 비활성화하는 등의 경우가 많습니다. 다음을 아는 것이 좋습니다. dnsmasq를 한동안 사용했지만 제거했습니다. 현재 내 시스템의 내용은 다음과 같습니다 (시스템 /etc/resolv.conf
의 심볼릭 링크 /run/resolvconf/resolv.conf
임).
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
내가 실행 횟수는 중요하지 않습니다 sudo resolvconf -u
또는 sudo dpkg-reconfigure resolvconf
그것은 내가 네트워크 매니저에서 설정 한 것과 네임 서버를 업데이트하지 않았습니다. resolvconf가 NetworkManager에서 사용하는 정보가있었습니다.
cat /run/resolvconf/interface/NetworkManager
nameserver 8.8.4.4
nameserver 8.8.8.8
그러나이 디렉토리에 여러 파일이있는 경우이 파일이 전혀 사용되지 않을 수 있습니다. 범인은 dnsmasq를 제거해도 파일이 제거되지 않았습니다.
cat /run/resolvconf/interface/lo.dnsmasq
nameserver 127.0.0.1
이 파일을 제거하고 sudo resolvconf -u
나중에 실행 하면 내 DNS 문제가 해결되었습니다.
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 8.8.8.8
이것이 다른 사람들이 디버깅 (다른 모든 네트워크 도구 간의 복잡한 상호 작용)에도 도움이되기를 바랍니다. 당신이 사용 resolvconf
하는 경우 ls /run/resolvconf/interfaces
거기에 무엇이 있는지 확인해야합니다 .
/run/resolvconf/interface/
디렉토리에 추가 파일이 없지만 내 NetworkManager
파일에는 약간의 사랑이 필요했습니다. 귀하의 답변으로이 문제를 해결하는 데 도움이되었습니다.
방금 링크를 삭제 /etc/resolv.conf
하고 네임 서버의 주소가있는 규칙적인 파일을 만들었습니다. 그것은 효과가 있으며 우분투 개발자가 만든 그 이상한 구성을 사용해야 할 이유가 없습니다.
이미 긴 목록에 내 비트를 추가하는 다른 방법은 다음과 같습니다 (12.04에서 테스트).
/run/resolvconf/interface/NetworkManager
필요에 맞게 편집 하십시오. 예를 들면 다음과 같습니다.
search foobar.com example.com
nameserver 192.168.1.1
그런 다음 대부분의 다른 예에서 설명한대로을 수행하십시오 sudo resolvconf -u
. 이제 다음 resolv.conf
과 같이 보일 것입니다.
nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com
나는 여전히 구현 방식이 마음에 들지 않으며 (우분투는 모든 foo에 대해 서비스가 필요하다고 생각합니다) 평범한 것을 선호합니다 resolv.conf
. 그러나이 접근법은 지금까지 가장 좋은 타협으로 보입니다. 추가 된 "localhost-NS"는 너무 아프지 않아야합니다.
vi /etc/network/interfaces
This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The primary network interface
allow-hotplug eth0
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0 <<----- change this comment with the #
iface eth0 inet dhcp
이것은 매우 인기있는 질문이며, 가능한 표준 답변 모음이 있으며 모두 IMO는 해킹 적입니다. 저는 항상 NetworkManager에서 설정 한 DNS 설정, 특히 "자동 (DHCP) 주소 만"으로 고정 DNS 서버를 설정하기 위해 Ubuntu를 사용하는 데 문제가 있었으며, 오늘 실제로 실제로 무엇이 잘못되었는지 파악했습니다.
문제는 resolvconf와 NetworkManager 간의 상호 작용에 있습니다. resolvconf에는이 파일이 있습니다 /etc/resolvconf/interface-order
. 적어도 내 시스템에서 NetworkManager 는 이 파일에 전혀 없습니다 (끝 부분에 * 와일드 카드로 덮여있는 경우는 제외). 따라서 solclient가 가장 최근에 resolvconf에 대한 보고서를 NetworkManager가 말한 것보다 우선합니다.
따라서 적어도 제 경우에는 실제 대답은
NetworkManager
상단 또는 근처에 /etc/resolvconf/interface-order
있습니다.
(예, 많은 사람들이 "uninstall resolvconf"라고 말하지만, 그 자체로는 나쁜 생각 인 것 같습니다. 그러나 그 이상, 적어도 현명하고 제니 얼은 resolvconf를 시스템의 중요한 부분으로 생각합니다 (예 : 우분투) -최소한에 따라 다름], resolvconf없이 시스템을 일관되고 업데이트 된 상태로 유지하기가 어렵습니다.)
요청이있을 경우이를 어떻게 파악했는지 자세히 설명 할 수 있습니다. ( 편집 : 분명히 요청했을 때 그렇게하지 않았습니다. 미안합니다.이 시점에서 다음에 말하는 것보다 훨씬 자세한 내용을 기억하지 못합니다.) 요컨대, resolvconf 실행 파일을 쉘 래퍼로 대체했습니다. 인수, 입력, 출력 및 stderr을 파일에 덤프했습니다. resolvconf의 업데이트 스크립트에 set -x를 추가했습니다.
( 편집 : 나는 할 수 있습니다 . 제가 첫 번째 부분을 의미하는 것은 내가 which 명령 또는 유형 명령을 사용하여 볼 수 있습니다 실제 resolvconf 실행 파일을 이동하는 sudo를 사용한다는 것을 말한다 그리고 궁극적으로 바로 이동 된을 실행하는 쉘 스크립트를 작성 resolvconf는 물론 일부 파일에 대한 인수를 반영하고 쉘 재 지정을 사용하여 stdin, stdout 및 stderr을 다양한 다른 파일로 보냅니다. 많은 리눅스 괴짜들은 내가 의미하는 바를 알아낼 수있다; 아마도 어떤 훌륭한 사마리아인은 더 자세한 설명을 제공 할 것이다.)
다른 방법은 다음에서 docker specific dns 서버를 정의하는 것입니다.
/etc/docker/daemon.json
그러한 파일이 없으면 작성하십시오.
{
"dns": ["10.0.0.2", "8.8.8.8"]
}
출처 : https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
또한 https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file을 참조하십시오.
DNS를 변경하려면 https://developers.google.com/speed/public-dns/docs/using의 지침을 따르십시오.
네트워크로 이동
DNS를 구성 할 연결을 선택하십시오.
무선 연결 설정을 변경하려면 무선 탭을 선택한 다음 적절한 무선 네트워크를 선택하십시오.
화살표 (오른쪽)를 클릭하고 표시되는 창에서 IPv4 설정 또는 IPv6 설정 탭을 선택하십시오.
선택한 방법이 자동 (DHCP) 인 경우 드롭 다운을 열고 대신 자동 (DHCP) 주소 만 선택하십시오. 방법이 다른 것으로 설정되어 있으면 변경하지 마십시오.
DNS 서버 필드에 쉼표로 구분 된 DNS IP 주소를 입력하십시오.
nm-tool
아니라고 생각합니다nmcli
.