В каком файле можно изменить DNS-адреса на Linux-машине?

«В каком файле можно изменить DNS-адреса на Linux-машине?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основной файл — /etc/resolv.conf, но он часто генерируется автоматически сетевыми менеджерами. Для постоянного изменения нужно править конфигурацию конкретного дистрибутива:

  1. На системах с Netplan (Ubuntu 18.04+):

    # /etc/netplan/01-netcfg.yaml
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.10/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]

    Примените: sudo netplan apply.

  2. На системах с NetworkManager (RHEL/CentOS/Fedora):

    • Через файл интерфейса: /etc/sysconfig/network-scripts/ifcfg-eth0 (добавить DNS1=8.8.8.8).
    • Или через команду: nmcli con mod eth0 ipv4.dns "8.8.8.8 1.1.1.1".
  3. При использовании systemd-resolved: Редактируйте /etc/systemd/resolved.conf:

    [Resolve]
    DNS=8.8.8.8 1.1.1.1

    Перезапустите: sudo systemctl restart systemd-resolved.

Прямое редактирование /etc/resolv.conf (обычно симлинка) — временное решение.