Happ на Linux: установка пакетом и настройка
Настольный Happ выходит и под Linux: в каждом релизе разработчика лежит шесть файлов — пакет .deb для Ubuntu и Debian, .rpm для Fedora и openSUSE, .pkg.tar.zst для Arch и Manjaro, каждый в вариантах под x64 и arm64. Ставится он скачанным файлом, а не из репозитория дистрибутива, — в этом единственная тонкость, из-за которой установка иногда кажется невозможной. Ниже — команда под каждый формат, проверка туннеля из терминала и автозапуск.
Если параллельно настраиваете телефон или вторую машину — порядок для остальных систем собран в разделе настройки.
Установка и подключение: порядок действий
Шаги одинаковы для Ubuntu, Debian, Mint, Pop!_OS, Fedora, openSUSE, Arch и Manjaro — меняется только формат пакета и команда установки. Отдельно разобраны машина без графики и Steam Deck.
-
1Узнайте архитектуру своей машиныКоманда uname -m отвечает одним словом. Ответ x86_64 — вам нужны файлы с пометкой x64, это обычный настольный компьютер или ноутбук. Ответ aarch64 — берите файлы arm64: так отвечают одноплатники и ноутбуки на ARM. Скачанный не под ту архитектуру пакет менеджер просто откажется ставить.
-
2Скачайте пакет своего форматаФайлы лежат на странице релизов разработчика: Happ.linux.x64.deb для семейства Ubuntu и Debian, Happ.linux.x64.rpm для Fedora и openSUSE, Happ.linux.x64.pkg.tar.zst для Arch и Manjaro. Размер — от 70 до 100 МБ в зависимости от формата, это нормально. Прямые ссылки собраны в разделе «Скачать Happ».
-
3Поставьте пакет одной командойИз каталога со скачанным файлом: sudo apt install ./Happ.linux.x64.deb на Ubuntu и Debian, sudo dnf install ./Happ.linux.x64.rpm на Fedora, sudo pacman -U Happ.linux.x64.pkg.tar.zst на Arch. Главная ловушка — точка и слэш перед именем файла: без них менеджер считает, что вы просите пакет из репозитория, и отвечает «не найдено». Зависимости он подтянет сам.
-
4Запустите клиент и достаньте ссылку-подпискуПосле установки Happ появляется в меню приложений как обычная программа. Ссылка-подписка — длинный адрес из письма, начинающийся с https://: список серверов, ключи и сроки клиент вытягивает по ней сам. Копируйте строку целиком — почтовые клиенты переносят её на вторую строку, и половина адреса теряется при выделении мышью.
-
5Добавьте подписку в клиентИщите пункт добавления профиля по адресу — «из буфера обмена», «из URL» или «подписка». Вставили строку, обновили — и в списке появляются несколько локаций. Пустой список означает обрезанный адрес, а не проблему с оплатой: сверьте, что скопировалась вся строка до последнего символа.
-
6Решите, чем ловить трафик: прокси или TUNПо умолчанию клиент поднимает локальный прокси на 127.0.0.1 — тогда через сервер идёт только то, что об этом прокси знает. Режим TUN заводит виртуальную сетевую карту и уводит туда весь трафик системы, но требует повышенных прав. Разница разобрана ниже, начинать проще с прокси.
-
7Проверьте подключение из терминалаНе полагайтесь на индикатор в окне: он показывает, что клиент считает себя подключённым, а не что трафик реально идёт наружу через сервер. Пяти команд из таблицы ниже достаточно, чтобы увидеть свой адрес до и после туннеля.
-
8Поднимите автозапускГрафический клиент проще всего добавить в автозапуск рабочего стола. Для службы без окна правильнее пользовательский юнит systemd: файл кладётся в ~/.config/systemd/user/, включается командой systemctl --user enable --now имя-службы. Чтобы служба работала и до входа в систему, для учётной записи включают режим постоянного пользователя — loginctl enable-linger.
Команда установки под ваш дистрибутив
Выполняется в каталоге, куда скачан файл. Для машин на ARM в имени файла меняется только x64 на arm64 — команда остаётся той же.
| Дистрибутив | Файл из релиза | Команда |
|---|---|---|
| Ubuntu, Debian, Mint, Pop!_OS | Happ.linux.x64.deb | sudo apt install ./Happ.linux.x64.deb |
| Fedora, openSUSE | Happ.linux.x64.rpm | sudo dnf install ./Happ.linux.x64.rpm |
| Arch, Manjaro, EndeavourOS | Happ.linux.x64.pkg.tar.zst | sudo pacman -U Happ.linux.x64.pkg.tar.zst |
| Ноутбук или одноплатник на ARM | Happ.linux.arm64.deb и одноимённые | Команда своего семейства, имя файла с arm64 |
| Обновление на новую версию | Свежий файл того же формата | Та же команда установки поверх — удалять старое не нужно |
Что важно понимать про Happ на Linux
Пакет есть, а команды apt install happ — нет
Разработчик собирает пакеты сам и выкладывает их в релизах, но не отдаёт их в репозитории дистрибутивов. Практическое следствие ровно одно: имя «happ» ничего не значит для менеджера пакетов, пока вы не указали ему файл. Отсюда и берётся ощущение, что версии под Linux не существует, — команда без пути к файлу честно отвечает, что такого пакета не знает.
Из этого же следует второе: не ставьте пакеты с названием «happ» из сторонних репозиториев и не собирайте их из чужих сборок. Клиент видит ваши ключи доступа целиком, поэтому источник у файла должен быть один — страница релизов автора.
Обновления сами не приезжают
Раз пакет пришёл не из репозитория, обычное обновление системы его не трогает: apt upgrade и его аналоги о нём просто не знают. Клиент так и останется той версии, которую вы поставили, сколько бы времени ни прошло.
Чинится это в одно действие: скачиваете свежий файл того же формата и выполняете ту же команду установки. Настройки и добавленные профили при этом остаются на месте — переустановкой с нуля это не является. Раз в пару месяцев заглянуть на страницу релизов достаточно.
AppImage у Happ нет — и искать его не нужно
Формат AppImage удобен тем, что не требует установки, и его часто ищут по привычке. У Happ такого файла в релизах нет, а то, что найдётся по запросу «happ appimage», собрано не автором проекта. Ставить это опасно ровно по той же причине, что и пакеты из чужих репозиториев.
Заодно снимается старая головная боль: возни с библиотекой FUSE и запуска с ключом --appimage-extract-and-run здесь не будет вовсе — обычный пакет ставится штатным менеджером и никаких дополнительных библиотек не просит.
Локальный прокси против TUN — главная развилка
В режиме прокси клиент слушает порт на локальном адресе и ждёт, когда к нему кто-нибудь придёт. Браузер придёт, если указать прокси в его настройках или включить системный прокси в параметрах рабочего стола. А вот утилиты командной строки туда не смотрят вообще: им нужны переменные окружения http_proxy и https_proxy. Классическая жалоба «в браузере работает, а в терминале нет» — это ровно она.
Режим TUN снимает вопрос целиком: система видит новый сетевой интерфейс, маршрут по умолчанию уезжает на него, и туннель охватывает все программы разом, включая менеджер пакетов и мессенджеры. Плата — права: создание интерфейса и правка таблицы маршрутов требуют административных полномочий, поэтому клиент либо запускается с повышением прав, либо один раз получает нужную привилегию на исполняемый файл.
DNS — второе место, где на Linux всё ломается
Даже при поднятом туннеле имена сайтов может по-прежнему разрешать локальная служба systemd-resolved через сервер провайдера. Внешне это выглядит странно: адрес наружу уже чужой, а часть сайтов не открывается или открывается местная версия. Смотреть надо командой resolvectl status — она показывает, какой сервер имён назначен каждому интерфейсу.
Правильная картина: у виртуального интерфейса свой сервер имён, и он выше по приоритету. Клиент настраивает это самостоятельно при включении TUN, но если в системе прописан статичный DNS в настройках соединения, он побеждает — и его придётся убрать руками.
Списка приложений, как на Android, в Happ нет
На телефоне можно отметить галочками, каким программам ходить через сервер. В настольном Happ такой настройки нет — ни на Linux, ни на других системах. Ограничение это приложения, а не операционной системы: сам Linux разводить трафик по владельцу сокета умеет — правилами маршрутизации по идентификатору пользователя (ip rule с диапазоном uidrange), метками на сокете и группировкой процессов через cgroup второй версии. На этом построены правила «по процессу» в других клиентах, например в mihomo.
Штатный аналог в Happ — разделение по адресам, и повседневно он удобнее: российские сервисы уходят напрямую по списку маршрутизации, остальное — через сервер, всё это одним переключателем режима. Если нужен именно выбор по программам, придётся либо строить правила маршрутизации руками, либо брать клиент, где такая функция заявлена.
Проверка подключения командами
Пять команд, которые отвечают на вопрос «туннель поднялся или мне кажется». Порт локального прокси подставьте свой — клиент показывает его в настройках.
| Что проверяем | Команда | Что должно получиться |
|---|---|---|
| Адрес без туннеля | curl -s https://api.ipify.org | Ваш обычный домашний адрес — снимок для сравнения |
| Адрес через локальный прокси | curl -s --socks5-hostname 127.0.0.1:10808 https://api.ipify.org | Адрес сервера подписки. Совпал с первым — трафик мимо туннеля |
| Поднялся ли виртуальный интерфейс | ip -brief address | В списке появилась строка с интерфейсом вида tun0 и адресом на нём |
| Куда уходит маршрут по умолчанию | ip route get 1.1.1.1 | В режиме TUN — через виртуальный интерфейс, а не через Wi-Fi |
| Кто разрешает имена сайтов | resolvectl status | У активного интерфейса свой сервер имён, а не адрес роутера |
Частные случаи, о которых спрашивают чаще всего
Запасной вариант: чужие клиенты на той же подписке
Когда родного клиента мало
Причин ровно три, и все узкие. Первая — нужен открытый исходный код, который можно прочитать и собрать самому. Вторая — экзотическая архитектура: в релизах Happ есть только x64 и arm64, и на чём-то другом пакет просто не поставится. Третья — нужна функция, которой в Happ нет, чаще всего это правила по конкретным программам.
Во всех остальных случаях смысла менять клиент нет: ставится Happ пакетом, и на этом вопрос закрыт.
Подписка не привязана к приложению
Ссылка-подписка — это не файл под конкретную программу, а адрес, по которому лежит список серверов в общепринятом формате. Любой клиент, умеющий протокол VLESS, забирает по нему тот же самый список: те же локации, те же ключи, тот же срок. Требование к замене ровно одно — поддержка VLESS и импорт профилей по адресу подписки.
Этому условию отвечают, например, Hiddify и v2rayA среди приложений с интерфейсом, а на серверах — ядра, настраиваемые конфигурационным файлом. Что именно зашито внутри такой ссылки, разобрано на странице про конфиг.
Проверяйте, что проект жив
Отдельная ловушка чужих клиентов — заброшенные проекты. Показательный пример: репозиторий nekoray у автора MatsuriDayo переведён в архив, разработка прекращена, и советы «поставьте NekoBox» до сих пор кочуют по форумам. Такой клиент не получает ни исправлений протокола, ни заплаток безопасности, а ключи доступа вы отдаёте ему целиком.
Поэтому прямых ссылок на чужие проекты мы не даём: они переезжают и переименовываются, а устаревшая ссылка ведёт на подделку. Ищите по названию на площадке разработчика, сверяйте автора и смотрите дату последнего изменения — архивный репозиторий видно сразу.
Частые вопросы про Happ на Linux
Есть ли официальный клиент Happ для Linux?
Да. В каждом релизе настольной части проекта лежат шесть файлов под Linux: пакет .deb для семейства Ubuntu и Debian, .rpm для Fedora и openSUSE, .pkg.tar.zst для Arch и Manjaro — и каждый из трёх форматов в вариантах под x64 и arm64.
Честно о том, чего нет: нет AppImage, нет пакета в репозиториях самих дистрибутивов (поэтому команда apt install happ без имени файла ничего не находит) и нет автообновления — новая версия ставится скачанным файлом поверх старой. Ссылки на актуальные сборки собраны в разделе «Скачать Happ».
Как установить на Ubuntu или Debian?
Скачиваете файл Happ.linux.x64.deb и из каталога с ним выполняете sudo apt install ./Happ.linux.x64.deb. Точка и слэш перед именем обязательны: без них менеджер ищет пакет в репозитории и отвечает, что такого нет. Зависимости подтянутся автоматически, отдельно ставить ничего не нужно.
Порядок одинаков для Ubuntu, Debian, Mint и Pop!_OS — они одного семейства и различий здесь не дают. На машине с ARM берётся файл с пометкой arm64, команда та же.
А на Fedora и Arch?
На Fedora и openSUSE берётся Happ.linux.x64.rpm и ставится командой sudo dnf install ./Happ.linux.x64.rpm — правило про точку перед именем файла здесь то же самое.
На Arch, Manjaro и родственниках нужен Happ.linux.x64.pkg.tar.zst, команда — sudo pacman -U Happ.linux.x64.pkg.tar.zst. Ключ -U означает установку из файла, а не из репозитория.
Почему apt install happ пишет, что пакет не найден?
Потому что в репозиториях дистрибутива этого пакета нет, и такая команда там его и не найдёт — ищите не ошибку у себя, а правильную форму команды. Менеджеру нужно передать путь к скачанному файлу: sudo apt install ./Happ.linux.x64.deb.
Тот же ответ вы получите, если находитесь не в том каталоге, куда скачался файл. Проверить проще всего командой ls Happ.linux.x64.deb — если она отвечает, что файла нет, перейдите в каталог загрузок.
Где скачать Happ в формате AppImage?
Такого файла у проекта не существует, и по запросу «happ appimage» вам скорее всего попадётся чужая сборка под тем же именем. Скачивать её не стоит: клиент видит ваши ключи доступа целиком.
Ставьте штатный пакет своего формата — он проще AppImage: не нужны ни права на запуск файла, ни библиотека FUSE, ни запуск из терминала.
Как обновить клиент на новую версию?
Скачать свежий файл того же формата и выполнить ту же команду установки. Менеджер заменит старую версию новой, настройки и добавленные профили при этом сохраняются.
Автоматически это не произойдёт: пакет пришёл не из репозитория, поэтому штатное обновление системы его не касается.
Мой ключ куплен для телефона — он подойдёт ноутбуку на Linux?
Да, это та же самая ссылка. Ключ выдаётся на подписку, а не на устройство и не на приложение: одновременных подключений четыре, и как их распределить между телефоном, компьютером и телевизором, решаете вы.
После перезагрузки подключение не поднимается само
Значит автозапуск не настроен либо настроен не там. Графическое приложение добавляется в автозапуск рабочего стола, служба — юнитом systemd. Для пользовательского юнита не забудьте про режим постоянного пользователя: без него служба стартует только после вашего входа в систему и гаснет при выходе.
Отдельно проверьте, что клиент стартует уже подключённым: есть настройка «подключаться при запуске», и без неё программа честно поднимается, но сидит в отключённом состоянии.
Ключ для подключения на Linux
Сам клиент бесплатный — платный только доступ к серверам, то есть та самая ссылка-подписка. Она приходит на почту за минуту и вставляется в приложение сразу после установки пакета.
- Одна строка на все системы: Linux, Windows, macOS, телефон и приставка — до четырёх подключений сразу.
- Работает и с родным Happ, и с любым другим клиентом, понимающим VLESS.
- Несколько локаций внутри подписки, переключение без доплат и без нового ключа.
- Оплата разовая за выбранный срок, карта не сохраняется, автопродления нет.