私のPCでは、cloudflareネームサーバーをプライマリサーバーとして使用したいと思います。この目的のために、Arch wikiに従って、/etc/NetworkManager/conf.d/dns-servers.conf
次のコンテンツを含むファイルを作成しました。
[global-dns-domain-*]
servers=2606:4700:4700::1111,1.1.1.1
この方法は機能しますが、自動的に提供されたDNSネームサーバーを使用してログインページにリダイレクトされるため、特定のパブリックネットワークログインページにアクセスできません。
グローバルに提供するネームサーバーをデフォルトとして使用し、ローカルDHCPネームサーバーをフォールバックとして使用するようにNetwork Managerを設定する方法はありますか?
もう一つありますエマルジョンしかし、すべての答えは、DNSがネットワーク管理者が直接処理するのではなく、dhcpcdまたは同様のソフトウェアによって処理されると仮定しています。ネットワーク管理者だけを使用してこれを行う方法はありますか?
答え1
いくつかの研究の終わりに方法を見つけました。
まず削除しました/etc/NetworkManager/conf.d/dns-servers.conf
(最初に作成していない場合はスキップしてください)。その後、/etc/NetworkManager/dispatcher.d/pre-up.d/30-add-custom-dns.sh
次の内容でファイルを作成しました。
#!/bin/sh
if [ "$2" = "pre-up" ]; then
sed -i '1inameserver 1.1.1.1' /etc/resolv.conf
sed -i '1inameserver 2606:4700:4700::1111' /etc/resolv.conf
fi
実行可能でルートに属していることを確認する必要があります。私は以下を実行しました。
sudo chown root:root /etc/NetworkManager/dispatcher.d/pre-up.d/30-add-custom-dns.sh
そして
sudo chmod +x /etc/NetworkManager/dispatcher.d/pre-up.d/30-add-custom-dns.sh
確認。最後に、このシステムサービスを有効にして起動しましたNetworkManager-dispatcher.service
。
このスクリプトは接続が初期化された後に実行され、/etc/resolv.conf
NetworkManagerがそこに置いた内容をそのまま維持しながら、cloudflareネームサーバーエントリの先頭に追加されます。