Вопрос или проблема
Я использую nmcli
на ArchLinux (версия 1.14.5dev+17+gba83251bb-1 из официального репозитория пакетов) для подключения к Wi-Fi. Это работает идеально для всех беспроводных сетей, кроме этой сети Vodafone EasyBox.
Попытка активировать подключение с правильным паролем дает мне следующее сообщение об ошибке:
Пароли или ключи шифрования необходимы для доступа к беспроводной сети 'EasyBox-123456'.
Предупреждение: пароль для '802-11-wireless-security.psk' не указан в 'passwd-file', и nmcli не может спросить без опции '--ask'.
Ошибка: Не удалось активировать подключение: требовались секреты, но они не были предоставлены
Тем не менее, 802-11-wireless-security.psk
сохранен, как вы можете видеть здесь:
$ nmcli con show EasyBox-123456
connection.id: EasyBox-123456
connection.uuid: <скрыто>
connection.stable-id: --
connection.type: 802-11-wireless
connection.interface-name: --
connection.autoconnect: да
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (по умолчанию)
connection.multi-connect: 0 (по умолчанию)
connection.auth-retries: -1
connection.timestamp: 0
connection.read-only: нет
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (по умолчанию)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: неизвестно
connection.lldp: по умолчанию
connection.mdns: -1 (по умолчанию)
connection.llmnr: -1 (по умолчанию)
802-11-wireless.ssid: EasyBox-123456
802-11-wireless.mode: инфраструктура
802-11-wireless.band: --
802-11-wireless.channel: 0
802-11-wireless.bssid: --
802-11-wireless.rate: 0
802-11-wireless.tx-power: 0
802-11-wireless.mac-address: <скрыто>
802-11-wireless.cloned-mac-address: --
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-blacklist: --
802-11-wireless.mac-address-randomization:по умолчанию
802-11-wireless.mtu: авто
802-11-wireless.seen-bssids: --
802-11-wireless.hidden: нет
802-11-wireless.powersave: 0 (по умолчанию)
802-11-wireless.wake-on-wlan: 0x1 (по умолчанию)
802-11-wireless-security.key-mgmt: wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg: открытый
802-11-wireless-security.proto: --
802-11-wireless-security.pairwise: --
802-11-wireless-security.group: --
802-11-wireless-security.pmf: 1 (выключить)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0: <скрыто>
802-11-wireless-security.wep-key1: <скрыто>
802-11-wireless-security.wep-key2: <скрыто>
802-11-wireless-security.wep-key3: <скрыто>
802-11-wireless-security.wep-key-flags: 0 (нет)
802-11-wireless-security.wep-key-type: неизвестно
802-11-wireless-security.psk: <скрыто>
802-11-wireless-security.psk-flags: 0 (нет)
802-11-wireless-security.leap-password: <скрыто>
802-11-wireless-security.leap-password-flags:0 (нет)
802-11-wireless-security.wps-method: 0 (по умолчанию)
802-11-wireless-security.fils: 0 (по умолчанию)
ipv4.method: авто
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (неопределено)
ipv4.ignore-auto-routes: нет
ipv4.ignore-auto-dns: нет
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0 (по умолчанию)
ipv4.dhcp-send-hostname: да
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: нет
ipv4.may-fail: да
ipv4.dad-timeout: -1 (по умолчанию)
ipv6.method: авто
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: ""
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (неопределено)
ipv6.ignore-auto-routes: нет
ipv6.ignore-auto-dns: нет
ipv6.never-default: нет
ipv6.may-fail: да
ipv6.ip6-privacy: -1 (неизвестно)
ipv6.addr-gen-mode: стабильная-приватность
ipv6.dhcp-duid: --
ipv6.dhcp-send-hostname: да
ipv6.dhcp-hostname: --
ipv6.token: --
proxy.method: нет
proxy.browser-only: нет
proxy.pac-url: --
proxy.pac-script: --
Я пробовал несколько вещей, включая перезагрузку NetworkManager/wpa-supplicant, маршрутизатора и отключение PMF, но ничего не сработало.
Указание --ask
запрашивает у меня пароль, но затем выдает то же сообщение об ошибке. Удаление и повторное создание подключения с помощью nm-connection-editor
также не сработало. На моем Android-устройстве работает без каких-либо проблем.
Как я могу подключиться к этой сети?
Уже немного поздно, но я нашел потенциальное решение. Согласно документации по nmcli, вы можете подключиться к вашей точке доступа, предоставив файл passwd-file с содержимым:
802-11-wireless-security.psk:secret12345
и командой:
nmcli con up <имя подключения> passwd-file <имя файла>
Надеюсь, это поможет.
Для всех остальных, кто столкнется с этой проблемой, как это было у меня недавно после перехода на нового провайдера, это сообщение также может быть вызвано ошибкой в написании пароля в nm-connection-editor
. Это было верно как для Oracle Linux 7, так и для Oracle Linux 8.
Я только что решил это буквально 2 минуты назад:
я сделал скрипт pygui, который запускал nmgui и переходил на правильную вкладку, вводил мой пароль и сохранял, потому что по какой-то причине nmgui работает, но nmcli – нет. Может быть, это поможет и вам? Это медленно и очень ненадежно + нестабильно, но, я полагаю, лучше, чем вводить это каждый раз?
Ответ или решение
Да, проблема с подключением к WiFi-сети через nmcli
на ArchLinux, особенно при использовании маршрутизаторов, таких как Vodafone EasyBox, может быть вызвана несколькими факторами. Ниже приведены подробные рекомендации для решения вашей проблемы.
1. Проверка пароля и конфигурации
Первым делом необходимо удостовериться, что пароль для WiFi-сети правильно введён. Часто неправильный ввод пароля является основным источником ошибок подключения:
- Проверьте, правильно ли вы его ввели в
nm-connection-editor
. - Убедитесь, что нет лишних пробелов или опечаток в пароле.
2. Использование опции --ask
Вы уже упомянули, что использование --ask
даёт то же уведомление об ошибке. Оно должно помочь в запросе пароля для подключения. Однако если это не сработает, переходите к следующим шагам.
3. Проверка конфигурации через nmcli
Запустите команду для вывода подробной информации о соединении:
nmcli con show EasyBox-123456
Убедитесь, что все необходимые параметры конфигурации корректны, включая 802-11-wireless-security.psk
, который должен быть скрыт "параметром безопасности сети".
4. Использование файла паролей
Как вы уже нашли, nmcli
поддерживает использование файла паролей. Создайте текстовый файл, содержащий следующее:
802-11-wireless-security.psk:ваш_пароль
После этого используйте команду:
nmcli con up EasyBox-123456 passwd-file /путь/к/вашему/файлу
Убедитесь, что файл доступен для чтения. Это может помочь передать пароль напрямую через точный файл.
5. Перезапуск службы NetworkManager
Попробуйте перезапустить NetworkManager, чтобы сбросить все активные подключения и заново инициализировать методы подключения:
sudo systemctl restart NetworkManager
6. Проверка PMF и шифрования
Обратите внимание на параметры шифрования вашей сети. Если ваша сеть использует Partner Management Frame (PMF), и это вызывает проблемы, попробуйте его отключить. Также проверьте, правильно ли указаны типы шифрования:
- WEP
- WPA/WPA2 PSK
При этом переключите шифрование на наиболее общепринятые настройки, если это возможно.
7. Использование графического интерфейса
Раз вы упомянули о том, что nm-connection-editor
не решает проблему, попробуйте временно воспользоваться графическим интерфейсом NetworkManager. Если он позволяет вам подключиться, это может означать, что ваши конфигурации в nmcli
некорректны.
8. Логи и диагностика
Для более глубокого понимания проблемы, рассмотрите возможность просмотра логов:
journalctl -u NetworkManager
Ищите ошибки или предупреждения, которые могут дать больше информации о проблеме с подключением.
Заключение
Если ни один из предложенных методов не сработал, возможно, стоит изучить альтернативные решения или обратиться к сообществу ArchLinux за дополнительной помощью. К сожалению, сетевые проблемы могут быть специфичны для конфигурации оборудования или программного обеспечения, и иногда их трудно диагностировать без детальной информации.