Почему мне нужно указывать DNS при использовании chroot?

Почему мне нужно указывать DNS при использовании chroot?

В прошлый раз, когда я сделал chroot с Live USB на свою старую сломанную систему, я не смог подключиться к Интернету. В этомруководство, я прочитал, что мне следует добавить OpenDNS в свой/etc/resolv.conf если я использую DHCP.

Как DHCP (или chroot) влияет на мой DNS?

Разве DHCP не является единственным способом для моего маршрутизатора дать мне IP? Почему я могу подключиться с Live USB к Интернету нормально, в то время как chrootмне нужно добавлять новый DNS?

решение1

Разве DHCP — это не единственный способ, которым мой маршрутизатор выдает мне IP-адрес?

Нет, это также способ, которым ваш маршрутизатор предоставляет вам дополнительную информацию — IP-адрес шлюза, IP-адрес DNS-сервера, имя домена по умолчанию, IP-адрес сервера времени и т. д.

Почему я могу нормально подключиться к Интернету с Live USB, а в chroot мне приходится добавлять новый DNS?

Linux хранит адрес DNS-сервера в файле. Поскольку chroot изменяет то, как программы видят пути к файлам, это означает, что они найдут другой файл по этому /etc/resolv.confпути, а это значит, что они, возможно, найдут другой адрес, сохранённый там.

(Ваш DHCP-клиент ничего не знает о ваших chroot-окружениях и обновляет толькоосновной /etc/resolv.confфайл – не может выполнять поиск и обновлениевсевозможные файлы.)


Обычный обходной путь — связать (привязать) «внутренний» путь так, чтобы он ссылался на тот же «внешний» файл. Например, вы можете сделать это перед chrooting в /mnt:

mount --bind /etc/resolv.conf /mnt/etc/resolv.conf

(Конечно, позже вам придется размонтировать его, прежде чем система позволит вам размонтировать /mnt.)

Связанный контент