AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 518266
Accepted
S.Goswami
S.Goswami
Asked: 2019-05-11 07:52:04 +0800 CST2019-05-11 07:52:04 +0800 CST 2019-05-11 07:52:04 +0800 CST

ping 显示“名称或服务未知”

  • 772

我在树莓派上运行 Arch Linux。

突然:

  1. 我无法 ping 到某个网站。
  2. 我无法从浏览器访问网站。

我还有两台计算机(都运行 Arch Linux)连接到 Internet,我可以在其中 ping 和使用 Internet。此外,/etc/resolv.conf在其他计算机上是相同的:

nameserver 10.230.252.252
nameserver 203.147.88.2
nameserver 8.8.8.8
search domain.name

我可以使用 VNC。我也可以 ping 到 8.8.8.8。当尝试在 Chromium 上访问 DuckDuckGo 时,我得到:

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

我有一个有效的 Internet 连接。怎么了?

arch-linux dns
  • 5 5 个回答
  • 123796 Views

5 个回答

  • Voted
  1. Best Answer
    S.Goswami
    2019-08-04T22:17:03+08:002019-08-04T22:17:03+08:00

    虽然我的另一台 x86_64 PC 都运行 Arch Linux 从来没有遇到过问题,但到目前为止,在运行 NetworkManager 时,这经常发生在 Arch Linux ARM 上。

    问题就好像你连上了wifi,但是你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 的自动生成解析时遇到了麻烦。即使在我的 PC 上,Systemd-resolvd 也会生成错误的。

    有点奇怪,这里我用的是google的primary dns和cloudflare的primary 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 上的安装工作。希望这对你也有用。

    • 32
  2. jaku255
    2019-05-25T04:47:11+08:002019-05-25T04:47:11+08:00

    我刚刚遇到了相同效果的问题。检查时间是否设置正确。DNSSEC 似乎默认启用并由于“过期”证书而阻止请求。

    与此相关的其他一些问题可以用journalctl -u systemd-resolved -b -0.

    • 6
  3. Matthias Braun
    2020-03-01T02:21:19+08:002020-03-01T02:21:19+08:00

    我在运行 Arch Linux 的 Raspberry Pi 4 上遇到了这个问题。

    症状是没有 DNS,产生ping错误消息。

    我通过打电话观察到date时间严重关闭,大约在过去两天。

    我确保时间同步已开启,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

    • 5
  4. Nik
    2021-04-17T08:40:03+08:002021-04-17T08:40:03+08:00

    想在 Goswami 的解决方案列表中再添加一个。

    在我的运行 Debian 10 的小型便携式服务器上,我面临着 DNSSEC 和 NTP 之间的鸡与蛋的问题。有时它们会在很长一段时间内保持断电状态并且实际上失去了时间感,而周围的世界正在发生变化,所以我不能只是创建静态修补程序配置。同时,他们必须在通电时自行上网,因为我没有物理访问权限。我决定首先通过更正时间来打破循环,到目前为止,这种方法似乎足够可靠。


    解决方案 4

    获取可靠且值得信赖的NTP 服务器的可靠IP 地址列表。让我们使用这个,例如:https ://tf.nist.gov/tf-cgi/servers.cgi 。以下是那里的一些样本:

    time-a-g.nist.gov       129.6.15.28
    time-b-g.nist.gov       129.6.15.29
    time-c-g.nist.gov       129.6.15.30
    ...
    time-a-wwv.nist.gov     132.163.97.1
    time-b-wwv.nist.gov     132.163.97.2
    time-c-wwv.nist.gov     132.163.97.3
    time-d-wwv.nist.gov     132.163.97.4
    ...
    

    由于我chronyd用于时间同步,我只是将这些 IP 地址添加到其配置中:(注意:这也适用于ntpd配置,通常在 中找到/etc/ntp.conf)

    nano /etc/chrony/chrony.conf
    

    添加行:

    ...
    pool time.nist.gov
    server 132.163.97.1
    server 132.163.97.2
    server 132.163.97.3
    server 132.163.97.4
    ...
    

    现在,chrony 会遍历所有指定的地址,直到它能够连接并获取时间。从那时起,其他一切都开始正常工作。

    我的大型机上有一个脚本,它会定期检查列表中的所有 IP 是否都处于活动状态,并通知它们中的任何一个是否脱机,因此我可以在必要时更新远程配置,而服务器处于联机状态并且并非所有 NTP 服务器都已过期。

    可能最好的做法是为两端(DNS 和 NTP)设置备用配置。

    • 1
  5. Stephan
    2021-09-22T22:24:28+08:002021-09-22T22:24:28+08:00

    这个问题在 Arch Linux Arm 和 Raspberry Pi 4 上仍然继续发生。我使用 systemd-networkd 而不是 NetworkManager,因此上述解决方案之一不适用。我的 NTP 系统时间也正确同步。默认情况下禁用 DNSSEC。

    就我而言,WAN 主机名正在解析,但 LAN 主机名没有,我遇到了同样的Name or service not known错误。

    我的解决方案是通过编辑使用经典 DNS 而不是 LLMNR /etc/systemd/resolved.conf:

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

    重新启动服务以应用更改:

    sudo systemctl restart systemd-networkd
    sudo systemctl restart systemd-resolved
    
    • 1

相关问题

  • archlinux efi netboot 内核“ip”不起作用?systemd "启动 Switch Root 失败。"

  • 如何在 Arch Linux 上设置音频,支持多个程序同时发出音频而不创建 asoundrc?

  • 为什么有时需要手动导入密钥?

  • 如何验证我使用 9.9.9.9 作为 DNS?

  • 在启动时加载设备

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve