Files
StrixScripts/System/network-diagnostic.md
2026-09-29 11:25:33 +03:00

5.3 KiB
Raw Permalink Blame History

network-diagnostic.sh

Показва подробна информация за мрежовите интерфейси и хардуерните карти, след което сканира околните Wi-Fi мрежи и извежда до десетте най-силни.

Какво прави

За всеки интерфейс показва типа и състоянието, MAC и IP адресите, MTU, активната NetworkManager връзка, скоростта и наличните link modes. За физическите PCI/USB устройства показва модел, bus и драйвер; lspci добавя PCI описанието и kernel module информацията. Ако е наличен ethtool, се показват Ethernet скоростта и състоянието на link-а; използва се и скоростта, публикувана от драйвера в sysfs. Виртуалните интерфейси не се представят като физически Ethernet връзки и не получават подвеждаща скорост от veth/bridge.

Изходът е подреден като физически Ethernet, физически Wi-Fi, веднага след тях топ 10 Wi-Fi scan, и накрая виртуалните интерфейси.

Wi-Fi scan използва NetworkManager и заявява нов scan. Резултатите се сортират по сила на сигнала и се показват най-много десет различни SSID; ако едно SSID се вижда през няколко access point-а, показва се най-силният. В списъка има BSSID, канал, честота, сигнал и тип защита. Свързаната точка за достъп се отбелязва като CONNECTED и се оцветява в зелено в терминала; в HTML целият ред е оцветен. При няколко access point-а със същото SSID свързаният BSSID се запазва пред по-силен несвързан. При липса на NetworkManager се използва iw като fallback, ако е инсталиран и има права за scan.

Скриптът е само за преглед и не променя мрежови настройки. След показването на TXT отчета интерактивно предлага запис в ~/report.txt. Може да се зададе друг път и формат; поддържат се TXT, JSON и HTML.

Изисквания

  • Linux, Bash и Python 3
  • ip е задължителен за инвентара на интерфейсите
  • nmcli от NetworkManager се препоръчва за Wi-Fi scan
  • lspci и ethtool са незадължителни и добавят хардуерни/link детайли
  • iw е незадължителен fallback за Wi-Fi scan; някои драйвери изискват root права за сканиране с iw
  • За nmcli обикновено не са нужни root права

Употреба

./System/network-diagnostic.sh
./System/network-diagnostic.sh --help
./System/network-diagnostic.sh --output "$HOME/network-report.json" --format json
./System/network-diagnostic.sh --output /tmp/network-report.html --force
./System/network-diagnostic.sh --format json
Опция Описание
-o, --output PATH Записва директно във файл; без тази опция предлага интерактивен запис
-f, --format FORMAT Формат txt, json или html; без --output извежда формата към stdout в non-interactive режим
--force Позволява презапис на съществуващ файл без потвърждение
-h, --help Показва помощта и приключва

Без зададен --format форматът се разпознава от разширението на --output; ако няма поддържано разширение, се използва TXT. При интерактивен запис началният път е ~/report.<format>, като форматът по подразбиране е TXT. В non-interactive режим без --output отчетът се извежда към stdout; зададеният --format определя сериализацията.

Ограничения

Скриптът показва до десет уникални SSID, а не десет отделни BSSID; при еднакво име се избира access point-ът с най-силен сигнал. Скритите мрежи нямат SSID и се третират отделно по BSSID. Детайлите за PCI устройства зависят от lspci, за USB устройствата от sysfs, а Ethernet link modes зависят от ethtool и драйвера. Wi-Fi scan може да не се изпълни, ако NetworkManager не управлява устройството или правата на текущия потребител не позволяват сканиране.