我正在尝试更新我的 ubuntu 14.04 服务器,但是我遇到了一些困难,因为它似乎无法访问 DNS 服务器。
因此:
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=2.46 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=2.58 ms
$ ping google.com
ping: unknown host google.com
$ nslookup www.google.com
;; connection timed out; no servers could be reached
因为这是一个服务器,所以我没有使用网络管理器,并且:
$ cat /etc/network/interfaces | grep -v "#"
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
dns-nameservers 8.8.8.8 8.8.8.9
$ cat /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 109.74.194.20
nameserver 109.74.192.20
nameserver 109.74.193.20
search members.linode.com
我最近在服务器上安装了 pritunl 以将其用作 VPN 服务器,这可能与此有关。
$ sudo iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- localhost anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:<pritunl web port>
ACCEPT tcp -- anywhere anywhere tcp dpt:<pritunl vpn port>
ACCEPT icmp -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我没有 dnsmasq
$ ps -ef | grep dns
user 5125 3813 0 11:20 pts/0 00:00:00 grep --color=auto dns
我该怎么做才能让服务器恢复运行?
谢谢,
答案1
我该怎么做才能让服务器恢复运行?
您的防火墙规则过于严格,它们会禁止对您自己查询的正确回复。添加此内容,
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
这应该允许离开您的系统的 DNS 查询得到答复。
严格来说,要使 DNS 正常工作,您只需要允许在端口 UDP53 上回复,但您发起的所有对话仍然不会收到任何回复。因此,这条更广泛的规则允许回复 DNS 查询和回复 http 页面请求。