파일의 미니 버전을 얻었고 linux
그 파일로 직접 부팅할 수 있습니다 firefox
. 이 파일은 해야 할 모든 작업을 수행하지만 인터넷에 연결되어 있지 않습니다.
우리 네트워크에는 3개의 DNS 서버가 있으며 모두 잘 작동합니다. 나는 또한 그들에게 ping을 보낼 수도 있다. 하지만 이렇게 하려고 하면 오류가 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~
나를 괴롭혔던 동일한 표준 파일로 대체되었습니다.
파일의 내용을 보면 네트워크 자체에서 정보를 얻는다고 믿게 됩니다. 인터넷 접속 없이 Virtualbox에서 실행하면 .iso
파일이 그대로 유지됩니다.
파일의 일부를 삭제하여 /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 <[email protected]>
[ -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
추가로 조사할 예정입니다.
업데이트 2 및 해결 방법:
해당 섹션(#Start ~ #End)을 주석 처리했는데 이것이 파일을 덮어쓰는 것처럼 보였고 /etc/resolv.conf
, 확실히 그랬습니다. 이것이 범인입니다. 그래서 모호한 스크립트가 이 모든 문제를 일으켰습니다.
내 문제를 해결하기 위해 실제로 무엇을 알아야 하는지를 반영하도록 질문을 변경했습니다. 그러면 동일한 문제를 가진 사람들이 더 쉽게 찾을 수 있으므로 답변을 받아들일 수 있습니다.
여기서 문제를 해결하는 데 도움을 주셔서 감사합니다.
답변1
resolv.conf
로컬 DHCP 서버에서 제공한 데이터가 변경 사항을 덮어쓰게 되므로 DHCP를 수동으로 업데이트하면 안 됩니다 . 정적으로 적용하려면 실행sudo dpkg-reconfigure resolvconf
하고 동적 업데이트에 대해 "아니요"라고 대답하세요. 거기에 새 항목을 추가하려면 편집/etc/resolvconf/resolv.conf.d/base
하고 실행하면sudo resolvconf -u
항목과 DHCP 서버 항목이 추가됩니다.항목을 편집
/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
답변2
Ubuntu 16.04
서버 인스턴스의 네트워크 인터페이스가 DHCP에 의해 제어되는 경우 /etc/resolv.conf
dhclient 프로그램은 네트워크 서비스가 다시 시작될 때마다 파일을 덮어씁니다.
/etc/dhcp/dhclient.conf
파일을 편집하고 "교체" 문을 추가하여 문제를 해결할 수 있습니다.도메인 이름,도메인 이름 검색그리고도메인 이름 서버다음과 같이:
supersede domain-name "local.com";
supersede domain-search "local.com";
supersede domain-name-servers 192.168.56.103;
이 특별한 경우, 네임서버는 "192.168.56.103"에 있고 도메인 이름은 "local.com"입니다.
각 줄은 세미콜론으로 끝나고 도메인 이름은 큰따옴표로 묶여 있습니다.
답변3
나는 또한 이것을 만났다. 의견 domain-name-server
도 내 문제를 해결하지 못했습니다.
또한 저는 그것을 사용하지 않고 resolvconf
그냥 평범합니다 /etc/resolv.conf
.
너무 구식인 것 같아서 chattr +i
잠금 기능을 사용하지 않았습니다 . 또한 Puppet이 필요할 때 수정할 resolv.conf
수 있기를 바랍니다 .resolv.conf
이것최고의 솔루션나는 그것으로 기록된 후크의 기본 동작을 무시한다는 것을 발견했습니다 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
아무 작업도 수행하지 않는 내부 함수를 재정의합니다.
이것은 Ubuntu 12.04에서 저에게 효과적이었습니다.
답변4
내 OVH 우분투 18.04에는 이 파일이 제공되지 않습니다 /etc/network/interface
. Netplan을 사용하여 IP 및 이름 서버를 관리합니다. 문서:/etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:d8:f7:7b
set-name: ens3
version: 2
그래서 나는 말한 대로 하고 파일을 만들었습니다. /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
# network: {config: disabled}
network:
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:d8:f7:7b
set-name: ens3
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
search: [mydomain.com]
version: 2
그런 다음 설정을 적용하고 netplan apply
재부팅했는데 이전 설정이 그대로 유지되었습니다. 그런 다음 확인한 결과 ls -la /etc/resolv.conf
다음과 소프트 링크되어 있음을 발견했습니다.
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
.
그래서 해당 파일을 삭제하고 새 파일을 만들었습니다.
rm -f /etc/resolv.conf
{ echo "nameserver 1.1.1.1";
echo "nameserver 1.0.0.1;
echo "search mydomain.com"; } > /etc/resolv.conf
chattr +i /etc/resolv.conf
reboot
다시 시작한 후에도 모든 것이 제대로 작동했으며 내 파일은 여전히 그대로 유지되고 연결이 해제되었습니다. chattr +i /etc/resolv.conf
소프트 링크인 경우에는 이 작업을 수행하지 마세요. 먼저 삭제하세요.