resolve.confが勝手に書き換わるのを防ぐ

最近、FireFoxでウェブサイトが表示されるのが遅くてストレスが溜まってきた。Googleの検索結果で見つかったウェブサイトにアクセスしようとすると30秒から1分くらいかかる。あとSmbをウィンドウズ共有名(\\windows-pcみないな名前解決)でアクセスしようとするとこれまた30秒以上かかり、まれにタイムアウトする。IPアドレス直打ちでアクセスすると問題なし。
なんとかならないか調べてみたところ、DNSの名前解決に問題ありそうだった。
Google.co.jpのドメイン名でウェブを表示すると時間がかかるが、IPアドレスでウェブ表示すると瞬時に表示される。

そこでDNSサーバーの設定を見直してみることにした。DNSサーバーの設定はDebianの場合/etc/resolv.confで定義されている。
このresolv.confを開くと以下のようになっていた。2行目が、プライマリDNSサーバーで3行目がセカンダリDNSサーバーだとおもわれるので試しに2行目のプライマリDNSサーバーを削除してみた。

  1 # Generated by NetworkManager  
  2 nameserver 192.168.xx.xxx    ←この行を削除
  3 nameserver 10.251.xx.xxx

すると、いままで30秒以上かかっていたgoogleの表示が一瞬で完了して、Smbサーバーへもウィンドウ共有名でアクセスできるようになった。どうやらプライマリDNSがレスポンスが非常に悪い状態にあるらしい。
この状態でOSを再起動したところ、再びウェブサイトの表示が遅くなった。
resolv.conをみていると、さっき消したプライマリDNSサーバーが復活している。よくみると1行目に「# Generated by NetworkManager 」と書かれている。どうやらNetworkManagerはOS起動時に毎回、resolv.confを作成しているっぽい。

なのでNetworkManagerでresov.confを生成しないように設定する。
設定方法は以下のサイトに記載があったので参考にした
NetworkManagerによるresolv.confの自動生成を抑制する – CentOS/Rocky Linuxサーバ構築術 文具堂

/etc/NetworkManager/NetworkManager.conf の[main]セクションに以下を追加する

[main]
dns=none

これで再起動後もresolv.confが勝手に書き換わらなくなった。