Rad*_*dek 14 command-line networking opensuse
在 SuSE 服务器完成启动过程后,我想向自己发出咆哮。我收到了这条消息socket_sendto(): unable to write to socket [101]: Network is unreachable in。
如何从命令行检查网络是否可访问并等待,以防万一?
Sha*_*dur 14
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
Run Code Online (Sandbox Code Playgroud)
这表明您的本地网络是一个eth0带有地址的以太网连接 ( ) 192.168.15.0,并且可以在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
Run Code Online (Sandbox Code Playgroud)
如果您看到与上述类似的内容,则您自己的本地网络至少还不错。在这一点上,您可以开始使用更高级的工具traceroute来查看与目标的连接可能失败的地方。
然而,在快速谷歌检查growl实际应该是什么之后,我觉得还有其他问题。您能否扩展您的问题,为我们提供更多有关您尝试做什么、如何尝试以及完整错误输出的详细信息?你现在给我们的线路突然被切断了......
一个非常简单快捷的方法是使用ping命令。
你可以简单地输入
$ ping yahoo.com
Run Code Online (Sandbox Code Playgroud)
(或 cnn.com 或任何其他主机)并查看您是否收到任何输出。这假设可以解析主机名(即 dns 正在工作)。如果没有,您可以提供远程系统的有效 IP 地址/号码,看看是否可以访问。
这是ping 手册页。
更新:
作为一个简单的例子,您可以检查返回值(例如,使用"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
Run Code Online (Sandbox Code Playgroud)
我会使用netcat所需的服务。
例如测试IP端口,成功
> nc -zv 192.168.1.1 80
Connection to 172.26.0.1 80 port [tcp/http] succeeded!
Run Code Online (Sandbox Code Playgroud)
...并且失败了
> nc -zv 192.168.1.1 22
netcat: connect to 172.26.0.1 port 22 (tcp) failed: Connection refused
Run Code Online (Sandbox Code Playgroud)
10秒超时
> nc -zv -w 10 10.0.0.1 80
netcat: connect to 10.0.0.1 port 80 (tcp) timed out: Operation now in progress
Run Code Online (Sandbox Code Playgroud)