ソリューション1

ソリューション1

私はRaspberry PiでArch Linuxを実行しています。

突然:

  1. ウェブサイトにpingを送信できません。
  2. ブラウザからウェブサイトにアクセスできません。

また、pingして使用できる2台のコンピュータ(どちらもArch Linuxを実行)がインターネットに接続されています。また、/etc/resolv.conf他のコンピュータでも同様です。

nameserver 10.230.252.252
nameserver 203.147.88.2
nameserver 8.8.8.8
search domain.name

VNCを使用できます。 8.8.8.8にpingすることもできます。 ChromiumでDuckDuckGoにアクセスしようとすると、次のメッセージが表示されます。

This site can’t be reached
duckduckgo.com’s server IP address could not be found.
DNS_PROBE_FINISHED_NXDOMAIN

インターネットに接続されています。何が問題なの?

答え1

Arch Linuxを実行している他のx86_64 PCでは問題は発生しませんでしたが、これまでArch Linux ARMでNetworkManagerを実行すると、この問題が頻繁に発生しました。

問題は、Wi-Fiに接続されていますが、pingやインターネットは利用できませんが、リモートデスクトップ共有ソフトウェアを使用してもローカルネットワーク上のすべてのコンピュータにアクセスできることです。

pingやブラウザがホストをチェックしようとすると、問題が発生する可能性があります。 3つの解決策を考えてみましょう。

ソリューション1

私はこれがArchlinux ARMを実行し、NetworkMangerを使用する何千ものRaspberry Piシステムで発生する問題だと思います。

私の場合、/etc/resolv.confは壊れたシンボリックリンクでした../run/systemd/resolve/stub-resolv.conf

NetworkManager はシンボリックリンクを入力できず、/etc/resolv.conf が空です。私たちは次のことを行う必要があります。

  1. 壊れたシンボリックリンクを削除します。
# rm /etc/resolv.conf
  1. /etc/NetworkManager/conf.d/dns.conf次の内容でファイルを作成します。
[main]
dns=none
main.systemd-resolved=false
  1. ネットワーク管理者を再起動します。
sudo systemctl restart NetworkManager

解決策2に従わなかった場合、問題は解決されます。


ソリューション2

上記の方法で問題が解決しない場合は、次の方法で/etc/resolv.confを一時的に入力できます。

sudo systemctl restart systemd-resolved && sudo systemctl stop systemd-resolved

その理由は、ファイルを混乱させることがある可能性があるためです/etc/resolv.conf。上記のコマンドは内容を上書きしますが、問題の原因を再確認する必要があります。


解決策3

復元できない場合は、/etc/resolv.conf新しいリンクを作成し/etc/resolv.conf(または空の既存のリンクまたはシンボリックリンクがある場合は削除します)、コードを貼り付けます。

search domain.name
nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 1.0.0.1

最初の行では、ルーターのIPアドレスを使用することもできます。このアドレスを使用すると(nameserver 192.168.43.1私の場合)、同じネットワーク上の他のシステムでpingが可能になります。このような解析を生成するのは良い考えではありませんが、NetworkManagerの自動生成解析に問題があります。 Systemd-resolvdは私のコンピュータでもエラーを生成します。

ちょっと変です。ここでは、GoogleのネイティブDNSとCloudflareのネイティブDNSを使用します。 8.8.8.8 を 8.8.4.4 で使用することも、1.1.1.1 を 1.0.0.1 で使用することもできます。


この手順が機能しても、NetworkManagerが再起動したときにファイルを上書きしないようにすることができます。

このエントリを次に追加してください。/etc/NetworkManager/NetworkManager.conf

[main]
dns=none
systemd-resolved=false

彼らはRaspberry Pi 3モデルBにインストールするために働いた。これがあなたにも効果があることを願っています。

答え2

ちょうど同じ効果で問題が発生しました。時間設定が正しいことを確認してください。 DNSSECはデフォルトで有効になっているように見え、「期限切れ」の証明書が原因で要求をブロックします。

これに関連する他の問題は、以下を介して診断できますjournalctl -u systemd-resolved -b -0

答え3

Arch Linuxを実行しているRaspberry Pi 4でこの問題が発生しました。

症状は、DNSがないためにpingエラーメッセージが表示されることです。

date2日前頃に電話して時間が真剣に間違っていたことを知りました。

私は確信しています時刻同期作業中ですが、systemctl status systemd-timesyncd出力でtimedatectl timesync-statusサービスにNTPサーバーのIPアドレスがないことがわかりました(と表示されますServer: Null)。

使用jaku255のヒント確認の結果、journalctl -u systemd-resolved -b -0DNS エラーが原因で時刻同期が機能しないことがわかりました。

ntp.org IN DSの問題によりDNSSEC検証に失敗しました:署名が期限切れです。

ちょっとしたデッドロックです。時間が間違っているため、DNSが機能せず、DNSが機能していないため、時間が間違っています。

時間を手動で設定しようとして発行されました。

timedatectl set-time "2020-02-29 10:51:55"

ただし、これによりエラーが発生しました。

時刻設定に失敗しました:自動時刻同期が有効になっています。

この問題を解決するために一時的に(ㅎㅎㅎ^^)時間同期を消しました。

timedatectl set-ntp 0

その後、もう一度呼び出すとtimedatectl set-time今回は成功します。

その後、時刻同期を再度有効にして、正常に動作していることをtimedatectl set-ntp 1確認しました。timedatectl timesync-status

サーバー: 212.69.166.153 (0.arch.pool.ntp.org)

また、DNSが正常に動作していますpingcurl

答え4

この問題は、Arch Linux Arm と Raspberry Pi 4 で引き続き発生します。 NetworkManagerの代わりにsystemd-networkdを使用するため、上記の回避策の1つは適用されません。私のNTPシステム時間も正しく同期されます。 DNSSECはデフォルトで無効になっています。

私の場合、WANホスト名は解決されましたが、LANホスト名は解決されず、同じName or service not knownエラーが発生しました。

私の解決策は、次を編集してLLMNRの代わりにクラシックDNSを使用することでした/etc/systemd/resolved.conf

[Resolve]
...
LLMNR=no
...
ResolveUnicastSingleLabel=yes

変更を適用するには、サービスを再起動してください。

sudo systemctl restart systemd-networkd
sudo systemctl restart systemd-resolved

関連情報