dnsmasq
我正在尝试在 Ubuntu 18.10 上设置地址解析器。
到目前为止,我已禁用systemd-resolved
默认解析器并引入dnsmasq
。运行netstat -tulpn
显示以下内容:
> sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 31609/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 561/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4614/openvpn
tcp6 0 0 :::53 :::* LISTEN 31609/dnsmasq
tcp6 0 0 :::22 :::* LISTEN 561/sshd
udp 0 0 0.0.0.0:53 0.0.0.0:* 31609/dnsmasq
udp 0 0 XXX.XXX.XX.XX:YY 0.0.0.0:* 440/systemd-network
udp6 0 0 :::53 :::* 31609/dnsmasq
我认为到目前为止这都没问题,因为现在dnsmasq
正在监听端口 53。
我的/etc/resolv.conf
样子是这样的:
nameserver 127.0.0.1
nameserver 127.0.1.1
nameserver 127.0.0.53
我不太确定第二行,但我认为到目前为止这也应该没问题。
尽管如此,当我尝试运行dig
或ping
其他操作时,连接总是超时:
> dig askubuntu.com
; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> askubuntu.com
;; global options: +cmd
;; connection timed out; no servers could be reached
我哪里做错了,所以破坏了那些功能?
答案1
systemd-resolved
仍在运行,因为我在您的 中看到 127.0.0.53 /etc/resolv.conf
。
如果dnsmasq
正在运行,它将显示 127.0.0.1。
当你同时运行它们时,它们往往会互相踩到脚趾。
要运行dnsmsaq
,并禁用的 DNS 功能systemd-resolved
,您需要编辑/etc/systemd/resolved.conf
并...
改变:
#DNSStubListener=yes
到:
DNSStubListener=no
然后重新启动,重新检查/etc/resolv.conf
,您应该会看到 127.0.0.1。
后记:做不是手动编辑/etc/resolv.conf
。