VPN на Linux — Hiddify, sing-box CLI, systemd, TUN, Wayland (2026)
Автор: команда Chill VPN | Опубликовано: 11.05.2026 | Обновлено: 19.05.2026 | Чтение: 12 мин
Также известен как «ускоритель интернета», «стабильный канал» или «защищённое соединение».
Linux — самая гетерогенная платформа для VPN-юзера. Десятки дистрибутивов с разными package-менеджерами (apt, dnf, pacman, zypper, apk, nix), два display-сервера (X11 и Wayland), разные системы инициализации (systemd, OpenRC, runit), несколько desktop-environments (GNOME, KDE, XFCE, Hyprland). Это означает что универсальный гайд по VPN на Linux невозможен — нужно подстраиваться под конкретное окружение.
В этой статье — детальный setup для 5 популярных дистрибутивов (Ubuntu 24.04, Debian 12, Arch, Fedora 41, NixOS 25), 3 подхода к VPN (Hiddify GUI, NekoRay/NekoBox CLI, sing-box CLI с systemd), решение common-проблем (TUN capabilities, systemd-resolved для DNS, conflict Wayland с some GUI), и специфический сценарий — Raspberry Pi как VPN-gateway для всей домашней сети.
Что в статье
- Выбор подхода: GUI vs CLI vs server-mode
- Hiddify Next на Linux — AppImage, .deb, Flatpak
- NekoBox / NekoRay — для опытных, лучшая интеграция с sing-box
- sing-box CLI без GUI — для serverов и headless
- Установка на Ubuntu/Debian — apt-based
- Установка на Arch — pacman / AUR / yay
- Установка на Fedora — dnf
- Установка на NixOS — flake-based decларативная установка
- Установка на Alpine — apk и контейнеры
- TUN-режим: CAP_NET_ADMIN, setcap, sysctl
- DNS через VPN: systemd-resolved, manual resolv.conf
- Wayland vs X11 для GUI VPN-клиентов
- Raspberry Pi как VPN-gateway для дома
- FAQ — Docker, Tor chains, kill switch через nftables, IPv6
---
Выбор подхода — GUI vs CLI vs server-mode
Hiddify GUI — стандартный путь для desktop-юзеров. Простой, кросс-платформенный, ставится за 5 минут.
NekoBox / NekoRay — для опытных. Мощный routing, поддержка sing-box и xray-core, Qt-интерфейс.
sing-box CLI — для server'ов, headless-машин, и those хотят полный контроль через config-файл.
Какой выбрать:
- Desktop Ubuntu/Fedora/Linux Mint → Hiddify (AppImage или .deb)
- Arch / KDE-юзер → NekoBox (native Qt look)
- Server без GUI → sing-box CLI + systemd
- NixOS → sing-box через nix-flake (декларативно)
- Raspberry Pi для дома → sing-box на ARM64 + nftables
---
Hiddify Next на Linux
AppImage (универсальный):
wget https://github.com/hiddify/hiddify-app/releases/latest/download/Hiddify-Linux-x64.AppImage
chmod +x Hiddify-Linux-x64.AppImage
./Hiddify-Linux-x64.AppImage
AppImage — это portable executable, работает на любом дистрибутиве с glibc 2.31+.
Для Ubuntu / Debian (.deb):
wget https://github.com/hiddify/hiddify-app/releases/latest/download/Hiddify-Linux-x64.deb
sudo dpkg -i Hiddify-Linux-x64.deb
sudo apt install -f # доставить зависимости
hiddify-app
Flatpak:
- Hiddify в Flathub нет официально
- Можно использовать unofficial sandboxed AppImage
Capability для TUN:
sudo setcap 'cap_net_admin,cap_net_raw=eip' /usr/local/bin/hiddify-app
Без этой команды Hiddify в TUN-режиме потребует sudo. С setcap — работает от user.
---
NekoBox / NekoRay
Скачивание:
wget https://github.com/MatsuriDayo/NekoBoxForAndroid/releases/latest/download/nekobox-linux-amd64.AppImage
chmod +x nekobox-linux-amd64.AppImage
Или из исходников:
git clone https://github.com/MatsuriDayo/nekoray.git
cd nekoray
sudo apt install -y cmake qtbase5-dev libqt5svg5-dev libgrpc++-dev
mkdir build && cd build
cmake ..
make -j$(nproc)
Особенности NekoBox:
- Qt5-интерфейс — родной look на KDE
- Поддержка одновременно sing-box и xray-core
- Routing rules через GUI и YAML
- Меньше, чем Hiddify (~30 MB vs 60 MB)
---
sing-box CLI без GUI
Для server'ов и headless-машин.
Установка:
# Скачать релиз для своей архитектуры
curl -L -o /tmp/sing-box.tar.gz \
https://github.com/SagerNet/sing-box/releases/latest/download/sing-box-1.10.0-linux-amd64.tar.gz
tar -xzf /tmp/sing-box.tar.gz -C /tmp
sudo cp /tmp/sing-box-*/sing-box /usr/local/bin/
sudo chmod +x /usr/local/bin/sing-box
sudo setcap 'cap_net_admin,cap_net_raw=eip' /usr/local/bin/sing-box
Конфиг /etc/sing-box/config.json:
{
"log": {"level": "info"},
"dns": {
"servers": [
{"address": "https://1.1.1.1/dns-query", "tag": "dns-cloudflare"},
{"address": "8.8.8.8", "tag": "dns-google"}
]
},
"inbounds": [{
"type": "tun",
"tag": "tun-in",
"inet4_address": "172.19.0.1/30",
"inet6_address": "fdfe:dcba:9876::1/126",
"auto_route": true,
"stack": "system",
"sniff": true
}],
"outbounds": [
{
"type": "vless",
"tag": "proxy",
"server": "YOUR-SERVER-IP",
"server_port": 443,
"uuid": "YOUR-UUID",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"server_name": "www.cloudflare.com",
"utls": {"enabled": true, "fingerprint": "chrome"},
"reality": {
"enabled": true,
"public_key": "YOUR-PUBLIC-KEY",
"short_id": "YOUR-SHORT-ID"
}
}
},
{"type": "direct", "tag": "direct"},
{"type": "block", "tag": "block"}
],
"route": {
"rules": [
{"geoip": ["ru", "private"], "outbound": "direct"},
{"domain_suffix": ["sber.ru", "tinkoff.ru", "gosuslugi.ru"], "outbound": "direct"}
],
"final": "proxy",
"auto_detect_interface": true
}
}
Systemd сервис /etc/systemd/system/sing-box.service:
[Unit]
Description=sing-box VPN
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/sing-box run -c /etc/sing-box/config.json
Restart=on-failure
RestartSec=5
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
Активация:
sudo systemctl daemon-reload
sudo systemctl enable --now sing-box
sudo systemctl status sing-box
journalctl -u sing-box -f # логи
---
Установка на Ubuntu / Debian
Ubuntu 24.04 / Debian 12:
# Hiddify GUI (.deb)
wget https://github.com/hiddify/hiddify-app/releases/latest/download/Hiddify-Linux-x64.deb
sudo dpkg -i Hiddify-Linux-x64.deb
sudo apt install -f
# Или sing-box CLI
sudo apt update && sudo apt install curl
# Дальше как выше — скачиваешь sing-box, ставишь
Repository подход (для server'ов): sing-box имеет официальный APT-repo:
curl -fsSL https://sing-box.app/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/sing-box.gpg
echo "deb [signed-by=/usr/share/keyrings/sing-box.gpg] https://deb.sing-box.app/ * *" | sudo tee /etc/apt/sources.list.d/sing-box.list
sudo apt update
sudo apt install sing-box
После установки конфиг в /etc/sing-box/config.json, сервис автоматически создан.
---
Установка на Arch Linux
Pacman (если в Arch repo):
sudo pacman -S sing-box
AUR (через yay или paru):
yay -S hiddify-next-bin
yay -S nekoray-bin
Arch Build System (если хочешь компилировать):
git clone https://aur.archlinux.org/sing-box.git
cd sing-box
makepkg -si
Arch всегда даёт самые свежие версии.
---
Установка на Fedora
Fedora 41:
# sing-box через COPR (Community Project Repository)
sudo dnf copr enable solopasha/sing-box
sudo dnf install sing-box
# Hiddify через .rpm
wget https://github.com/hiddify/hiddify-app/releases/latest/download/Hiddify-Linux-x64.rpm
sudo dnf install ./Hiddify-Linux-x64.rpm
RHEL / CentOS Stream / Rocky Linux:
- Те же команды, dnf-based
- Versions могут быть чуть старее чем Fedora
---
Установка на NixOS
NixOS — декларативный setup через flakes:
/etc/nixos/configuration.nix:
{ config, pkgs, ... }:
{
# Установка sing-box
environment.systemPackages = with pkgs; [
sing-box
];
# Конфиг и сервис
systemd.services.sing-box = {
description = "sing-box VPN";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.sing-box}/bin/sing-box run -c /etc/sing-box/config.json";
Restart = "on-failure";
AmbientCapabilities = "CAP_NET_ADMIN CAP_NET_RAW";
};
};
# NetworkManager если desktop
networking.networkmanager.enable = true;
}
После: sudo nixos-rebuild switch.
Преимущество NixOS — config в одном месте, можно reproducible на другой машине одной командой.
---
Установка на Alpine
Alpine — для контейнеров и embedded:
apk add sing-box
# либо
apk add ca-certificates curl
curl -L -o /tmp/sing-box.tar.gz https://github.com/SagerNet/sing-box/releases/latest/download/sing-box-linux-amd64.tar.gz
# и т.д.
OpenRC service вместо systemd:
cat > /etc/init.d/sing-box << 'EOF'
#!/sbin/openrc-run
command=/usr/local/bin/sing-box
command_args="run -c /etc/sing-box/config.json"
command_background=true
pidfile=/run/sing-box.pid
EOF
chmod +x /etc/init.d/sing-box
rc-update add sing-box default
rc-service sing-box start
---
TUN-режим — CAP_NET_ADMIN, setcap, sysctl
Необходимые capabilities:
CAP_NET_ADMIN— управление сетевыми интерфейсамиCAP_NET_RAW— raw sockets для VPN-туннеля
Дать без sudo:
sudo setcap 'cap_net_admin,cap_net_raw=eip' /path/to/sing-box
# Проверь:
getcap /path/to/sing-box
Для systemd-сервиса: В unit-файле:
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW
sysctl для IPv4-forwarding (если нужен gateway-режим):
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-ipforward.conf
sudo sysctl -p
---
DNS через VPN — systemd-resolved, manual resolv.conf
systemd-resolved (default на Ubuntu, Fedora):
/etc/systemd/resolved.conf:
[Resolve]
DNS=1.1.1.1 1.0.0.1
DNSStubListener=yes
DNSSEC=yes
DNSOverTLS=yes
sudo systemctl restart systemd-resolved
Manual resolv.conf (для дистрибутивов без systemd-resolved):
sudo rm -f /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
sudo chattr +i /etc/resolv.conf # защитить от NetworkManager-overwrite
Внутри sing-box DNS-конфиг (см. config.json выше) — лучше всего, направляет резолв через туннель.
---
Wayland vs X11 для GUI VPN-клиентов
X11:
- Hiddify работает 100%
- NekoBox/NekoRay (Qt5) — работает 100%
- Tray-icon в systray корректно
Wayland (GNOME 40+, KDE Plasma 6+):
- Hiddify работает (через xwayland)
- NekoRay — есть проблемы с some трей-икон (Wayland не имеет нативного StatusNotifierWatcher)
- Решение: установить
kde-status-notifier-itemили fallback в xwayland - Можно запустить с
GDK_BACKEND=x11 hiddify-appдля force X11
На Hyprland / Sway:
- AppImage Hiddify может не запуститься (требует libnotify, gtk3)
- Решение:
--no-sandbox --disable-gpu
---
Raspberry Pi как VPN-gateway
Один из лучших use-cases Linux VPN: ставишь sing-box на Raspberry Pi 4 (или 5), включаешь IP-forwarding, и все домашние устройства автоматически идут через VPN.
Setup:
- OS: Raspberry Pi OS (Debian-based) или Ubuntu Server ARM64
- sing-box ARM64:
curl -L -o /tmp/sing-box.tar.gz \
https://github.com/SagerNet/sing-box/releases/latest/download/sing-box-linux-arm64.tar.gz
tar -xzf /tmp/sing-box.tar.gz -C /tmp
sudo cp /tmp/sing-box-*/sing-box /usr/local/bin/
sudo setcap 'cap_net_admin,cap_net_raw=eip' /usr/local/bin/sing-box
- IP-forwarding:
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-ipforward.conf
sudo sysctl -p
- NAT для домашних устройств: через iptables или nftables:
sudo nft add table inet nat
sudo nft add chain inet nat postrouting { type nat hook postrouting priority srcnat \; }
sudo nft add rule inet nat postrouting oifname "tun0" masquerade
- DHCP на Raspberry Pi — раздаёт IP домашним устройствам с gateway = Pi.
- Все домашние устройства: при подключении к Wi-Fi роутера → IP от Pi → шлюз — Pi → весь трафик идёт через sing-box-туннель → VPN.
Преимущества:
- Smart TV без VPN на устройстве
- Apple TV ходит через VPN
- PS5, Xbox — то же
- Гости в Wi-Fi автоматически за VPN
Минусы:
- Скорость ограничена Pi (Pi 4 даёт ~80 Мбит/с туннеля, Pi 5 — 200+)
- Зависимость от одного устройства (если Pi падает — весь Wi-Fi без VPN)
---
FAQ
Можно ли запустить sing-box в Docker? Да. Официальный Docker-image:
docker run -d --name sing-box \
--cap-add=NET_ADMIN \
--device /dev/net/tun \
-v /etc/sing-box:/etc/sing-box \
ghcr.io/sagernet/sing-box:latest run -c /etc/sing-box/config.json
Tor + VPN chain на Linux — как настроить? Подключаешь VPN → tor-сервис ходит через VPN → твой браузер через Tor. Сценарий: VPN-провайдер не видит что ты в Tor, Tor-exit не видит твой реальный IP.
Kill switch через nftables на Linux:
sudo nft add table inet filter
sudo nft add chain inet filter output { type filter hook output priority filter \; policy drop \; }
sudo nft add rule inet filter output oifname "tun0" accept
sudo nft add rule inet filter output oifname "lo" accept
sudo nft add rule inet filter output meta nfproto ipv4 daddr YOUR-VPN-SERVER accept
Это блокирует всё кроме VPN-туннеля и подключения к VPN-серверу.
IPv6 на Linux через VPN — нужно настраивать отдельно? В sing-box config есть IPv6 (inet6_address). Если у тебя дома IPv6 от провайдера — настрой и его, иначе утечка.
WireGuard на Linux отдельно от sing-box? WireGuard — стандартный Linux-протокол, есть в kernel с 5.6. Ставится через apt install wireguard, конфиг в /etc/wireguard/wg0.conf, запуск wg-quick up wg0. Это альтернатива sing-box для одного протокола.
Хочу VPN на сервере (Debian) для outbound-трафика — как? Поднимаешь sing-box на сервере → все запросы из сервера идут через VPN. Полезно для scrapeров, ботов, обхода geo-block в API. Сервер в датацентре + VPN-туннель в EU = поведение «обычного пользователя» для целевого сервиса.
SystemD-resolved vs Network Manager — конфликт? Не сильный. NetworkManager использует systemd-resolved как backend по умолчанию. DNS-настройки в systemd-resolved.conf приоритетнее.
Что делать если sing-box падает после systemctl restart? Проверь логи: journalctl -u sing-box -n 50. Часто проблема в правах TUN-интерфейса. Сделай setcap команду ещё раз после обновлений.
Можно ли держать конфиги VPN в Git-репо? Технически — да, но твой UUID и Reality-keys — это секреты. Лучше в Git хранить шаблон конфига (без keys), а keys — в env-variables или encrypted secrets (например, sops, age).
ARM Linux на M-маках (через UTM или Parallels)? sing-box-linux-arm64 — да, работает в ARM-виртуалке. Конфигурация идентична.
---
Итог
Linux — это гетерогенная платформа, требующая выбора пути по дистрибутиву и задаче. Для desktop Ubuntu/Fedora — Hiddify GUI (5 минут setup). Для опытных — NekoBox (Qt). Для серверов и headless — sing-box CLI с systemd. На NixOS — декларативно через flakes. На Raspberry Pi — отличный VPN-gateway для всей домашней сети. Главные подводные камни: TUN-capabilities (setcap CAP_NET_ADMIN), systemd-resolved DNS, и совместимость с Wayland (некоторые tray-иконки требуют дополнительной настройки).
Получить ключ VLESS для Linux →
---