Linux Mint(Ubuntu) で静的にDNSサーバを指定する方法

@aintek on Sat Aug 17 2019
2.8 min

目次

/etc/resolv.confを書き換えてはいけない

/etc/resolv.confはsystemd-resolvedというサービスによって動的に書き換えられる。
そのため、起動後に/etc/resolv.confを書き換えても再起動後には、それらの設定がsystemd-resolvedによって上書きされ、設定は消えてしまう。

そこで、正規の手順を以下に示す。

/etc/systemd/resolv.confを書き換える

man systemd-resolved.serviceを読めば記載されているが、/etc/systemd/resolved.confで設定することができる。
※または/etc/systemd/network/*.networkで個別に設定も可能。

例えば、デフォルトのDNS設定として8.8.8.8を指定したい場合には以下のように設定する。

[Resolve]
DNS=8.8.8.8 8.8.4.4
  • Resolveセクションに記載する
  • DNS=の後に記載
  • 複数設定する場合には、スペース区切りで記載
    _

シンボリックリンクの張り替え

仮に、/etc/resolv.confのシンボリックリンクが /run/systemd/resolve/stub-resolv.conf となっている場合、これを張り替える必要がある。

※ただし、この時のシンボリックリンクが /run/systemd/resolve/resolv.conf であれば systemd-resolve.service を再起動するだけで良い。

/etc/resolv.confのシンボリックリンクを下記コマンドで正しい参照元にする。

cd /etc
sudo ln -sf ../run/systemd/resolve/resolv.conf resolv.conf
ls -l resolv.conf

以下の結果になればOK

resolv.conf -> ../run/systemd/resolve/resolv.conf

_

サービスの再起動

下記コマンド を実行しresolvサービスを再起動する。

sudo systemctl restart systemd-resolved.service 

/etc/resolv.confの設定が /etc/systemd/resolved.conf で設定したような内容になっていればOK。

以上。

日別に記事を見る