大多数传出连接被阻止(种类?)

我有一台服务器,我从Ubuntu 12.04升级到14.04。 现在我有一些非常奇怪的行为(我认为升级后不立即出现,但不能确定):我不能(通过主机名或IP)ping,ssh,nslookup,curl或telnet任何东西,甚至一个地址在路由器的NAT后面。 我甚至无法ping通网关,我知道接受Ping是因为我从一个物理上在同一个networking上的盒子中ping它。

但是这里有一个奇怪的部分:这个盒子在我的世界的另一边,我仍然可以嘲笑它。 甚至是怪物? 我有ipsec和xl2tpd运行,以便我可以VPN中。这也正常工作。 最怪异的? 如果我把vpn上的httpstream量路由到我的电脑上,我可以浏览互联网。 是的,我已经closures了这两个服务,并没有解决问题。

目前我所有的防火墙规则都被禁用:

$ sudo ufw status Status: inactive 

和iptables:

 $ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 

我的路线看起来不错(192.168.0.1是正确的网关):

 $ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 

并没有错ifconfig(IP是正确的,DHCP分配):

 eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::5246:5dff:fe53:975d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12600 errors:0 dropped:0 overruns:0 frame:0 TX packets:13748 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2727272 (2.7 MB) TX bytes:11775785 (11.7 MB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:350 errors:0 dropped:0 overruns:0 frame:0 TX packets:350 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:33067 (33.0 KB) TX bytes:33067 (33.0 KB) 

我真的没有想到这个。 谁能告诉我这可能是怎么回事? 或者我可以检查的其他东西? syslog和dmesg也不会产生线索。

编辑:这是什么断开看起来像:

NSLOOKUP:

 $ nslookup google.com ;; connection timed out; no servers could be reached $ 

平:

 $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. <... hangs forever> ^C --- 8.8.8.8 ping statistics --- 195 packets transmitted, 0 received, 100% packet loss, time 195553ms $ 

ping网关:

 $ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. <... hangs forever> ^C --- 192.168.0.1 ping statistics --- 47 packets transmitted, 0 received, 100% packet loss, time 46361ms $ 

curl为stackoverflow.com:

 $ curl 198.252.206.16 <... hangs forever> ^C $ 

感谢HrvojeŠpoljar在上面的评论,我有一个解决scheme。 原来,按照本指南 ,我在我的rc.local中有以下命令:

 iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth+ 

但%SERVERIP%是错误的IP地址。 所以我在我的iptables中有错误的规则。 不幸的是,ubuntu上ufw“保护”你看到这些更高级的规则,你可以看到我在上面的iptables输出。 另一方面,如果您运行iptables-save命令,则会得到以下结果:

 # Generated by iptables-save v1.4.21 on Fri Nov 14 21:19:16 2014 *nat :PREROUTING ACCEPT [318:73010] :INPUT ACCEPT [64:6615] :OUTPUT ACCEPT [100:7122] :POSTROUTING ACCEPT [48:2941] -A POSTROUTING -s XX.XX.XX.XX/24 -o eth0 -j MASQUERADE -A POSTROUTING -o eth+ -j SNAT --to-source YY.YY.YY.YY -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Fri Nov 14 21:19:16 2014 

YY.YY.YY.YY是不正确的IP地址。 解决方法是删除此规则

 iptables -t nat -D POSTROUTING -o eth+ -j SNAT --to-source YY.YY.YY.YY 

并使用更多的DHCP友好:

 iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

10.1.1.0/24是VPN客户端给定的IP地址范围。