我有一个Ubuntu
Linux 12.04.1服务器,作为一个服务运行bind9用于xxx.local域的名称解析,它将所有其他请求转发到我的Internet提供商的名称服务器.
这适用于网络中的所有客户端(Windows和Linux),它们可以按预期获得名称解析.
直到昨天,服务器本身也是如此.但我更新了几个包并重新启动它.一切都很好,所以我回家了.今天早上,代理和电子邮件不再有效.事实证明,名称解析是罪魁祸首.客户端上的nslookup仍然正常,但在服务器上它总是超时:
nslookup google.com connection timed out; no servers could be reached nslookup google.com 127.0.0.1 ;; connection timed out; no servers could be reached nslookup google.com 192.168.115.250 ;; connection timed out; no servers could be reached
(其中192.168.115.250是服务器本身的IP地址)
在不同的Linux计算机上它可以工作:
nslookup google.com Server: 192.168.115.250 Address: 192.168.115.250#53 Non-authoritative answer: Name: google.com Address: ....
在Windows XP计算机上,它看起来像这样:
nslookup google.com *** Der Servername für die Adresse 192.168.115.250 konnte nicht gefunden werden: Non-existent domain *** Die Standardserver sind nicht verfügbar. Server: UnKnown Address: 192.168.115.250 Nicht autorisierte Antwort: Name: google.com Address: ...
(错误意味着“无法找到地址的服务器名称… …这可能意味着反向查找不起作用.我以前从未见过那个.”
如果我在我的服务器上指定了我的Internet提供商的名称服务器之一,它可以工作:
nslookup google.com [IP goes here] Server: [IP goes here] Address: [IP goes here]#53 Non-authoritative answer: Name: google.com Address: ....
我无法弄清楚这里可能出现的问题.由于一切正常,直到昨天,它必须与最新的Ubuntu更新或重新启动有关.
任何提示将不胜感激.
更新:
防火墙不应该是问题:
sudo iptables -L -v -n Chain INPUT (policy ACCEPT 16M packets,6138M bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets,0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 13M packets,50G bytes) pkts bytes target prot opt in out source destination
UPDATE2:
由于人们不断要求resolv.conf,我想指出,在上面的nslookup调用中指定名称服务器的IP地址不起作用.但无论如何:
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 192.168.115.250
(如果我将该IP更改为我的Internet提供商的名称服务器,它可以工作,但这不是解决方案.)
UPDATE3:
netstat -anp | egrep :53 tcp 0 0 192.168.115.250:53 0.0.0.0:* LISTEN 104414/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 104414/named tcp6 0 0 :::53 :::* LISTEN 104414/named udp 0 0 192.168.115.250:53168 5.9.122.148:123 ESTABLISHED 106273/ntpd udp 0 0 192.168.115.25:53 0.0.0.0:* 104414/named udp 0 0 127.0.0.1:53 0.0.0.0:* 104414/named udp6 0 0 :::53 :::* 104414/named
看起来很好.
UPDATE4:
ip route show table local local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 broadcast 192.168.115.0 dev eth0 proto kernel scope link src 192.168.115.250 local 192.168.115.250 dev eth0 proto kernel scope host src 192.168.115.250 broadcast 192.168.115.255 dev eth0 proto kernel scope link src 192.168.115.250
我不知道如何解释这一点.
UPDATE5:
我刚刚发现了另一个奇怪之处:它不只是命名不起作用而且还有smtpd:
fetchmail: reading message [...] Trying to connect to 127.0.0.1/25...connection Failed. fetchmail: connection to localhost:smtp [127.0.0.1/25] Failed: Connection timed out. fetchmail: Connection errors for this poll: name 0: connection to localhost:smtp [127.0.0.1/25] Failed: Connection timed out. fetchmail: SMTP connect to localhost Failed
找到它:无论出于何种原因,环回接口都没有出现:
ifconfig eth0 Link encap:Ethernet HWaddr 00:1e:67:6e:cd:3b inet addr:192.168.115.250 Bcast:192.168.115.255 Mask:255.255.255.0 inet6 addr: fe80::21e:67ff:fe6e:cd3b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:58326791 errors:0 dropped:4 overruns:0 frame:0 TX packets:109062010 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:21089630035 (21.0 GB) TX bytes:131207523503 (131.2 GB) Interrupt:19 Memory:c1c00000-c1c20000
请注意,这里没有“lo”.
从……开始
ifup -v lo
……解决了问题.
感谢所有试图帮助的人,特别是synneticon-dj.