我已经安装了 Windows PC、交换机和 Linux SBC(不是 Raspberry),并且我尝试通过交换机将 SBC 与计算机连接,以便为 SBC 提供互联网和 SSH。
SBC 输出以下 IP 地址
root@imx6qpdlsolox:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.234.40 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::204:9fff:fe06:3984 prefixlen 64 scopeid 0x20<link>
ether 00:04:9f:06:39:84 txqueuelen 1000 (Ethernet)
RX packets 364 bytes 45484 (44.4 KiB)
RX errors 0 dropped 166 overruns 0 frame 0
TX packets 140 bytes 35993 (35.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 446 bytes 29426 (28.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 446 bytes 29426 (28.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我的计算机输出以下内容
Ethernet-Adapter Ethernet:
Verbindungsspezifisches DNS-Suffix:
Verbindungslokale IPv6-Adresse . : fe80::4ece:1a02:7677:2d01%22
IPv4-Adresse . . . . . . . . . . : 192.168.0.200
Subnetzmaske . . . . . . . . . . : 255.255.255.0
IPv4-Adresse . . . . . . . . . . : 192.254.79.200
Subnetzmaske . . . . . . . . . . : 255.255.255.0
IPv4-Adresse . . . . . . . . . . : 169.254.234.200
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway .
我可以从我的电脑 ping 通 SBC
Ping wird ausgeführt für 169.254.234.40 mit 32 Bytes Daten:
Antwort von 169.254.234.40: Bytes=32 Zeit<1ms TTL=64
Antwort von 169.254.234.40: Bytes=32 Zeit<1ms TTL=64
Antwort von 169.254.234.40: Bytes=32 Zeit<1ms TTL=64
Antwort von 169.254.234.40: Bytes=32 Zeit<1ms TTL=64
Ping-Statistik für 169.254.234.40:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
但我的 SBC 电脑却不行
root@imx6qpdlsolox:~# ping 169.254.234.200
PING 169.254.234.200 (169.254.234.200) 56(84) bytes of data.
两个设备都通过交换机连接。交换机确认后,LED 闪烁。SBC 上的绿色 LED 没有闪烁,但橙色 LED 闪烁。这是什么意思?我读到绿色表示链接成功,因此主板没有链接。但为什么交换机会显示链接成功,为什么 ping 可以工作?
答案1
Windows 默认带有防火墙,可以阻止几乎所有入站流量,甚至包括 ping 请求。
在 Windows 上运行wf.msc
,打开“传入”,并启用内置的“ICMP Echo”和“ICMPv6 Echo”规则。它们将在 Windows 11 中的“核心网络诊断”下,或在 Windows 10 中的“文件共享”下(后者也默认将它们限制为仅在同一子网下)。
此外,请尝试让给定子网上的所有设备的网络掩码保持一致。目前,您的 SBC 使用255.255.0.0
,但 PC 配置为使用255.255.255.0
169.254.234.200 地址。虽然在这种情况下不是然而导致问题(因为 SBC 和 PC 的地址仍然在两个网络掩码中较窄的范围内),但它仍然算作配置错误。
因此,最好将 PC 的 169.254.234.200 地址更改为使用 255.255.0.0 网络掩码。(PC 的其他 IP 地址可以继续使用其当前的网络掩码。)
Ping 是一种双向检查,将两个东西(请求和回复)合并为一个通过/失败。如果失败,下一步就是检查那些东西分别地,即,您想知道计算机是否正在接收 SBC 的 ping 请求,而不依赖于答复。
为此,需要使用数据包捕获工具(通常,Windows/Linux GUI 使用的是 Wireshark,CLI 使用的是 tcpdump)——即使计算机没有响应,能够看到请求到达计算机也会告诉您 SBC 的网络配置是正确的(或至少有一半是正确的),因此是计算机选择不回复。(或者它可能会告诉您,由于您指定了错误的网络掩码,计算机通过不同的接口回复……)
SBC 上的绿色 LED 不闪烁,但橙色 LED 闪烁。这是什么意思?我读到绿色表示链接成功,所以主板没有链接
以太网 LED 指示灯没有标准的配色方案;您在一个设备上看到的网络 LED 指示灯并不一定适用于另一个设备。
例如,SBC 可能使用“橙色 = 100 Mbps”和“绿色 = 1 Gbps”,其中任一颜色表示链接成功,但比特率不同。(我也见过相反的情况,橙色表示速度更快。)