2

Я хотел бы добавить DNS-сервер в мою конфигурацию (чтобы использовать opennic). Я искал немного, но не могу найти удовлетворительное решение, и я теряюсь в отношении решений для Ubuntu.

  1. Я нашел хороший учебник, графическая часть работает для меня, но я не могу заставить первую часть работать (и я хотел бы написать ее, конечно). http://www.ubuntututorials.com/set-dns-server-ubuntu-12-04/ Когда я добавляю строку «prepend…» и проверяю свой DNS-адрес с помощью nm-tool , он не меняется. Нужна ли мне команда для перезапуска службы или чего-то еще? Они так не говорят. (запуск service networking restart не помогает).

  2. Как объясняется в Arch wiki (https://wiki.archlinux.org/index.php/Resolv.conf#Use_resolv.conf.head), мы можем использовать файл /etc/resolv.conf.head, но тогда нам нужно установите пакет openresolv , чтобы запустить resolvconf -u . Но я бы хотел, чтобы мой будущий скрипт запускался без внешней зависимости.

Итак, кто-то может сказать мне, какой файл редактировать и какую команду запустить для обновления conf?

Я использую Debian (Mint Debian), но я хотел бы знать, так ли это в Ubuntu. Я прочитал что-то изменившееся с Ubuntu 12.04, поэтому многие учебники в сети устарели (особенно запись в /etc/dhcp3/dhclient.conf устарела).

Спасибо !

2 ответа2

4

Есть много разных способов, и это зависит от того, что именно вы хотите достичь.

В общем, я использую пакет resolvconf (обратите внимание на отсутствие точки, pls), который позволяет правильно настроить DNS в файле /etc /network /interfaces. Это оптимально для статических конфигураций. Просто добавьте строку

dns-nameservers 8.8.8.8 8.8.4.4

в соответствующий раздел (= набор строк, указывающих свойства одного данного интерфейса). Обратите внимание на "s" в конце dns-nameservers (не ошибка) и наличие двух IP-адресов в одной строке.

Но вы также можете использовать resolvconf для изменения DNS на ходу:

echo "dns-nameservers 8.8.8.8" | resolvconf -a my_DNS

добавит 8.8.8.8 в качестве DNS (немедленно запускает скрипт обновления), и эта команда

resolvconf -d my_DNS

удалит его (опять же, скрипт обновления запускается сразу).

Если вместо этого вы хотите придерживаться своего любимого DNS через толстый и тонкий, самое простое - добавить свои собственные строки (как sudo) в файл /etc/resolv.conf, например

nameserver 8.8.4.4
nameserver 8.8.8.8

и затем измените файл так, чтобы никто не мог перезаписать его:

sudo chattr +i /etc/resolv.conf

На данный момент у вас есть неизменный набор DNS.

Осторожно, эти два решения конфликтуют, потому что пакет resolvconf преобразует обычный файл /etc/resolv.conf в символическую ссылку на /run/resolvconf/resolv.conf, которая, будучи файлом в tmpfs, является полной противоположностью постоянного файла , и вы не сможете применить к нему chattr.

Наконец, существует множество других временных решений, которые обсуждались много раз на нескольких форумах, как , например, здесь. На этой странице упоминается тот факт, что текущие дистрибутивы Ubuntu (и Debian) переместили /etc/dhcp3/dhclient.conf в /etc/dhcp/dhclient.conf, который является подходящим файлом для изменения, если вы выберете этот вариант.

0

Поэтому я попытался понять, и это мое намерение написать это: https://github.com/vindarel/open-nic

Пользователям просто нужно запустить python opennic-set.py (зависимости: apt-get install resolvconf и pip install BeautifulSoup4 (может быть по умолчанию в Ubuntu)), и скрипт выполняет следующие действия:

  • он получает от вас ближайшие DNS-серверы openNic,
  • он добавляет серверы имен в /etc/resolvconf/resolv.conf.d/tail,
  • он запускает resolvconf -u для обновления,
  • Он проверяет, можем ли мы получить доступ к зарезервированным TLD от opennic.

Попробуйте прямо сейчас: wget https://raw.github.com/vindarel/open-nic/master/opennic-set.py && python opennic-set.py

Любые комментарии приветствуются!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .