web-dev-qa-db-ja.com

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

現在、私の/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の-​​bottomに追加するため、イントラネットURLにアクセスすると、ブラウザーが最初の2つのサーバーを使用してそれを解決しようとし、時間がかかることです。

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

11

具体的にどのシステムに対応するかわかりませんが、resolvconfを使用している場合は、rootとして以下を試してください(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 - Configure Connection

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

CentOS 7 NetworkManager - Apply Static DNS Settings

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

documentation によれば、

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

特に、nmclidocumentation は非常によく見えました。

3
Christopher

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

/etc/dhcp/dhclient.conf

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

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

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

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

9
alfreema

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

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

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

[main]
dns=none
0
user1437464