在 Windows 中,当您通过无线连接时,它会告诉您是否可以访问互联网。在 ubuntu 中,我已经连接到路由器,但我不知道路由器是否连接到互联网?!
在 ubuntu 上如何知道路由器是否已连接到互联网
答案1
您可能正在查看 Windows 上的“网络和共享中心”,它会显示您是否有互联网,如屏幕下方所示。但这并不总是一种可靠的方法。例如,在我的大学网络上,有些计算机显示没有互联网,但我可以正常上网。
heemayl 已经提到了ping
命令,它是任何系统(Windows 或 Linux)上的基本网络测试工具,并且用于命令行;该应用程序cmd
在 Windows 和terminal
ubuntu 或任何其他 Linux 发行版以及 Mac 上可用。如果您可以ping -c4 google.com
并得到响应,则说明您已连接到互联网。
还有另一种方法,图形化,使用gnome-nettool
,这是一个将网络实用程序全部整合到图形界面中的应用程序。想法是一样的,ping 实用程序用于测试您是否有来自互联网的响应;还有 traceroute,它将显示您是否可以通过路由器 ip 地址访问互联网。
另一种方法是通过 Unity Lenses 和 Scopes。还记得当你搜索某些文件时输入 dash 时,你会得到来自亚马逊的建议吗?好吧,这意味着这些建议来自互联网,对吧?就我个人而言,我已禁用这些功能,因此无法对此进行详细说明。
但实际上,命令行工具更可靠,更好,许多 Linux 用户强烈建议你使用这些工具
答案2
在终端中运行此命令:
[[ $(ping -c4 google.com) ]] 2>~/ping_check.txt && echo "I have Internet" || echo "I don't have Internet"
例如:
$ [[ $(ping -c4 google.com) ]] 2>~/ping_check.txt && echo "I have Internet" || echo "I don't have Internet"
I have Internet
这使用基本的ping
实用程序将 ICMP ECHO_REQUEST 数据包发送到远程主机并从远程主机获取 ECHO_REPLY(google.com
在本例中)。如果主机处于启动状态(并且两端的防火墙都允许 ICMP),您将从远程主机收到响应,否则不会。
这行代码还有一个额外的好处,错误信息(STDERR)将被保存在你的主目录中的一个文件中~/ping_check.txt
。如果你没有网络,那么你可以检查文件内容并了解原因。
编辑:命令解释:
该命令分为三部分:
[[ $(ping -c4 google.com) ]] 2>~/ping_check.txt
将 ping“google.com”4 次,2>~/ping_check.txt
并将命令中的任何错误消息保存在文件中,~/ping_check.txt
以便您稍后检查是否存在潜在问题。由于我们只关心命令的成功或失败,因此ping -c4 google.com
我们将其放在 bash 关键字中[[]]
,这样$? = 0
如果命令成功,它将返回 true,$? != 0
如果命令失败,它将返回 false。然后我们有相当简单的命令,只有前一个命令返回成功时它
echo "I have Internet"
才会打印,这是由确保的。表示只有前一个命令()成功时才会运行下一个命令。I have Internet
&&
&&
ping
下一部分
echo "I don't have Internet"
后面有||
.||
表示仅当前一个命令成功时才会运行下一个命令($? != 0
)。 因此,仅当命令返回失败I don't have Internet
时才会打印。ping