DNSはsystemdの127.0.0.53に設定されています-永久に変更する方法は?


38

最近、17.10にアップグレードしました。Webサイトを参照しようとしたり、ドメインにpingしようとすると、サイトを解決できないというメッセージが表示されます。

network-adminの内容を示し/etc/resolv.confますnameserver: 127.0.0.53

これを8.8.8.8または208.67.222.222に変更すると、すべてが機能します。再起動するまで。

再起動または再開すると、ネームサーバーは127.0.0.53にリセットされます。

ネームサーバーを機能するものに永続的に設定するにはどうすればよいですか?


systemdファンの場合、実行するsystemd-resolve --status

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

この質問のアドバイスに従えば、DNSは再起動後もリセットされ続けます。Ubuntu 17.10 -DNSはまだ解決に失敗します。


systemctl stop systemd-resolvedそしてsystemctl mask systemd-resolvedトリックを行う必要があります:)
Shayan

回答:


28

パッケージresolvconfをインストールでき/etc/resolv.confます。これにより、システムのブート時に構築される方法が変更されます。

sudo apt install resolvconf

その後、ファイルを作成または変更できます/etc/resolvconf/resolv.conf.d/tail。このファイルに1行を入力するとnameserver 8.8.8.8、この行は/run/resolvconf/resolv.confブートの最後に追加されます。 /etc/resolv.confこれで、このファイルへのシンボリックリンクになります。


4
これは動作します-ありがとう!127.0.0.53を単独で動作させる方法があるかどうか知っていますか?
テレンスエデン

1
私はこの問題についてかなり新しいです。先週、VPNのオン/オフを切り替えるときに、DNSの問題を取り除こうとしていました。試すことができsudo dpkg-reconfigure resolvconfます。私は最近これを試し、テールファイルをクリアしましたが、最初はこれでうまくいくようです。
oscar1919

@TerenceEden 127.0.0.53を単独で動作させる(必要な場合)場合は、私の回答をご覧ください
intelfx

9

正しい解決策は、修正にsystemd分解の代わりにギロチンで硬化片頭痛にしようとするだろう。

適切に使用すれば、本当に素晴らしいツールです。

systemd-resolve --status出力から判断すると...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

...ネットワークマネージャーツールは、インターフェイスごとのDNS構成をsystemd-resolvedに渡しません。

場合はNetworkManagerの最近のバージョンは、例えば、これを自動的に行うだろう/etc/resolv.conf内部のシンボリックリンクを指している/run/systemd/resolveかに/usr/lib/systemd/resolv.conf。あるいは、systemd-resolvedの最新バージョンは、systemd-resolvedと通信するresolvconfバイナリをインストールすることにより、歴史的なresolvconfインターフェイスとの互換性を保とうとします。

これらの2つのソリューションのいずれかを使用することをお勧めしますが、迅速で汚れたソリューションを探している場合は、DNSサーバーをグローバルに使用するようにsystemd-resolvedを構成できます。

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

その後、再起動systemd-resolved.serviceまたは再起動します。


少なくとも私にとっては、変更後、「DNS」エントリをUbuntuの18.04を使用して、この回答doesntの仕事は、それが127.0.0.53 USINT保つ
アンドレ・M.ファリア

1
@AndréM.Fariaは、解決の仕組みを学びます。127.0.0.53ローカルキャッシングスタブリゾルバのアドレスです。指定したアップストリームDNSサーバーにDNS要求を転送します。
intelfx

時々あなたは何かを知っていて、それを無視するだけです、そうです。
アンドレ・M・ファリア

1
ここで注意するのは、デフォルトでsystemd-resolvedDNS応答をキャッシュすることです。これは時々役立つかもしれませんが、状況によっては問題を引き起こす可能性があります。cache=yes答えの設定ファイルの行のコメントを外し、に設定しますno
クエンティン・スコウセン

実際に更新される原因/etc/resolve.conf(または実際に /run/resolvconf/resolv.confは、前者が指している)は何ですか?再起動の必要なしに、テストのために知っておくといいでしょう。私が言えることは、再起動systemd-resolved.serviceはトリックを実行していないようだということです
bbarker

8

LubuntuとKubuntu 18.04を使用しています。2つの手順でDNSの問題を克服できました。

最初のステップ:GrégoireCここに示すunboundように、インストールして置換するsystemd-resolvedように設定します

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

リブート

ルートとしてファイルを開きます /etc/NetworkManager/NetworkManager.conf

sudo leafpad /etc/NetworkManager/NetworkManager.confLubuntu 18.04またはKubuntu 18.04でSUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf

以下[main]にこの行を置きます:

dns=unbound

再起動

2番目のステップ:再起動後も問題が解決しない場合(私の場合のように)、ファイルマネージャーをrootとして起動し、に移動して、新しいを/etc削除resolv.confして作成しますresolv.conf。空のままにして、OSを再起動します。私の場合、この再起動後、問題はなくなりました。

Kubuntu 18.04では、Dolphinをルートとして起動できないため、最初に/etcそこからターミナルを開いて、Enterキーsudo su押してルートとして使用し、コマンドで削除できます。その後、デスクトップに新しい空のファイルを作成し、名前を付けてそこからターミナルを開くことができます。使用端末のルートモードに入るようにコマンドをし、新しいコピーにデスクトップからのコマンドで。resolv.confrm resolv.confresolv.confsudo suresolv.conf/etccp resolv.conf /etc

追加する必要があるのはインストールする前に2番目のステップを実行しようとしなかったunboundので、次回は、それが十分かどうかを確認するためです。


ルートとして編集して内容を削除してみませんか?
バリー

@Ballie最初はこれを試しましたが、助けにはなりませんでした。また、resolv.confからのオリジナル/etcは、ある種のショートカットとして表示されましたが、これは普通ではないでしょう。これが、私がそれを削除して、新しい空のファイルを作成してそれに命名することによってそれを再作成することに決めた理由resolv.confです。そしてそれは働いた。この理由により、次にOSを再インストールする必要がある場合、「最初のステップ」を実行せずに最初にこれを実行しようとすることを上記で書きました-それで十分かどうかを確認します。しかし、とにかくオリジナルresolv.conf/etc削除して再作成する必要があります-これについては確信しています。
КалоянГрънчаров

systemd-resolved.serviceを無効にして、resolv.confのリンクを削除し、手動で作成したところ、うまくいきました!
アンドレ・M・ファリア

8

systemdパラダイム内での作業は、リンク/デバイスにDNSを追加します

ubuntu 17.10以降を使用して*.networkファイルを追加します。

sudo nano /lib/systemd/network/100-somecustom.network

100-somecustom.network(100は優先度に応じて任意の数にすることができ、.networkファイル拡張子が必要です):

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

次に再起動します。

sudo service systemd-networkd restart

以下もご覧ください。

netplan apply

次に確認してください:

systemd-resolve --status wlo1

情報ページからinfo systemd.network

に加えて/etc/systemd/networkドロップイン「.d」ディレクトリを/ lib / systemd / networkまたは/ run / systemd / networkディレクトリに配置できます 。/ etc内のドロップインファイルは、/ run内のファイルよりも優先されます。/runは、/ lib内のファイルよりも優先されます。これらのディレクトリのいずれかのドロップインファイルは、メインのnetdevファイルよりも優先されます。(もちろん、/ runは一時的であり、/ usr / libはベンダー向けであるため、これらの場所のいずれかでドロップインを使用する必要はほとんどありません。)

別のアプローチでは、DNSStubListenerforの使用を無効にしますdnsmasq

sudo nano /etc/systemd/resolved.conf

#
DNSStubListener=false

関連:


奇妙なのは、DNSStubListener = falseであると述べたが、実際にコメントされた構成はDNSStubListener = yesであり、通常、「yes」値の逆は「no」であり、「false」ではなく「false」であるtrue」。
アンドレ・M・ファリア

拡張子が.networkのファイルを作成するという回答は機能しませんでした。
アンドレ・M・ファリア

2

これは、インターフェイス構成でDNSレコードを変更する方法です。

$ vi /etc/netplan/50-cloud-init.yaml

ネームサーバーアドレスを変更します。以前は.4でしたが、その後.3に変更しました。

...
            nameservers:
                addresses:
                - 192.168.1.3
...

構成を保存してから、構成を適用します。

$ sudo netplan apply

その後、resolvectlサービスを再起動します。

$ sudo systemctl restart systemd-resolved.service

注:サーバーを再起動しましたが、変更はそのまま残りました。resolvctl dnsコマンドを使用してDNSレコードを確認します。


これは実際には正しい答えです。受け入れられたものではないことに驚いています。
トゥーマル

0

NordVPNにいくつかの問題があったため、これに追加することにしました。

調査結果:
NordVPNは/run/systemd/resolve/resolv.conf接続時にDNS設定を設定します。
NordVPNは/run/systemd/resolve/resolv.conf、切断時にすべてのDNS設定を削除します。
これにより、DNSサーバーが機能しなくなります(1つのセットがないため)。

システムを再起動して、すべての設定に戻す必要があります。サービス(sudo systemctl restart systemd-resolved.service)の標準的な再起動は機能しません。

これを回避するソリューション:

sudo apt install resolvconf

/etc/resolvconf/resolv.conf.d/に移動します

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

ネームサーバーを追加する

nameserver 1.1.1.1
nameserver 1.0.0.1

設定できるネームサーバーについては、次の場所を確認してください。

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

どのDNSサーバーが使用されているかをテストします。

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53

0

少し遅れたかもしれませんが、私はこの問題に遭遇しました。組み込みのnetworkmanagerではなく、cliを使用してネットワーク設定を手動で構成したことを認めなければなりません。Ubuntu 18.04を実行します。

したがって、systemd.resolved.serviceを無効にしてから再度有効にした後、DNS構成がランダムに失われるというこの不安定な動作は解決されました。

systemctl disable systemd.resolved.service
reboot

再起動後:

systemctl enable systemd.resolved.service
reboot

私は比較的新鮮なLinuxユーザーですので、なぜこれが私にとってうまくいったのか、その理由と理由を説明できる人がいるに違いありませんが、他の人を助けることができれば言及する価値があるように思えました。


失望するように努めてください、しかしあなたが実際に問題を解決したあなたが間にした何かがなければなりません。ここで提案している操作は、システムをそのままにすることができます。
ティシュマ

-1

dhcp名前解決を使用すると、Ubuntuで期待どおりに機能します。問題は、静的になりたいときに始まります。cat /etc/resolv.confyor dnsは127.0.0.53であり、/etc/netplan/.yamlファイルにあるものではないことを示します。これを修正するには、/etc/resolve.confリンクを削除して、リンクを指す新しいリンクを作成する必要があります/run/resolve/resolve.conf


してください、あなたの答えを編集し、いくつかの書式を修正...
Yufenyuy Veyeh Dider

-2

これにはいくつかの遊びが必要でした。設定を更新した後、再起動しました。つかいます:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

「リクエスト」をコメントアウトする場合

# domain-name, domain-name-servers, domain-search, host-name,

以下にこの行を追加します/etc/dhcp/dhclient.conf

 supersede domain-name "cwillenterprise.com";

構成ファイルを編集し、エントリを追加します。追加は置き換えられません。

にエントリを追加 /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

実行して変更を実装する

resolvconf -u

1
Ask Ubuntuへようこそ!回答を編集して、ファイルまたは端末に入力する必要のあるコードのフォーマットを使用してください。#コードの「コメント」の前に付けないでください。Markdownのヘッダーを意味します。投稿を送信する前に、必ず投稿のプレビューを確認してください。
メレビウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.