已建立与外部 WiFi 网络的连接,但 ping 未通过 - 使用 ipv6

已建立与外部 WiFi 网络的连接,但 ping 未通过 - 使用 ipv6

因此,我在嵌入式主板上使用 WiFi 芯片,并将其设置为请求者以连接到外部网络,并且我能够顺利完成此操作,但只是 ping 不通,我不确定这是否与网络中某些奇怪的安全层阻止 ping 有关。

// embedded wifi module's interface
wlan0     Link encap:Ethernet  HWaddr 00:03:7f:61:a0:41
          inet6 addr: fe80::203:7fff:fe61:a041/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:248 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3000
          RX bytes:11332 (11.0 KiB)  TX bytes:1468 (1.4 KiB)


// host machine's interface

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::7d07:dd6b:dc52:8b85%26
   IPv4 Address. . . . . . . . . . . : 172.30.100.32
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.30.100.1

我从wifi模块发送了如下ping命令:

ping6 -I wlan0 fe80::7d07:dd6b:dc52:8b85%26

但这会导致 100% 的数据包丢失。

答案1

显示链路本地地址的区域索引取决于发送者。后面的部分告诉%操作系统当地的发送数据包的接口——发送方实际上并不知道哪个远程接口将接收它们。

因此,对于你的情况,正确的地址是。“-I”选项不是必需的,因为地址具有相同的信息:fe80::7d07:dd6b:dc52:8b85%wlan0

ping6 fe80::7d07:dd6b:dc52:8b85%wlan0

相反方向,从 Windows 主机(WiFi 为接口 #26)到 Linux 板:

ping fe80::203:7fff:fe61:a041%26

(当使用 Socket API 编写程序时,getaddrinfo() 接受命名和数字区域说明符,但在其他情况下,您需要使用 if_nametoindex("wlan0") 手动转换它。)

相关内容