Как правильно сменить DNS IP?

Я подозреваю, что сервер имен, предоставленный моим модемом / маршрутизатором ADSL, глючит. Когда я впервые захожу на веб-сайт в Ubuntu, разрешение доменного имени занимает не менее 15 секунд.

Чтобы обойти эту проблему, я изменил конфигурацию сервера имен в /etc/resolv.conf с 192.168.1.1 (мой ADSL модем) до 8.8.8.8 (основной DNS Google). Кажется, это решает проблему, но, к сожалению, мои изменения в /etc/resolv.conf перезаписываются "NetworkManager" при каждом запуске.

Как правильно настроить IP-адрес сервера имен в Ubuntu 10.4?

11 ответов

Решение

Если у вас типичная настройка соединения с сетевым менеджером и DHCP, попробуйте следующее:

  1. Щелкните правой кнопкой мыши значок диспетчера сети на панели и выберите "Изменить подключения..."
  2. Выберите ваше подключение на проводной или беспроводной вкладке, выберите "Изменить"
  3. (Введите свой пароль, если соединение установлено как "общесистемный доступный")
  4. Выберите вкладку настроек IPv4
  5. Переключить метод на "Только автоматические (DHCP) адреса"
  6. Введите имя нужного сервера в поле "Дополнительные DNS-серверы" и нажмите "Применить".

Это должно делать свое дело.

Лучший способ установить сервер имен через CLI, без NetworkManger, со статическим адресом или независимо от соединения:

Установите пакет resolvconf.

Бежать

sudo nano /etc/resolvconf/resolv.conf.d/head

(игнорируйте страшное предупреждение. /etc/resolv.conf генерируется автоматически, поэтому предупреждение уже есть, поэтому оно будет помещено в /etc/resolv.conf при создании /etc/resolv.conf.) В конец файла, добавлять

 nameserver <ip_of_nameserver>

Нажмите Ctrl x и ответьте yes, чтобы сохранить файл. Чтобы закончить, создайте заново /etc/resolv.conf, чтобы изменения вступили в силу прямо сейчас:

 sudo resolvconf -u

Вы можете изменить их, как это.

Сначала щелкните значок диспетчера сети на панели меню и нажмите кнопку Edit Connections... вещь.

введите описание здесь

Теперь переключитесь на вкладки "Проводной" или "Беспроводной", в зависимости от того, что вы используете - я использую WiFi, поэтому я буду использовать это.

Выберите название вашей сети и нажмите Edit...

Перейдите на вкладку IPv4, а затем измените ее с автоматического DHCP на автоматические (DHCP) адреса только.

Введите в свой DNS-сервер IP-адрес.

введите описание здесь

Нажмите сохранить, и все готово!

Еще один способ сделать это - отредактировать /etc/dhcp3/dhclient.conf Вы можете сделать это, набрав это в диалоговом окне запуска (появляется при нажатии Alt + F2)

gksudo gedit /etc/dhcp3/dhclient.conf

Затем найдите следующую строку

#prepend domain-name-servers 127.0.0.1;

И изменить его на

prepend domain-name-servers 8.8.8.8;

Это заставит dhclient (DHCP-клиент, который использует NetworkManager) добавить это к вашим DNS-серверам, так что resol.conf будет выглядеть примерно так

nameserver 8.8.8.8
nameserver 192.168.1.1

Это решение будет работать везде, и вы всегда получите DNS, который вы выбрали в качестве основного.

Другим решением является изменение конфигурации вашего маршрутизатора для использования другого DNS-сервера. Просто войдите в систему с правами администратора, и если проблема не в маршрутизаторе, все ваши клиентские машины получают более качественный DNS.

Нажмите на индикатор сети в правом верхнем углу экрана и выберите Edit Connections..., Выберите соединение, которое хотите изменить (возможно, из Wired или же Wireless вкладку и нажмите Edit... кнопка.

Переключиться на IPv4 Settings вкладку окна подключения и измените метод с Automatic (DHCP) в Automatic (DHCP) addresses only, Теперь вы сможете указать IP-адрес DNS-сервера.

Сохраните соединение, и вам должно быть хорошо идти. Возможно, вам придется сбросить соединение, выбрав его в меню индикатора после изменения настроек.

Вы можете изменить настройки DNS IPv4 графическим способом, как ответили здесь

Но если вам интересно, как сделать то же самое с помощью командной строки, вы должны перечислить файлы в /etc/NetworkManager/system-connections каталог с ls команда:

ls /etc/NetworkManager/system-connections

Должен быть файл с названием вашего соединения, мой называется Wired Connection 1,

Итак, нам нужно отредактировать файл и добавить в него DNS-серверы:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

Добавьте столько DNS-серверов, сколько вам нужно, под [ipv4] разделить и разделить их точкой с запятой ; а также положить ; в конце последнего DNS-сервера вот так:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

Вы можете просто удалить эту строку, если не хотите назначать днс.

Также вы должны добавить эту строку ignore-auto-dns=true игнорировать предоставленные DHCP DNS-серверы (например, DNS-сервер, установленный в конфигурации маршрутизатора):

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

Немного контекста к этому ответу: я пытался выяснить, какой файл редактируется, когда я добавляю DNS-сервер в настройках DNS графического интерфейса, поэтому я выполнял эту команду более 16 часов: sudo grep -rs "1.1.1.1" / который сканировал все файлы на моей виртуальной машине Ubuntu, но он так и не завершился даже после долгого запуска, но я знал, что возможно, что файл может существовать в /etc/NetworkManager поэтому я побежал grep снова указав на этот каталог и нашел это: /etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1; поэтому я вернулся сюда, чтобы написать ответ только для того, чтобы узнать, что Lekensteyn уже указал это в комментариях к принятому ответу.

Для начала нужно установить resolveconf.service:

sudo apt-get update
sudo apt-get install resolvconf

Затем вам нужно запустить службу resolvconf:

sudo systemctl start resolvconf.service

Тогда вам нужно включить resolvconf.service при загрузке:

sudo systemctl enable resolvconf.service

Вы можете проверить статус с помощью команды:

sudo systemctl status resolvconf

Вы увидите что-то вроде этого:

Затем вам нужно изменить конфигурацию в файле /etc/resolv.conf.d/head:

sudo nano /etc/resolvconf/resolv.conf.d/head

Вам нужно добавить такие DNS-серверы (Google DNS). Можете добавить:

  1. Адреса IPv4:

    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
  2. или адреса IPv6:

    nameserver 2001:4860:4860::8888
    nameserver 2001:4860:4860::8844
    

Затем вам нужно перезапустить resolvconf.service:

sudo systemctl restart resolvconf.service

Теперь вы можете проверить свой /etc/resolve.confфайл. И вы увидите свой новый DNS.

sudo nano /etc/resolv.conf

Я считаю, что если вы измените его под сетевым менеджером, изменения будут сохранены.

Например, использовать eth0

Диспетчер сети -> Проводной -> Авто eth0 -> Настройки ipv4.

Установите DNS-сервер на 8.8.8.8 и примените.

Открыть этот файл

$ sudo nano /etc/resolv.conf

Удалите IP-адрес, созданный NetworkManager, и добавьте следующую строку (я добавляю сюда адрес 1.1.1.1).

nameserver 1.1.1.1

Сохраните и выйдите, затем запустите следующую команду, чтобы NetworkManager не переопределял файл

$ sudo chattr +i /etc/resolv.conf

Если вы хотите отредактировать тип файла sudo chattr -i /etc/resolv.conf и добавьте свою конфигурацию, наконец, повторно введите chattr +i команда.

Использование терминала

Вам нужно отредактировать /etc/resolv.conf файл для установки IP-адреса сервера имен, который должен запрашивать распознаватель. Можно определить до 3 IP-адресов серверов имен. Если имеется несколько серверов, библиотека распознавателя запрашивает их в указанном порядке.

Первый тип

sudoedit /etc/resolv.conf

Добавьте IP-адрес предпочитаемого DNS-сервера следующим образом:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

взяты из: http://www.cyberciti.biz/faq/ubuntu-linux-configure-dns-nameserver-ip-address/

Создайте файл настроек (с разрешениями sudo)

/etc/sysconfig/network-scripts/ifcfg-default-dhcp

с содержанием:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME="default setting on boot"
UUID=616e72fa-e208-358c-8567-d0eae408e989
DEVICE=enp0s31f6
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
DNS1=8.8.8.8
DNS2=8.8.8.4
IPV6_PEERDNS=no

Я обнаружил, что добавление строки dns-nameserver ip в файл интерфейсов, задав для параметров проводного соединения ipv4 только Автоматические (DHCP) настройки и введя IP-адрес DNS-сервера и имя домена. Кроме того, добавление локального IP-адреса DNS в раздел статического DNS маршрутизатора DSL заставляет NetworkManager включить этот локальный адрес в resolv.conf файл, который он перезаписывает вместе с другой информацией, полученной от маршрутизатора. Похоже, что все это вместе делает локальное разрешение имен DNS постоянным, что кажется удивительно трудной задачей. Мне нужен локальный DNS для подключения клиента Linux к общему ресурсу Samba с помощью mount.cifs в сети, обслуживаемой DHCP.

Если Network-Manager остановлен и /etc/resolvconf/resolv.conf.d/base был настроен.

Может быть resolvconf --enable-updates Полезно.

Для безголовых серверов, где нет X и управление осуществляется с помощью ssh или чего-либо еще, необходимо решение из командной строки. Если resolv.conf не перезаписан, то это правильное место для изменения серверов имен.

Если resolv.conf перезаписывается, то, по крайней мере, на 14.04LTS, файлы для редактирования:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

Я настоятельно рекомендую помещать строки комментариев в такие файлы, чтобы они появлялись в сгенерированном файле (/etc/resolve.conf), и вы сможете найти их в будущем. Я начинаю и заканчиваю каждый файл однострочным комментарием формы:

  • # ====== begin /etc/resolveconf/resolv.d/tail ======
  • # ====== end /etc/resolveconf/resolv.d/tail ======

и поместите соответствующие директивы между ними.

Другие вопросы по тегам