Пропал значок PIA в Linux? Управляйте VPN через piactl
Когда значок PIA в Linux отсутствует, piactl по-прежнему сообщает о туннеле и меняет регионы. Прочитайте три состояния, прежде чем добавлять ещё один VPN-инструмент.
На рабочем столе Linux, где значок панели PIA никогда не появляется, туннель часто поднят и работает, а единственное управление, которое у вас было, исчезло. Закрытие окна приложения не останавливает соединение, и та же установка поставляет клиент командной строки, piactl, который читает и изменяет состояние, которое раньше показывало меню. Полезный вопрос не в том, почему исчез значок, а в том, какого слоя не хватает: фонового приложения, выбранного региона или интеграции с оболочкой. Назовите сначала этот слой, и вы сможете пользоваться VPN, не чиня лаунчер.
Значок панели и туннель — разные слои
Запись в лотке — деталь представления, которую предоставляет ваша оболочка рабочего стола, а не движок VPN. Приложение PIA рисует меню в любой области состояния, которую предлагает окружение, и некоторые настройки Linux показывают эту область только после установки расширения или плагина панели. Если приложение работает, но оболочке некуда поместить меню, соединение продолжается, а управление исчезает. Поэтому удаление и повторная установка VPN редко возвращает значок на рабочем столе, у которого никогда не было работающей области состояния.
Поведение панели может различаться и между сеансами, поэтому попробуйте одну и ту же учётную запись один раз под Wayland и один раз под X11. Меню, которое появляется в одном сеансе и не появляется в другом, указывает на тип сеанса, а не на установку VPN.
Прочитайте текущее состояние, прежде чем его менять
Начните только с запросов, потому что чтение ничего не стоит, а запись прерывает трафик. Запускайте их от своего пользователя, а не через sudo, который не заставляет клиент общаться с другим экземпляром приложения.
piactl --help
piactl get connectionstate
piactl get region
piactl get regionsconnectionstate напрямую отвечает на первый вопрос, возвращая Connected или Disconnected и проходя через переходные значения, пока клиент ведёт переговоры. region сообщает идентификатор, выбранный сейчас, который не всегда совпадает с последним нажатым, если приложение вернулось к автоматическому выбору. regions перечисляет идентификаторы, известные этому клиенту, чтобы вы могли скопировать точную строку вместо того, чтобы угадывать название города. Если первая команда печатает справку, а остальные зависают, приложение установлено без доступного фонового процесса.
Некоторые пакеты оставляют piactl вне вашего PATH. Руководство PIA по командной строке указывает /opt/piavpn/bin/piactl как расположение в Linux, поэтому вызывайте этот путь, когда короткое имя не находится. Бинарный файл принадлежит приложению рабочего стола, что делает отвечающий piactl доказательством того, что сама установка цела.
Смена региона намеренно прерывает туннель
Смена региона — это отключение, за которым следует новое рукопожатие, и клиент не применит её тихо под работающим туннелем. Рассматривайте команды ниже как одну транзакцию с идентификатором, скопированным из вывода regions.
piactl disconnect
piactl set region REGION_ID
piactl connect
piactl get connectionstateЗдесь важен порядок. Выбор региона во время подключения оставляет текущий туннель указывающим на старую конечную точку, пока что-то не вынудит переподключение, и именно так люди делают вывод, что настройка проигнорирована. Сначала отключение делает состояние однозначным, а завершающий запрос показывает, закончились ли переговоры, а не только то, записан ли регион. Если последняя строка сообщает о регионе, который вы не выбирали, поищите автоматический вариант или вариант самого быстрого сервера, который перевыбирает при подключении.
На машине, которой вы управляете через SSH, делайте изменение локально или примите, что сеанс может оборваться. Для всего, что ждёт на другом конце, намеренная смена региона выглядит точно как сбой сети.
Зафиксируйте сбой, а не пустую панель
Отсутствующее меню вместе с падающим клиентом — другая проблема, и она заслуживает другого отчёта. Соберите точный вывод запроса состояния, снятого при наличии сбоя. Эта запись отделяет сбой клиента или службы от сбоя интеграции с оболочкой, чего скриншот пустого угла сделать не может.
ps -ef | grep -i piavpn
ls -l /opt/piavpn/bin/piactl
piactl get connectionstateЕсли список процессов не показывает компоненты PIA, но бинарный файл существует, приложение просто не запущено, и решение — запустить его. Если процесс есть, а запрос всё ещё не удаётся, клиент не может достучаться до собственной фоновой службы, поэтому перезапустите приложение рабочего стола, прежде чем менять что-либо ещё. Когда обе проверки проходят, вы смотрите на проблему панели и можете прекратить отладку туннеля. Запишите версию клиента из панели «О программе» рядом с типом сеанса, потому что поддержка лотка чувствительна и к версии, и к рабочему столу.
Импорт той же подписки в NetworkManager как отдельного соединения создаёт второго владельца, который не наследует настроенные PIA блокировку или поведение раздельного туннеля, и последующая диагностика превращается в догадки. Держите одного владельца, пока значок отсутствует, и пусть piactl будет поверхностью управления. Командная строка — не запасной вариант для сломанной установки; она обращается к тому же приложению через другую дверь.