web-dev-qa-db-ja.com

LinuxでDNSを手動で設定する方法は?

Linuxでは/etc/resolv.conf DNSサーバーを管理するプログラムが多数あるため、DNSのセットアップ時に頻繁に上書きされます。

DNSを正しく設定する方法は?

1
intika

LinuxでのDNS構成

LinuxでのDNSの使用は完了していますインターネットドメインネームシステム(DNS)へのアクセスを提供するCライブラリの一連のルーチン。リゾルバー構成ファイル(resolv.conf)には、リゾルバールーチンがプロセスによって最初に呼び出されたときに読み取られる情報が含まれています。つまり、DNSを要求する各プロセスは、ライブラリを介して/etc/resolv.confを読み取ります。 The NSSはこの上に重ねられ、/etc/nsswitch.confによって構成されます。

Linux DNS configはファイル/etc/resolv.confにあります[〜#〜] but [〜#〜]自動的に実行したいプログラム/サービスがいくつかあります/etc/resolv.confでDNS構成ファイルを管理および処理します。状況によっては、このファイルを自分で管理したい場合があります。 DNSを管理する各プログラム/サービスには、/etc/dnsmasq.conf(dnsmasqサービス用)などの独自の構成ファイルがあり、接続の変更や他のイベントでDNS構成を追加します...簡単な解決策は、DNS構成ファイルをchattr +i /etc/resolv.confしかし、これは推奨されない場合があります。より良い解決策は、DNSを使用してすべてのプログラム/サービスを正しくセットアップすることです(dnsmasq/network-manager/resolvconf/etcなど)。

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
1
intika