Ubuntu 如何知道我是否已连接到互联网?它似乎知道,因为它会在我连接或断开连接时显示通知(或者是网络管理器而不是操作系统?)
后台同步服务如何知道我何时连接以及何时同步数据?
操作系统是否有指示器(类似于:我们在线,同步或做任何你想做的事情)或者是否由各个程序在每个时间段尝试检查连接?
有没有类似的东西Windows 连接状态指示器在哪里Microsoft 检测 Internet 连接(而不仅仅是任何网络连接)?
我之所以问这个问题,是因为有时我通过sakis3g脚本使用 USB 调制解调器,并且当我这样做时,网络管理器状态为离线。所以我想知道后台服务是否知道我是否已连接(或者我必须自己告诉他们)...
答案1
Ubuntu 如何知道我是否已连接到互联网?
它不知道这一点。它只知道本地接口配置和 IP 路由表。它们是否工作不是操作系统要跟踪的事情。应用程序会自己发现这一点。例如,Web 浏览器会在请求时超时。
为什么这不是操作系统的任务?连接可能因安全原因而受到限制,例如使用代理。
它似乎知道,因为它会在我连接或断开连接时显示通知
不,它报告的只是您接口的本地连接状态。一旦 IP 配置完成(静态或 DHCP),它就会显示已连接。与互联网的连接由您网络中的网关负责。
后台同步服务如何知道我何时连接以及何时同步数据?
他们必须自己解决这个问题。
是否存在类似于 Windows 连接状态指示器的东西,其中 Microsoft 检测 Internet 连接(而不仅仅是任何网络连接)?
不。Ubuntu 不会向外界发出任何呼叫来检查真实的互联网连接。
答案2
嗯,您无法连接到互联网。您只能连接到互联网上的特定计算机。因此,一个更明智的问题是:是否有某个进程跟踪互联网上的特定机器是否可以访问?
操作系统和各种客户端配置实用程序维护有关本地和局域网配置的信息,可能包括网关的地址。各种客户端进程会定期尝试访问互联网上的特定机器。
如果您想知道是否可以访问互联网上的任意机器,那么您可以执行以下操作ping 8.8.8.8
。