Есть ли способ изменить DNS-сервер в командной строке, не меняя ничего на диске?
Недавно я загрузился в сеанс восстановления и получил IP-адрес (используя DHCP), но не DNS-сервер. Поскольку моя сетевая конфигурация обычно выполняется nm-applet
в сеансе рабочего стола, а не в , /etc/network/interfaces
я хотел бы иметь возможность предоставить DNS-сервер только для этого сеанса восстановления и ничего не записывать на диск.
Обычно это возможно путем редактирования /run/resolvconf/resolv.conf
. но, resolvconf
похоже, это не выполняется в сеансе восстановления Ubuntu 14.04.
Я надеялся, что есть что-то похожее на конфигурацию сети, где я могу настроить интерфейс без необходимости редактировать файл:
# ifconfig eth0 192.168.2.5 netmask 255.255.255.0
# route add default gw 192.168.2.1
есть ли способ сделать это для DNS в сеансе восстановления на Ubuntu 14.04?
решение1
Я нашел способ сделать это:
убить службу DNS (может быть есть более тонкий способ?)
# killall dnsmasq
перезапустите службу, используя нужный вышестоящий сервер:
# dnsmasq --server=192.168.2.1
на более новой версии Ubuntu (с systemd
) это будет выглядеть так:
# systemd-resolve -i enp0s31f6 --set-dns=192.168.2.1 # --set-dnssec=true
проверить с:
# systemd-resolve --status
решение2
Перейдите в этот каталог /etc/resolvconf/resolv.conf.d
и отредактируйте файл head с помощью vi или vim с привилегиями su.
sudo vi /etc/resolvconf/resolv.conf.d/head
добавьте следующие строки в файл
nameserver *DNS server IP*
сохраните файл и используйте утилиту resolvconf, чтобы задать статический адрес DNS-сервера, который вы ввели с помощью следующей команды
sudo resolvconf -u
решение3
Чтобы это заработало, я добавил au.archive.ubuntu.com
в /etc/hosts
файл IP-адрес, который получил, пропинговав его на своем ПК.
Потом сделал apt update
и все разрешилось.