Raspberry PiでArch Linuxを実行しています。
突然:
さらに2台のコンピューター(すべてArch Linuxを実行している)がインターネットに接続されており、pingを実行してインターネットを使用できます。また、/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
インターネットに接続しています。どうしましたか?
Arch Linuxを実行している他のx86_64 PCで問題が発生したことは一度もありませんが、Network Managerを実行している場合、これはArch Linux ARM=.
問題はwifiに接続しているようですが、pingを実行したりインターネットを使用したりすることはできませんが、ローカルネットワーク上のすべてのコンピューターにアクセスでき、リモートデスクトップ共有ソフトウェアを使用することもできます。
Pingまたはブラウザがホストを解決しようとしているときに問題が発生した可能性が高いです。私は3つの解決策を考えることができます:
これは、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に従わない場合、これで問題が解決するはずです。
上記の方法で問題が解決しない場合は、次のようにして一時的に/etc/resolv.confを入力できます。
Sudo systemctl restart systemd-resolved && Sudo systemctl stop systemd-resolved
これが機能する理由は、おそらく何かが/etc/resolv.conf
ファイルをめちゃくちゃにしているためです。上記のコマンドで内容が上書きされますが、問題の原因を確認する必要があります。
/etc/resolv.conf
を取得できない場合は、新しい/etc/resolv.conf
を作成し(空の古いリンクまたはシンボリックリンクが存在する場合は削除して)、コードを貼り付けます。
search domain.name
nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 1.0.0.1
少し奇妙ですが、ここではgoogleのプライマリDNSとcloudflareのプライマリDNSを使用しています。8.8.8.8を8.8.4.4で、または1.1.1.1を1.0.0.1で使用できます。
彼らはRaspberry Pi 3モデルBの私のインストールで機能しました。これがあなたにも機能することを願っています。
同じ効果で問題が発生しました。時刻が正しく設定されているか確認してください。 DNSSECはデフォルトで有効になっているようで、「期限切れ」の証明書が原因でリクエストをブロックしています。
これに関連する他のいくつかの問題は、journalctl -u systemd-resolved -b -0
で診断できます。
Arch Linuxを実行しているRaspberry Pi 4でこの問題が発生しました。
症状は、DNSが存在せず、ping
エラーメッセージが生成されることでした。
date
に電話したところ、2日前ほどの大幅な休業がありました。
時間同期 がsystemctl status systemd-timesyncd
でオンになっていることを確認しましたが、timedatectl timesync-status
の出力から、サービスにNTPサーバー(それはServer: Null
と言いました)。
journalctl -u systemd-resolved -b -0
をチェックする jaku255のヒント を使用すると、DNSが失敗しているため、時刻同期が機能しないことがわかりました。
DSの質問ntp.orgのDNSSEC検証が失敗しました:署名の期限切れ
これはちょっとした行き詰まりです。時刻が間違っているためにDNSが機能せず、DNSが機能しないために時刻が間違っています。
時間を手動で設定しようとして、私は発行しました
timedatectl set-time "2020-02-29 10:51:55"
しかし、これはエラーを生成しました:
時間の設定に失敗しました:自動時刻同期が有効になっています
これを修正するために、一時的に(hehe ^^)との時間同期を無効にしました
timedatectl set-ntp 0
今回も正常にtimedatectl set-time
を呼び出しました。
その後、timedatectl set-ntp 1
との時刻同期を再度アクティブにし、timedatectl timesync-status
を使用して同期が機能することを確認しました。
サーバー:212.69.166.153(0.Arch.pool.ntp.org)
また、ping
とcurl
は、DNSが正常に機能するようになりました。