나는 미니 linux
부팅 용 파일을 받았다 firefox
. 인터넷에 연결되어 있지 않은 경우에만 작동합니다.
네트워크에는 3 개의 DNS 서버가 있으며 모두 작동합니다. 나는 그들도 핑을 할 수있다. 그러나하려고 할 때 ping google.de
또는 wget google.de
내가 얻을 bad address
오류입니다.
nslookup google.de
어떤 이유로 작동합니다.
resolv.conf
부트 된 시스템 resolv.conf
에서 .iso
파일에 넣은 내용과 동일한 내용이없는 문제를 추적했습니다 .
나는 만들고 수정하는 데 필요한 모든 요소를 이해하려고 노력했다 resolv.conf
. 나는 그것을 모두 가지고 있는지 확실하지 않지만, 나는 거기에서 내 해결책을 찾지 못했습니다.
그래서 마지막 도랑 노력으로 resolv.conf
파일을 불변으로 만들려고했습니다.
:~# chattr +i /etc/resolv.conf
놀랍게도 다시 빌드하고 부팅 할 때 내 파일 이름이 바뀌었고 resolv.conf~
대신 그 표준 파일이 나를 괴롭 혔습니다.
파일 내용은 네트워크 자체에서 정보를 얻는다고 믿습니다. .iso
인터넷에 액세스하지 않고 Virtualbox에서 시작하면 내 파일이 그대로 유지됩니다.
파일 의 일부를 /etc/dhcp/dhclient.conf
삭제 domain-name-server
하거나 삭제하여 인터넷에서 정보를 얻지 않도록 변경하려고했습니다 .domain-name-search
request
불행히도 작동하지 않았습니다.
NetworkManager가 설치되어 있지 않습니다. iso는 Ubuntu 14.04를 기반으로합니다.
중요한 정보가 누락되었을 수 있습니다. 기꺼이 제공해 드리겠습니다.
최신 정보:
삭제 된 파일을 찾은 것 같습니다 resolv.conf
.
~ 인 것 같습니다 /usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
프로그램의 일부입니다 udhcpc
. 작은 DHCP 클라이언트는busybox
더 조사하겠습니다.
UPDATE2 및 솔루션 :
나는 /etc/resolv.conf
파일을 덮어 쓰고 충분히 확신 하는 부분 (#Start to #End)을 주석 처리했습니다 . 그것은 범인이었습니다. 불분명 한 스크립트가이 모든 문제를 일으켰습니다.
문제를 반영하기 위해 질문을 변경했습니다. 실제로 문제를 해결하기 위해 알아야 할 사항이 있기 때문에 같은 문제를 가진 사람들을 찾기가 더 쉬워서 답변을받을 수있었습니다.
문제를 해결하는 데 도움을 주셔서 감사합니다.
답변
1) 로컬 DHCP 서버가 제공하는 데이터가 모든 변경 사항을 덮어 쓰므로 resolv.conf를 수동으로 업데이트해서는 안됩니다. 정적 sudo dpkg-reconfigure resolvconf
업데이트 를 원하면 동적 업데이트에 대해 “아니오”로 실행 하고 응답하십시오. 여기에 새 항목을 추가하려면 편집 /etc/resolvconf/resolv.conf.d/base
하고 실행 sudo resolvconf -u
하면 항목과 DHCP 서버 항목이 추가됩니다.
2) / etc / network / interfaces를 편집하고 다음과 같이 항목을 추가하십시오.
auto eth0
iface eth0 inet dhcp
dns-search google.com
dns-nameservers dnsserverip
다음 다시 시작 /etc/init.d/networking restart
또는 sudo ifdown -a
과sudo ifup -a
3) 시스템은 매우 작은 DHCP 클라이언트 프로그램 인 udhcp 를 사용 합니다. udhcp 클라이언트는 DHCP 서버와의 임대를 협상하고 임대를 얻거나 잃을 때 스크립트 세트에 알립니다. 여기 에서 사용법에 대해 읽거 나이 스크립트를 편집 할 수 있습니다 .
답변
나도 이것에 부딪쳤다. 주석 처리해도 domain-name-server
문제가 해결되지 않았습니다.
또한 나는 resolvconf
평범 하지 않은을 사용 하고 있습니다 /etc/resolv.conf
.
너무 해키처럼 보이기 때문에 chattr +i
잠금을 사용하지 않았습니다 resolv.conf
. 또한 resolv.conf
필요한 경우 Puppet을 수정할 수 있기를 바랍니다 .
가장 좋은 방법은 내가의 기본 동작 재정의 발견 dhclient
은 문서화 된 후크를 사용합니다.
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
다음 내용 으로 새 파일을 만듭니다 .
#!/bin/sh
make_resolv_conf() {
:
}
그런 다음 파일을 실행 가능하게 만드십시오.
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
다시 부팅하거나 수동으로 실행할 때 dhclient가 실행되면 sudo ifdown -a ; sudo ifup -a
이 스크립트가로드됩니다 nodnsupdate
. 이 스크립트 make_resolv_conf()
는 일반적으로 덮어 쓰고 resolv.conf
대신 아무것도하지 않는 내부 함수를 재정의합니다 .
이것은 우분투 12.04에서 나를 위해 일했습니다.
답변
Ubuntu 16.04
서버 인스턴스의 네트워크 인터페이스가 DHCP에 의해 제어되는 경우 dhclient 프로그램은 /etc/resolv.conf
네트워킹 서비스가 다시 시작될 때마다 파일 을 덮어 씁니다 .
/etc/dhcp/dhclient.conf
파일 을 편집하고 다음과 같이 domain-name , domain-search 및 domain-name-servers에 “supersede”문을 추가 하여 문제를 해결할 수 있습니다 .
supersede domain-name "local.com";
supersede domain-search "local.com";
supersede domain-name-servers 192.168.56.103;
이 특정한 경우 이름 서버는 “192.168.56.103”에 있고 도메인 이름은 “local.com”입니다.
각 줄은 세미콜론으로 끝나고 도메인 이름은 큰 따옴표로 묶습니다.
답변
이 디렉토리로 이동하십시오 :
cd /etc/resolvconf/resolv.conf.d
head라는 파일을 열고 거기에 DNS IP 또는 이름을 넣습니다. tail이라는 파일을 열고 거기에 도메인을 넣습니다. 재부팅하십시오.
답변
Azure VM에서 /etc/resolv.conf는 직접 편집 할 수 없습니다.
네트워크 구성 파일 / etc / sysconfig / network-scripts / ifcfg-eth0 등에 DNS 항목을 추가하십시오.
DOMAIN = example.com
DNS1 = 10. . . *
DNS2 = 10. . . *
DNS3 = 10. . . *
파일을 저장 한 후 네트워크 서비스를 다시 시작하십시오. 그러면 구성이 resolve.conf에 추가되는 것을 볼 수 있습니다.
답변
DNS 관련 변경 사항을 resolv.conf
영구적으로 적용하려면 이라는 DHCP 구성 파일을 변경해야합니다 dhclient.conf
. 에서 파일을 찾을 수 있습니다 /etc/dhcp/dhclient.conf
.
편집 할 파일을여십시오 (sudo를 사용하는 것을 잊지 마십시오). 다음과 같은 줄이 나타납니다.
#supersede domain-name "fugue.com home.vix.com";
#prepend domain-name-servers 127.0.0.1;
앞의 “#”을 제거하고 원하는 도메인 이름 및 / 또는 도메인 이름 서버를 사용하십시오. 저장해. 이제 DNS 관련 변경 사항이 영구적입니다.
답변
재부팅 후 resolv.conf 또는 파일을 덮어 쓰지 못하게하려면 아래 명령을 사용하십시오.
chattr -V + i 파일 이름 예 : chattr -V + i /etc/resolv.conf
변경 사항을 되돌리려면 다음 명령을 사용하십시오.
chattr -i filename-파일에 대한 삽입을 다시 활성화
chattr (속성 변경)은 루트 사용자로 로그인 한 경우에도 중요한 파일 및 폴더의 우발적 인 삭제 또는 수정을 보호하기 위해 Linux 시스템의 파일에 특정 속성을 설정 / 설정 해제하는 데 사용되는 명령 행 Linux 유틸리티입니다.