私はRaspberry PiでArch Linuxを実行しています。
突然:
- ウェブサイトにpingを送信できません。
- ブラウザからウェブサイトにアクセスできません。
また、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 が空です。私たちは次のことを行う必要があります。
- 壊れたシンボリックリンクを削除します。
# rm /etc/resolv.conf
/etc/NetworkManager/conf.d/dns.conf
次の内容でファイルを作成します。
[main]
dns=none
main.systemd-resolved=false
- ネットワーク管理者を再起動します。
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
エラーメッセージが表示されることです。
date
2日前頃に電話して時間が真剣に間違っていたことを知りました。
私は確信しています時刻同期作業中ですが、systemctl status systemd-timesyncd
出力でtimedatectl timesync-status
サービスにNTPサーバーのIPアドレスがないことがわかりました(と表示されますServer: Null
)。
使用jaku255のヒント確認の結果、journalctl -u systemd-resolved -b -0
DNS エラーが原因で時刻同期が機能しないことがわかりました。
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が正常に動作していますping
。curl
答え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