У меня есть конфигурация с моим ПК с Windows, коммутатором и Linux SBC (не Raspberry), и я пытаюсь подключить SBC к своему компьютеру через коммутатор, чтобы обеспечить доступ в Интернет и SSH к SBC.
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 .
Я могу пинговать 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.
Оба устройства подключены через коммутатор. Коммутатор подтверждает это, и светодиоды мигают. Зеленый светодиод на SBC не мигает, а оранжевый мигает. Что это значит? Я читал, что зеленый означает успешное соединение, поэтому на плате нет соединения. Но почему тогда коммутатор показывает успешное соединение и почему пинг работает?
решение1
По умолчанию в Windows установлен брандмауэр, который блокирует практически все входящие данные, включая даже запросы ping.
Запустите wf.msc
Windows, откройте «Входящие» и включите встроенные правила «ICMP Echo» и «ICMPv6 Echo». Они будут в разделе «Диагностика основной сети» в Windows 11 или в разделе «Общий доступ к файлам» в Windows 10 (последний также ограничивает их только одной подсетью по умолчанию).
Также постарайтесь сохранить ваши маски подсети идентичными для всех устройств в данной подсети. В настоящее время ваш SBC использует 255.255.0.0
, но ПК настроен на использование 255.255.255.0
для своего адреса 169.254.234.200. Хотя в этом случае это неещевызывая проблемы (поскольку адреса и SBC, и ПК по-прежнему находятся в пределах более узкой из двух сетевых масок), это все равно можно считать неправильной настройкой.
Поэтому в идеале адрес ПК 169.254.234.200 следует изменить на использование маски сети 255.255.0.0. (Другие IP-адреса ПК могут продолжать использовать свои текущие маски сети.)
Ping — это двунаправленная проверка, которая объединяет две вещи (запрос и ответ) в один проход/неудача. Если он не проходит, следующим шагом будет проверка этих вещейв отдельности,т.е. вы хотите узнать, получает ли компьютер запрос SBC ping, не полагаясь на ответ.
Для этого используются инструменты захвата пакетов (обычно Wireshark для Windows/Linux GUI или tcpdump для CLI) — даже если компьютер не отвечает, возможность увидеть, как запрос поступает на компьютер, скажет вам, что сетевая конфигурация SBC верна (или, по крайней мере, наполовину верна), и, следовательно, это компьютер решил не отвечать. (Или он может сказать вам, что компьютер отвечает через другой интерфейс, потому что вы указали неправильную маску сети...)
Зеленый светодиод на SBC не мигает, а оранжевый мигает. Что это значит? Я читал, что зеленый означает успешную связь, поэтому на плате связи нет
Светодиодные индикаторы Ethernet не имеют стандартной цветовой схемы; то, что вы читали о сетевых светодиодах на одном устройстве, не обязательно будет верно для другого.
Например, может быть, что SBC использует «оранжевый = 100 Мбит/с» и «зеленый = 1 Гбит/с», где любой из цветов указывает на успешное соединение, но на разных скоростях передачи данных. (Я также видел обратное, когда оранжевый цвет указывал на более высокую скорость.)