NetworkManagerに/etc/resolv.confの上部にDNSサーバーを追加させる方法は?


11

現在、私の/etc/resolv.confは次のようになっています。

# Generated by NetworkManager
nameserver 10.165.246.33
nameserver 192.135.82.60
nameserver 10.165.74.2

最初の2つのネームサーバーはDHCPを介して自動的に構成されます。最後の1つは、NetworkManagerで手動で追加したものです。また、内部ドメイン名(などbuild-server-17.our-company-domain.com)を解決するため、最も重要なものです。

問題は、NetworkManagerがそれをの下部に追加/etc/resolv.confするため、イントラネットURLにアクセスすると、ブラウザーが最初の2つのサーバーを使用してURLを解決しようとするため、時間がかかることです。

NetworkManager 、自動構成されたDNSサーバーの前に手動構成されたDNSサーバーを追加させるにはどうすればよいですか?


1
一般に、resolv.conf内のすべてのDNSサーバーは同じ結果を返すはずです。サーバーが混在していると、断続的に障害が発生し、多くの苦痛が生じます。
フィリップケンダル

回答:


3

具体的にどのシステムに対応するかはわかりませんが、システムがを使用している場合はresolvconf、ルート(su -またはsudo -i)として以下を試してください。

echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u

そのファイルには、手動での変更が上書きされることを示す警告があります。ただし、コンテキストでは、メッセージはに適用され/etc/resolv.conf、には適用されません/etc/resolvconf/resolv.conf.d/head

これにより、目的のネームサーバーがリストの最初に配置されます。もちろん、これがオペレーティングシステムで機能する場合は、NetworkManagerから10.165.74.2を削除できます。

ローカルリゾルバdnsmasqも優れた前進経路です。を使用するとdnsmasq、DNSとDHCPをはるかに制御できます。たとえば、このシナリオでdnsmasqは、serverオプションで指定されたドメイン名に基づいて特定のネームサーバーにクエリを実行できます。dnsmasq.conf以下の目的に関連する可能性のある抜粋をご覧ください。

# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2

更新

オペレーティングシステムについて言及いただきありがとうございます。CentOS 7には多くの方法があります。GUIで、[アプリケーション]> [システムツール]> [設定]> [ネットワーク]をクリックします。構成する接続を選択します。

CentOS 7 NetworkManager-接続の構成

自動DNSをオフにし、ネームサーバーを指定します。構成を適用します。

CentOS 7 NetworkManager-静的DNS設定の適用

次回NetworkManagerがその接続を開始するときに、カスタム値を書き込みます。(テスト中、2つのネットワーク接続があったため、ネットワークをオフにしてから再びオンにしました。)

ドキュメントによると、

  1. NetworkManager nmtui用の単純なcursesベースのテキストユーザーインターフェイス(TUI)が利用可能です。
  2. コマンドラインツールnmcliは、ユーザーとスクリプトがNetworkManagerと対話できるようにするために提供されています。nmcliは、サーバーのようなGUIのない​​システムでNetworkManagerのすべての側面を制御するために使用できることに注意してください。GUIツールと同等の立場にあります。

特に、nmcli ドキュメントは非常によく見えました。


1
resolvconfパッケージを持たないCentOS です。dnsmasqしかし、良い解決策のようです。
初心者Linuxユーザー

8

私は誤って重複した質問を作成し、ここ。答えはそこにありますが、基本的には次のものを作成する必要があります。

/etc/dhcp/dhclient.conf

まだ存在しない場合は、次を追加します。

prepend domain-name-servers [ip address of server];

最後のセミコロンを忘れないでください!

その後、単に再起動すると、「/ etc / resolv.conf」の「nameserver [サーバーのIPアドレス]」行が自動的に先頭に移動しました。


素晴らしい!これはNetworkManagerによって使用されるバックエンドであり、これをすべてのwifi接続(静的ではない)で機能させる唯一の方法です。ありがとう!
エイドリアンM.

0

別の方法があり、NetworkManager.serviceをオフにする必要はありません。ifcfg-ideviceを設定するだけです:

PEERDNS=no
DNS1=10.165.74.2
DNS2=OTHERDNS
DOMAIN=DEMO.COM

次のような/etc/NetworkManager/NetworkManager.conf設定を設定する必要はありません。

[main]
dns=none
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.