Answers:
ping
外部主机的连接可能由于多种原因而失败,其中只有少数几个实际上对您自己的网络状态有用。
第一步,打开终端窗口并输入
ip route ls
您应该会看到以下输出:
shadur@equinox:~$ ip route ls
192.168.15.0/24 dev eth0 proto kernel scope link src 192.168.15.102
default via 192.168.15.1 dev eth0
这表明您的本地网络是eth0
具有该地址的以太网连接()192.168.15.0
,并且可以在处找到通过其访问Internet其余部分的默认网关192.168.15.1
。
接下来,您可以尝试访问ping
该地址:
shadur@equinox:~$ ping 192.168.15.1
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_req=1 ttl=255 time=0.352 ms
64 bytes from 192.168.15.1: icmp_req=2 ttl=255 time=0.269 ms
^C
--- 192.168.15.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.269/0.310/0.352/0.045 ms
如果您看到与上述类似的内容,则至少可以使用您自己的本地网络。此时,您可以开始使用更高级的工具,例如traceroute
查看到目标的连接可能失败的地方。
但是,在快速谷歌检查一下growl
实际应该是什么之后,我感觉到还有其他问题。您能否扩展您的问题,以便向我们提供更多有关您正在尝试执行的操作,如何进行尝试以及完整的错误输出的详细信息?您当前提供给我们的线路突然中断...
ip route get 1.2.3.4
比做更可靠ip route ls
。前者将使除路线外所有已制定的规则生效。这也消除了误读路由表的可能性。
一种非常简单快捷的方法是使用ping
命令。
您只需键入
$ ping yahoo.com
(或cnn.com或任何其他主机),然后查看是否返回了任何输出。假设主机名可以解析(即dns正在工作)。如果没有,您可以希望提供一个有效的远程系统IP地址/号码,并查看是否可以访问。
这是ping手册页。
更新:
举个简单的例子,您可以检查from 的返回值(例如使用"echo $?"
),ping
以查看命令是否成功(可以始终将命令的输出通过管道传递给> /dev/nul
)。注意我-c 1
在这里使用,但是您可以使用更多。
$ ping -c 1 yahoo.com
PING yahoo.com (72.30.38.140) 56(84) bytes of data.
64 bytes from ir1.fp.vip.sp2.yahoo.com (72.30.38.140): icmp_seq=1 ttl=52 time=83.5 ms
--- yahoo.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 83.593/83.593/83.593/0.000 ms
echo $?
0
$ ping -c 1 unicorns.are.here
ping: unknown host unicorns.are.here
$ echo $?
2
ping -c 2 -n <other host's IP>
,对返回代码运行并操作:如果为true(0),则它具有连接性;如果为假(1),则无法与该计算机通信。
mtr是一种类似于ping的工具,但可以为您提供更多信息,例如丢包,有关包传输时间的统计信息等。
ping -c 1 www.yourtrustedserver.com | grep " 0% packet loss"
。这样做是用一个数据包对服务器执行ping操作,并获取字符串“ 0%packet loss”的输出。(0%之前的空格很重要)如果命令返回一行,则说明您已连接,否则未连接。