LinuxでのDNS構成
LinuxでのDNSの使用は、インターネットドメインネームシステム(DNS)へのアクセスを提供するCライブラリの一連のルーチンを介して行われます。リゾルバー構成ファイル(resolv.conf
)には、リゾルバールーチンがプロセスによって最初に呼び出されたときに読み取られる情報が含まれています。要するに、DNSを要求する各プロセス/etc/resolv.conf
はライブラリーを読み取ります。NSSはこの上に階層化され、によって構成され/etc/nsswitch.conf
ます。
LinuxのDNS設定をファイルに配置されている/etc/resolv.conf
しかし、自動的にDNSの設定ファイルを管理し、処理するために望んでいるプログラム/サービスの数があります/etc/resolv.conf
。状況によっては、このファイルを自分で管理したい場合があります。DNSを管理する各プログラム/サービスには/etc/dnsmasq.conf
(dnsmasqサービス用)などの独自の構成ファイルがあり、接続の変更時や他のイベントでDNS 構成を追加します...簡単な解決策はDNS構成ファイルをロックすることですがchattr +i /etc/resolv.conf
、これはお勧めしません場合によっては、(dnsmasq / network-manager / resolvconf / etc。)のようなDNSを使用してすべてのプログラム/サービスを正しくセットアップすることをお勧めします
DNSの制御を取り戻す
resolv.confの制御を取り戻し、上書きされないようにするためのセットアップの完全なリストを以下に示します(resolv.conf以外の場所からDNSを無効化/セットアップする方法)。resolvconfはresolv.confから独立したプログラムであり、システム/構成によっては、ここにリストされているプログラムの1つまたは多くがない場合があります。
1. Resolvconf:
構成ファイル
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
構成を更新する
sudo resolvconf -u
resolvconfを無効にする
systemctl disable --now resolvconf.service
2. Dnsmasqサービス:
構成ファイル
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
構成を更新する
sudo systemctl restart dnsmasq.service
3.ネットワークマネージャー:
構成ファイル
/etc/NetworkManager/*
DNSを無効にする
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
DNSを有効にする
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
解決されたサービスを使用する
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
resolvconfを使用する
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
構成を更新する
systemctl restart NetworkManager.service
4.ネットワークインターフェイス:
構成ファイル
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
構成を更新する
reboot
5. DHCPクライアント:
構成ファイル
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
構成を更新する
reboot
6. Rdnssdサービス:
rdnssdを無効にする
systemctl disable --now rdnssd.service
7.解決されたサービス:
解決を無効にする
systemctl disable --now systemd-resolved.service
8. Netconfig:
構成ファイル
/etc/sysconfig/network/config
netconfigを無効にします
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
構成を更新する
reboot
DNSサーバーの設定
/etc/resolv.conf
構成の例
#Cloudflare
nameserver 1.0.0.1
#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4
#Cloudflare
#nameserver 1.1.1.1
#Classic Config
#nameserver 192.168.1.1
#search lan