ubuntu デスクトップのネットワーク設定は NetworkManagerから
Ubuntu のネットワーク周りはカオス。というか、最近のLinuxのネットワーク周りはディストリ間でsystemdによる共通化を受容している段階なのでややこしい。
Ubuntuのデスクトップ版は主にNetworkManagerで管理しているんだけど、DNSの設定は、resolv.confに直接書かずにリンクになってたりする。これがちょっと不満なので、直接 /etc/resolv.confに書き込んでほしい。
/etc/NetworkManager/NetworkManager.conf
[main] plugins=ifupdown,keyfile dns=default
設定したら再起動
sudo systemctl restart network-manager
もし。/etc/resolv.confがsymlinkになって利すると面倒なので、いったん/etc/resolv.confを空にしておくといいかも
sudo rm /etc/resolv.conf; sudo touch /etc/resolv.conf
再起動後は、直接取れる。
再起動後、DHCPで割り振られたDNSサーバーが直接参照できるようになる。
takuya@:~$ ll /etc/resolv.conf -rw-r--r-- 1 root root 89 2019-10-11 15:38 /etc/resolv.conf
/etc/resolv.conf
# Generated by NetworkManager search local nameserver 192.168.2.1 nameserver 192.168.2.5
network-managerのDNS設定
https://qiita.com/onokatio/items/af0035d1563acbbfeed2
これによると、次のようになる。
- dnsモード 振る舞い
- default 取得したDNSサーバーをそのまま使います。
- dnsmasq キャッシュ用にdnsmasqをサブプロセスとして起動します。DNSサーバーは127.0.0.1を使います。
- unbound 上のunboundバージョン
- systemd-resolved 上のsystemd-resolvedバージョン
- none NetworkManagerはDNSに関して何もしません。また次に書いてあるrc-managerも無効になります。
ネットワーク周りは面倒くさい。
dns の設定だけでも、
- network-manager
- /etc/resolv.conf
- /etc/resolvconf.conf
- systemd networkd-resolved
と、相互に依存しながら編集してるので、注意しないとデフォルト設定がどこに流れているのかわからなくなるよね。。。