5.3 KiB
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 scanlspciи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 не управлява устройството или правата на текущия потребител
не позволяват сканиране.