我已经正确设置resolvconf
,正确设置/etc/resolv.conf
:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
我在代理后面,所以我更新了/etc/profile.d/proxy.sh
,/etc/apt/apt.conf.d/99HttpProxy
和/etc/wgetrc
。
Apt 能够解析名称,但dig
orping
不能。
# dig ftp.de.debian.org
(超时)
- 为什么 apt 能够正确解析名称?我认为 Debian 上有一个基于
/etc/resolv.conf
?的单一 DNS 解析机制。 - 为什么我的正确设置
/etc/resolv.conf
不起作用? - 我需要安装/设置其他东西才能使 DNS 正常工作吗?我假设 DNS 由系统库执行(根据解析器配置),因此无需安装额外的服务即可使 DNS 工作。
- 调整解析器配置后是否需要重新启动任何服务?
编辑
我的/etc/nsswitch.conf
是:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
答案1
如果您的网络阻止直接 HTTP 访问(因此您需要使用代理),它也可能会阻止直接 DNS 访问。您已将系统配置为访问 Google 的 DNS 服务器。如果你的网络阻止了它们,那就无法工作。
删除硬编码 DNS 服务器首选项的设置,并保留系统默认值。通常,您通过 DHCP 获取 IP 地址,DHCP 服务器会告诉您的计算机要使用哪些 DNS 服务器。
使用 HTTP 代理的程序之所以能够工作,是因为它们不发出 DNS 请求,而由代理发出请求。