- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| netui.py | ||
| README.MD | ||
netui
Curses-интерфейс к NetworkManager на базе nmcli. Вкладки: Wi-Fi,
Ethernet, VPN, Mobile/DSL, Adapters, Profiles. Раскладка в две панели:
список элементов слева, параметры выбранного элемента справа.
Функциональные отличия от nmtui: выбор типа безопасности Wi-Fi при
подключении, включая 802.1x Enterprise; создание VPN-профилей типов
PPTP, L2TP/IPsec, импорт OpenVPN, импорт WireGuard, OpenConnect, vpnc,
SSTP, Fortinet SSL VPN; создание профилей GSM/CDMA/PPPoE; экран
дополнительных параметров подключения (MTU, клонированный MAC,
статические маршруты, DNS search domains, флаг metered, приоритет
автоподключения, firewall zone); отдельная вкладка с обзором устройств
независимо от наличия у них профиля.
Требования
- Python 3.8+, только стандартная библиотека (
curses) nmcliвPATH, служба NetworkManager запущенаmmcli(ModemManager), опционально — используется для отображения оператора и уровня сигнала на вкладках Mobile/DSL и Adapters, если установлен- VPN-плагин NetworkManager, соответствующий используемому типу VPN. Установленные плагины определяются при запуске; типы без плагина помечаются «(not installed)» в списке выбора
Запуск
chmod +x netui.py
./netui.py
Отдельной установки не требует. Повышение прав, если требуется,
выполняет сам nmcli/NetworkManager через polkit — так же, как при
прямом вызове nmcli.
Вкладки
| Вкладка | Содержимое | Действия |
|---|---|---|
| Wi-Fi | Результаты сканирования Wi-Fi-устройства | подключить, отключить, забыть, добавить скрытую сеть, пересканировать, радио вкл/выкл |
| Ethernet | Проводные интерфейсы | подключить, отключить, добавить профиль |
| VPN | Сохранённые VPN-подключения | включить/выключить, добавить, изменить, удалить |
| Mobile/DSL | Модемы и сохранённые профили GSM/CDMA/PPPoE | подключить, отключить, добавить профиль, радио WWAN вкл/выкл |
| Adapters | Все устройства из nmcli device status, с профилем или без |
подключить, отключить, просмотр драйвера/MAC/MTU |
| Profiles | Все сохранённые подключения любого типа | активировать, отключить, изменить, удалить, переключить автозапуск |
Безопасность Wi-Fi
При подключении к защищённой сети запрашивается тип безопасности:
| Вариант | Поведение |
|---|---|
| Auto-detect | Только пароль; подключение через nmcli device wifi connect, тип безопасности определяет сам nmcli |
| WPA/WPA2 Personal | Пароль; профиль создаётся с wifi-sec.key-mgmt wpa-psk |
| WPA3 Personal (SAE) | Пароль; профиль создаётся с wifi-sec.key-mgmt sae |
| WEP | Ключ; профиль создаётся с wifi-sec.key-mgmt none, wifi-sec.wep-key-type 1 |
| WPA/WPA2 Enterprise (802.1x) | EAP-метод, identity, пароль, опционально anonymous identity, phase-2 auth, путь к CA-сертификату; профиль создаётся с wifi-sec.key-mgmt wpa-eap и соответствующими 802-1x.* |
nmcli device wifi connect не поддерживает 802.1x; вариант Enterprise
собирается напрямую через nmcli connection add. Тип, определённый по
результатам скана, помечается в списке как «detected»; можно выбрать
любой другой. Тот же выбор используется при добавлении скрытой сети.
Типы VPN
| Тип | Поля | Способ создания |
|---|---|---|
| PPTP | шлюз, логин, пароль, NT-домен, переключатель MPPE | connection add type vpn vpn-type pptp |
| L2TP / IPsec | шлюз, логин, пароль, общий ключ (PSK) | connection add type vpn vpn-type l2tp |
| OpenVPN | путь к .ovpn/.conf |
connection import type openvpn |
| WireGuard | путь к .conf |
connection import type wireguard (плагин не требуется) |
| OpenConnect | шлюз, протокол (anyconnect/gp/pulse/nc/fortinet), логин | connection add type vpn vpn-type openconnect; пароль запрашивается при подключении |
| Cisco (vpnc) | шлюз, имя группы, пароль группы, логин/пароль Xauth | connection add type vpn vpn-type vpnc |
| SSTP | шлюз, логин, пароль | connection add type vpn vpn-type sstp |
| Fortinet SSL VPN | шлюз, логин, пароль | connection add type vpn vpn-type fortisslvpn |
Advanced-настройки
Клавиша A на сохранённом профиле, либо на устройстве во вкладках
Ethernet/Adapters (тогда находится профиль, привязанный к этому
устройству). Задаёт следующие свойства через nmcli connection modify:
| Поле | Свойство |
|---|---|
| MTU (только Ethernet/Wi-Fi) | ethernet.mtu / wifi.mtu |
| Клонированный MAC (только Ethernet/Wi-Fi) | ethernet.cloned-mac-address / wifi.cloned-mac-address |
| Статические маршруты | ipv4.routes |
| DNS search domains | ipv4.dns-search |
| Игнорировать DNS от DHCP/VPN | ipv4.ignore-auto-dns |
| Не использовать как маршрут по умолчанию | ipv4.never-default |
| Требовать IPv4 для статуса «поднято» | ipv4.may-fail (инвертировано) |
| Metered-соединение | connection.metered |
| Приоритет автоподключения | connection.autoconnect-priority |
| Firewall zone | connection.zone |
Клавиши
Left/Right, h/l, Tab переключение вкладок
1..6 переход на вкладку по номеру
Up/Down, j/k перемещение по списку
g / G в начало / в конец
PgUp / PgDn страница вверх / вниз
Enter подключить (VPN: вкл/выкл)
d отключить
a добавить подключение
e изменить профиль
A advanced-настройки
x удалить профиль (для Wi-Fi — забыть сеть)
t переключить автозапуск
i показать все параметры
w радио Wi-Fi вкл/выкл
W радио мобильной связи (WWAN) вкл/выкл
s пересканировать Wi-Fi
r обновить
L журнал событий
? справка
q выход
Ограничения
- Аналоговый дозвон через AT-модем не поддерживается: у NetworkManager нет соответствующего типа подключения.
- Пароли, передаваемые в
nmcliв момент создания подключения, на многопользовательской системе на короткое время видны в списке процессов (ps) — так же, как и при прямом вызовеnmcli. - Все вызовы
nmcliвыполняются в фоновом потоке; интерфейс не блокируется во время сканирования или попытки подключения. - Минимальный размер терминала — 54×12 (столбцы×строки); при меньшем размере вместо интерфейса выводится запрос на увеличение окна.