Мне дали файлы для мини 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
Будем расследовать дальше.
ОБНОВЛЕНИЕ 2 И РЕШЕНИЕ:
Я закомментировал часть (#Start to #End), которая, казалось бы, перезаписывает /etc/resolv.conf
файл и достаточно точно. Это был виновник. Так что неясный сценарий вызвал все эти неприятности.
Я изменил вопрос, чтобы отразить, что на самом деле нужно знать, чтобы решить мою проблему, так что было бы легче найти людей с такой же проблемой, чтобы я мог принять ответ.
Спасибо за помощь в выяснении вещей.
Ответы:
1) Вам не следует обновлять свой resolv.conf вручную, потому что все изменения будут перезаписаны данными, которые предоставляет ваш локальный DHCP-сервер. Если вы хотите, чтобы он был статическим, запустите
sudo dpkg-reconfigure resolvconf
и ответьте «нет» динамическим обновлениям. Если вы хотите добавить новые записи туда, отредактировать/etc/resolvconf/resolv.conf.d/base
и запуститьsudo resolvconf -u
, он добавит ваши записи и записи DHCP-сервера.2) Попробуйте отредактировать ваш / etc / network / interfaces и добавьте туда свои записи, например
а затем перезапустите
/etc/init.d/networking restart
илиsudo ifdown -a
иsudo ifup -a
3) Ваша система использует udhcp, которая является очень маленькой клиентской программой DHCP. Клиент udhcp согласовывает аренду с сервером DHCP и уведомляет набор сценариев, когда аренда получена или потеряна. Вы можете прочитать о его использовании здесь или просто отредактировать этот скрипт (как вы сделали).
источник
/etc/resolvconf/resolv.conf.d/base
и побежалresolvconf -u
. К сожалению, это не сработало.dpkg-reconfigure resolvconf
. Записи не были там. И у меня есть записи с обоимиnameserver ip
иsearch domain
.dpkg-reconfigure resolvconf
не добавит записи, но вы можете отключить автоматические обновления. Если вы отключите обновления, вы можете редактировать resolv.conf вручную, и он не должен быть перезаписан.resolvconf -u
записи не были добавлены.Я столкнулся с этим тоже. Комментирование
domain-name-server
не исправило это для меня также.Кроме того, я не использую
resolvconf
, просто ясно/etc/resolv.conf
.Я не пытался использовать
chattr +i
для блокировки,resolv.conf
потому что это кажется слишком хакерским. Кроме того, я хочу, чтобы Puppet мог изменятьresolv.conf
при необходимости.Лучшее решение я нашел переопределяет поведение по умолчанию ,
dhclient
используя его документированные крючками.Создайте новый файл
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
со следующим содержимым:Затем сделайте файл исполняемым:
Теперь, когда dhclient запускается - либо при перезагрузке, либо когда вы запускаете вручную
sudo ifdown -a ; sudo ifup -a
- он загружает этот скриптnodnsupdate
. Этот скрипт переопределяет внутреннюю функциюmake_resolv_conf()
, которая обычно перезаписывается,resolv.conf
и ничего не делает.Это работало для меня на Ubuntu 12.04.
источник
/etc/resolv.conf
был перезаписан после перезагрузки.Ubuntu 16.04
Если сетевые интерфейсы для вашего экземпляра сервера управляются DHCP, программа dhclient перезапишет ваш/etc/resolv.conf
файл при каждом перезапуске сетевой службы.Вы можете решить проблему путем редактирования
/etc/dhcp/dhclient.conf
файла и добавления «SUPERSEDE» заявления для доменного имени , домен-поиска и имя домена-серверов следующим образом :В этом конкретном случае сервер имен расположен по адресу «192.168.56.103», а доменное имя - «local.com».
Обратите внимание, что каждая строка заканчивается точкой с запятой, а имя домена заключено в двойные кавычки.
источник
/etc/resolv.conf
был перезаписан с 127.0.0.53.dnsmasq
перейти в этот каталог:
Откройте файл с именем head и поместите туда IP-адреса или имена DNS. Откройте файл с именем tail и поместите туда домен. Перезагружать.
источник
В виртуальных машинах Azure файл /etc/resolv.conf не редактируется напрямую.
Попробуйте добавить записи DNS в свои файлы конфигурации сети / etc / sysconfig / network-scripts / ifcfg-eth0 и так далее, как показано ниже:
DOMAIN = example.com
DNS1 = 10. , . *
DNS2 = 10. , . *
DNS3 = 10. , . *
и перезапустите сетевой сервис после сохранения файлов. вы увидите, что конфигурация будет добавлена также в resol.conf.
источник
Для внесения
resolv.conf
постоянных изменений, связанных с DNS , необходимо изменить файл конфигурации DHCP с именемdhclient.conf
. Вы можете найти файл в/etc/dhcp/dhclient.conf
.Откройте файл для редактирования (не забудьте использовать sudo). Вы увидите такие строки:
Удалите предыдущий «#» и используйте серверы доменных имен и / или доменных имен, которые вам нужны. Сохрани это. Теперь изменения, связанные с DNS, будут постоянными.
Кредиты идут по адресу : https://itsfoss.com/resolvconf-permanent-ubuntu/
источник
Используйте приведенную ниже команду для предотвращения перезаписи resolv.conf или любого файла после перезагрузки
chattr -V + i имя файла, например, chattr -V + i /etc/resolv.conf
Чтобы отменить изменение, используйте следующую команду:
chattr -i имя файла - чтобы снова включить вставку в файл
chattr (Change Attribute) - это утилита командной строки Linux, которая используется для установки / отмены определенных атрибутов файла в системе Linux для обеспечения случайного удаления или изменения важных файлов и папок, даже если вы вошли в систему как пользователь root.
источник
chattr
, но обнаружил, что это не имеет никакого эффекта.На Ubuntu 18.04 с помощью NetworkManager. Вам нужно удалить файл 'resolv.conf' и позволить NetworkManager создать его для вас.
Удалить файл в терминале типа
sudo rm -f /etc/resolv.conf
; это удалит файл для вас.Перезагрузите систему, и NetworkManager создаст для вас файл resolv.conf.
источник