我似乎无法 ping 或 ssh 到外部域。内部 IP 地址工作正常。它解析 IP 地址,所以我认为不是 DNS。本地主机似乎以某种方式拦截了我的请求。Curl 工作正常。这是 ubuntu 服务器 10.4。我的内部 IP 是 192.168.1.14。
编辑:我停止了 ufw viastop ufw
并在下面添加了一些更多信息。
matt@valkyrie:~$ ping google.com
PING google.com (173.194.33.104) 56(84) bytes of data.
From valkyrie (192.168.1.14) icmp_seq=1 Destination Port Unreachable
From valkyrie (192.168.1.14) icmp_seq=2 Destination Port Unreachable
From valkyrie (192.168.1.14) icmp_seq=3 Destination Port Unreachable
From valkyrie (192.168.1.14) icmp_seq=4 Destination Port Unreachable
From valkyrie (192.168.1.14) icmp_seq=5 Destination Port Unreachable
From valkyrie (192.168.1.14) icmp_seq=6 Destination Port Unreachable
^C
--- google.com ping statistics ---
6 packets transmitted, 0 received, +6 errors, 100% packet loss, time 4999ms
默认路由
root@valkyrie:/etc/nagios3# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
跟踪路由
root@valkyrie:/etc/nagios3# traceroute google.com
traceroute to google.com (173.194.33.104), 30 hops max, 60 byte packets
1 valkyrie (192.168.1.14) 0.409 ms 0.459 ms 0.481 ms
iptables
root@valkyrie:/etc/nagios3# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
blockcontrol_in all -- anywhere anywhere state NEW mark match !0x14
Chain FORWARD (policy ACCEPT)
target prot opt source destination
blockcontrol_fw all -- anywhere anywhere state NEW mark match !0x14
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
blockcontrol_out all -- anywhere anywhere state NEW mark match !0x14
Chain blockcontrol_fw (1 references)
target prot opt source destination
DROP all -- anywhere anywhere mark match 0xa
RETURN all -- anywhere arbiter
RETURN all -- 192.168.1.0/24 192.168.1.0/24
NFQUEUE all -- anywhere anywhere NFQUEUE num 92
Chain blockcontrol_in (1 references)
target prot opt source destination
DROP all -- anywhere anywhere mark match 0xa
RETURN all -- anywhere anywhere
RETURN all -- 192.168.1.0/24 anywhere
NFQUEUE all -- anywhere anywhere NFQUEUE num 92
Chain blockcontrol_out (1 references)
target prot opt source destination
REJECT all -- anywhere anywhere mark match 0xa reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
RETURN all -- anywhere arbiter
RETURN all -- anywhere 192.168.1.0/24
RETURN tcp -- anywhere anywhere tcp dpt:https
RETURN tcp -- anywhere anywhere tcp dpt:www
NFQUEUE all -- anywhere anywhere NFQUEUE num 92
答案1
你能 curl google 吗?如果可以,那么很可能 PING 或 ICMP 被阻止了。通过尝试对 google.com 进行跟踪路由来确定是哪种情况traceroute google.com
,看看是否也失败了。然后检查你的软件防火墙 - 如果你有 iptables,请尝试iptables -L
粘贴输出,尽管 Ubuntu 可能默认带有不同的防火墙。如果没有,请联系你的托管服务提供商或 ISP,询问他们是否阻止了 ICMP 出站。
答案2
某个地方配置错误,可能是在服务器或路由器上,因为 ICMP 不使用端口,但您的 ping 响应指示“端口无法访问”。您可以在服务器上运行数据包捕获并再次 ping,然后查看响应返回的 ICMP 代码以确定发生了什么。如果实际上是代码 3(端口无法访问),那么某个地方一定有问题。
我几乎认为这是一个路由循环,但它通常会生成“TTL 传输中已过期”响应。
答案3
您和您的 ISP 之间可能有防火墙阻止了 ICMP 通信,或者您的 ISP 遇到了问题。
答案4
这个问题很老了,但我刚刚在 Ubuntu 上遇到了同样的问题。
为了修复,请允许通过 UDP 传出端口范围为 33434 至 33523。
您很可能在 Ubuntu 上使用 ufw 作为防火墙,因为它是标准配置,在 ufw 上打开这些端口的命令是:
sudo ufw insert 1 allow out 33434:33523/udp
然后您应该能够运行不带任何标志的普通 traceroute 命令,例如:
traceroute yahoo.com
如果命令运行时没有显示错误,但只显示空响应或每个响应都有一个星号,则您可能需要在运行 traceroute 时禁用 VPN
此外,如果您使用的是 IPv6,并且 traceroute 命令显示 IPv6 地址以及错误消息,您可以尝试强制它使用 IPv4,命令标志“-4”输入如下:
traceroute -4 yahoo.com