检测互联网连接

检测互联网连接

在 Windows 上,如果由于某种原因没有互联网连接,并且网络连接完全正常,则通知区域中的网络图标上会显示一个小图标。有没有办法在 Ubuntu 上做同样的事情?

即使那不是必需的,我只是想知道有什么方法可以查找互联网连接是否丢失。

无法 pingX网站,我遇到过一些 DNS 中断的情况,ping 失败可能是由于 DNS 停机而不是互联网连接造成的。

更新

感谢所有这些有趣的答案。我问这个问题的实际目的是想知道是否有一种方法可以知道我在本地级别的连接状态(机器和 AP 之间的连接),这就是为什么我说无法 pingX网站请。Alain 提到的 LAN 私有地址非常接近。如果我能诊断出这一点,我就可以排除 AP/网络问题,然后继续诊断与我的 ISP 的实际连接。

答案1

该命令ip link show显示可用接口的状态。至少有一个接口需要列为 UP,这样您才能建立任何连接。

该命令ip neigh show显示本地链接状态,如下所示:

192.168.0.1 dev eth0 lladdr 00:15:e9:ec:cc:80 REACHABLE

您至少需要一个 REACHABLE 才能访问网络。

该命令ip addr show显示所有接口及其 IP 地址。

一旦您有了本地 IP 地址和邻居的 IP 地址,您就可以使用 ping 或其他工具来验证本地 IP 连接。

答案2

我认为您要找的简短答案是命令dig,但让我告诉您我使用的所有命令,仅供参考。我的经验是使用我的计算机、无线路由器和有线调制解调器调试简单的家庭网络设置。

首先我从 开始dig website,进行 DNS 查找。

LAN 和 DHCP 如果 dig 超时,那么我可能没有正确连接到 LAN。对于有线连接,我只需检查调制解调器上的闪烁指示灯。我不知道有什么命令可以检查这一点。对于无线连接,我使用iwconfig并检查 ESSID 值,确保它已设置为我的网络。

检查完硬件部分后,检查 LAN 连接的另一件事是 DHCP。我检查ifconfig(类似于 Windows ipconfig)是否有 IP 地址。eth0 是有线连接,wlan0 是无线连接。查看第二行标有“inet addr”的值。这就是 IP 地址。如果 IP 地址为 192.168.xx 或 10.0.xx,则表示我已连接到 LAN,并且我从路由器获取 IP 地址。

DNS 和 Internet 如果 dig 返回了响应,但内容为空,那么我可能已连接到无线路由器(即 LAN),但我的互联网连接(即调制解调器)存在问题。我将登录路由器的 Web 界面并尝试在那里调试问题。或者,我将直接将计算机插入调制解调器,然后重新检查上述命令(dig 和 ifconfig。注意,IP 地址不应如上所述)

已连接但仍无法工作 最后,如果 dig 返回至少一个 ip 地址(大多数小型网站只有一个 ip,而像 google 这样的大型网站有多个 ip),那么我认为我至少是连接的,DNS 正在运行。问题一定存在于互联网的某个地方。

然后我将使用mtr website更全面的 ping。Mtr 与 Windows tracert 命令相同;它会 ping 网站以及所有中间节点,并以实时可视方式显示在终端上,从而向我展示我在互联网上遇到问题的位置。

希望有用!

答案3

我使用一个名为 wmnetmon 的小实用程序(在存储库中)。它对 CPU 友好且可高度自定义。它占用的屏幕空间非常小,或者您可以使用 Swallower Meta-Applet 将其停靠到面板上。设置它看起来可能很费劲,但其实并不难。我在最后附上了我的配置,以便您入门。我的设置监视我的 LAN 和 Internet 连接。我使用的是 10.04,不确定它是否适用于 11.04。

网络监控
在面板或桌面上

描述 - 一个 dockapp,它将为每个受监控的服务显示一个 LED。绿色 LED 表示服务已启动并正在运行,而红色 LED 闪烁则表示服务未正确响应。

选项

wmnetmon [-d] [-t] [-y] [-r] [-c] [-h]

-h 显示选项摘要。

-d 打开调试模式

-c 使用指定的配置文件代替$HOME/.wmnetmonrc

-t :指定轮询时间(以秒为单位)。默认值为 30 秒

-y :指定在打开黄色 LED 之前等待回复的时间。默认值为 60 秒

-r :与上文相同,表示红色(闪烁)LED。默认值为 200 秒。

编辑 .wmnetmonrc(在用户目录中)并启动 wmnetmon。如果主机/服务有响应,则 LED 将短暂变为绿色,如果主机/服务没有响应,则 LED 将关闭或开始闪烁红色。您可以指定它是闪烁还是关闭。在前一种情况下,如果您在 rc 文件中配置了命令,则会执行该命令。这对于播放声音非常有用。每当您指向某个特定的 LED 时,相应的描述就会出现在应用程序的顶部。如果您右键单击它,主机/服务将静音,并且当该特定系统发生故障时不会执行任何命令。您还可以在 rc 文件中对其进行配置,以在静音时停止监控它。如果这样做,LED 将关闭,否则它将变成紫色或蓝色,通知您系统是否正在运行。

我的启动选项设置为(根据需要编辑).......

wmnetmon -t 10 -y 2 -r 2

我的配置(根据需要编辑).........

# WMNetMonrc for Version 0.1c/d
#
# Please change this file and copy it to your home directory and name it
# .wmnetmonrc
#
#
# D line
# Format - D:[w|d][i|m]
# Example - D:dm
#  - This line specifies the default behaviour of wmnetmonrc
#    The flags are:
#
#    w -> Warn when hosts/services stop responding. This is the default
#         behaviour. The led will turn red and flash, and (if specified)
#         an  external command will be executed.
#
#    d -> Don't warn. Led will be off if host/service stops responding.
#
#    i -> Ignore host/service (stop monitoring it) when muted. The led 
#         will be blue.
#
#    m -> Mute host/service (don't execute external program) but keep on
#         monitoring it. The led will be blue if the host/service 
#         responds or purple if it does not. This is the default.
#
D:dm
#
#
# P Line
# Format: P:[<path>]<command> [<args>]
# Example: P:/usr/bin/play
#  - This line specifies the program that will be run on special events.
#    * ONE LAST PARAMETER will be passed on to this program according to
#    event type, and will be specified in other configuration lines.
#
# P:/usr/bin/play
#
# S Line
# Format: S:<argument>
# Example: S:Siren.wav
#  - This is the argument will be passed to the program specified when 
#    hosts/services stop responding. 
#
# S:Siren.wav
#
#
# H Line
# Format: H:[tcp|udp/<servicename/portnumber>@]<host_ip_or_fqdn>:<hostname>[:flags]
# Examples: H:127.0.0.1:localhost:id
#           H:tcp/[email protected]:sendmain on localhost:w
#           H:udp/[email protected]:quake time
#       H:foo.bar.net:foobar
#
#
#  - This is the most important line. Just add the hosts/services you 
#    want to monitor. The flags are the same as for D line.
H:192.168.0.1:dsl:wi
H:192.168.10.1:router:wi
H:192.168.10.2:test:
H:192.168.10.100:localhost:
H:192.168.10.111:dave:wi
H:192.168.10.112:family:wi
H:192.168.10.113:media1:wi
H:192.168.10.114:media2:wi
H:192.168.10.115:n770a:wi
H:192.168.10.116:n770b:wi
H:192.168.10.117:localhost:
H:192.168.10.118:localhost:
H:192.168.10.119:localhost:
H:192.168.10.120:localhost:
H:8.8.8.8:google:wi
H:8.8.4.4:google:wi
#
# end

答案4

我知道“请不要 ping x 网站”这个观察,以及“有什么方法”这个问题。但是如果我们不测试互联网,我们怎么知道它是否可用呢?(我知道这就是问题所在)。好吧,这是一种方法,我会尽快添加其他方法(如果可以的话)。

我们可以编写一个脚本,在终端上显示互联网连接状态,ping 一些可靠的服务器。我需要研究如何将其设为面板通知。

剧本:

/bin/bash #!/bin/bash
#
# 此脚本将检查您是否
# 可以访问互联网
#
# 作者 desgua
#
#######################################
当 [ “$var1” != “结束” ]
ping时间=$(ping -w 1 8.8.8.8 | grep ttl)
如果 [ “$pingtime” = “” ]
然后
   pingtimetwo = $(ping -w 1 74.125.91.105 | grep ttl)
   如果 [ “$pingtimetwo” = “” ]
   然后
       清除;回显“down”
   别的
       清除;回显“up”
别的
    清除;回显“up”
睡眠2
完毕

相关内容