测试接口连通性

One*_*nDc 5 networking ethernet

我有一个带有三个接口 eth0(以太网)、wlan0(WiFi)和 wwan0(通过 GSM 调制解调器)的树莓派

如何通过某个接口测试 Internet 连接是否可用?例如,我的 GSM(wwan0) 调制解调器是否已连接到 Internet?

如果我尝试运行 ping www.google.com - 我怎么知道正在使用什么接口?

如果存在多个接口,如何通过某个接口强制连接?

Chr*_*her 6

如何通过某个接口测试 Internet 连接是否可用?例如,我的 GSM(wwan0) 调制解调器是否已连接到 Internet?如果我尝试运行 ping www.google.com - 我怎么知道正在使用什么接口?

您可以指定接口。

ping -I $INTERFACE $DOMAIN_OR_IP_ADDRESS
Run Code Online (Sandbox Code Playgroud)

例如:

ping -I wwan0 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

使用已知 IP 地址将在排除故障时消除任何潜在的 DNS 问题。

如果存在多个接口,如何通过某个接口强制连接?

您可以设置默认路由。使用 Debian 进行静态寻址,对吗?/etc/network/interfaces用文本编辑器打开。找到所需的网络接口并添加选项gateway x.x.x.x,其中 xxxx 是网关。保存并重启网络:

/etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)

否则,我相信为此需要使用更高级的基于策略的路由。


Tyl*_*nis 5

检查您的路由表

route -n
Run Code Online (Sandbox Code Playgroud)

结果将显示接口配置为接收/传输的优先顺序以及这些操作采用的地址。顶部的路线是使用武力的路线。同一接口的两条规则意味着最上面的就是使用的。

在查看iftop的输出时尝试运行pingtraceroute命令。

iftop -i $iface
Run Code Online (Sandbox Code Playgroud)
  • [-i] 指定哪个接口(即,tap0、lun0、eth0、wlan0,由ifconfig的输出指定。

这将显示特定接口的统计信息。

iftop -f $IP/$NETMASK
Run Code Online (Sandbox Code Playgroud)
  • [-f 指定网络,网络掩码(即 192.168.1.0/24)

这将显示特定子网的统计信息。