裸挖无法到达服务器,否则解析有效

裸挖无法到达服务器,否则解析有效

dig通过安装pacman -S bind,启动时它挂起dig

# dig google.com

; <<>> DiG 9.16.25 <<>> google.com
;; global options: +cmd
;; connection timed out; no servers could be reached

不过,DNS 解析是有效的:

# ping google.com
PING google.com (216.58.214.174) 56(84) bytes of data.
64 bytes from mad01s26-in-f174.1e100.net (216.58.214.174): icmp_seq=1 ttl=116 time=2.76 ms
64 bytes from mad01s26-in-f14.1e100.net (216.58.214.174): icmp_seq=2 ttl=116 time=2.91 ms

# dig @192.168.10.3 google.com

; <<>> DiG 9.16.25 <<>> @192.168.10.3 google.com
(...)
;; ANSWER SECTION:
google.com.             180     IN      A       216.58.214.174

;; Query time: 0 msec
;; SERVER: 192.168.10.3#53(192.168.10.3)
;; WHEN: Sat Feb 05 21:12:14 CET 2022
;; MSG SIZE  rcvd: 55

似乎dig无法使用本地 DNS 配置 - 除了安装之外我还应该做些什么吗?

编辑:根据评论请求:

  • 我控制防火墙并且它是开放的
  • /etc/resolv.conf为空,/etc/systemd/resolved.confDNS=192.168.10.3FallbackDNS=8.8.8.8 1.1.1.1
  • dig google.com @8.8.8.8给出与上面相同的结果(由于地理定位而具有不同的 IP)
  • traceroute -p 53 -n 8.8.8.8穿过去

答案1

Arch/etc/resolv.conf没有模拟/run/systemd/resolve/resolv.confdig使用前者。

# rm /etc/resolv.conf && ln -s  /run/systemd/resolve/resolv.conf /etc/resolv.conf

解决了问题,但是这个似乎是一个错误是 Arch 故意选择的(请参阅下面的编辑)如何在 Arch 中设置分辨率(例如 Ubuntu 提供了一个/etc/resolv.conf链接)。

编辑: 作为@穆鲁评论中提到,这是有记录的在 Arch 中,建议的解决方案是

ln -rfs  /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

相关内容