на аккаунт
3 сервера
Больше трёх приватных нод на одну подписку пока не поставить.
Своя нода — это независимость от VPN-сервисов и тонкая настройка под конкретные требования и ограничения региона или провайдера. FRKN позволяет запустить свою ноду практически с минимальными знаниями сетей VPN и системного администрирования, и предоставляет свои наработки, фичи и приложение каждому — и всё это бесплатно.
на аккаунт
Больше трёх приватных нод на одну подписку пока не поставить.
после установки
Если нужно больше коннекшенов — создаются в личном кабинете.
на одну ноду
Докупи адреса на тот же VPS. Приложение само обойдёт блокировку РКН: если один адрес заблокируют, Dopamine переберёт остальные и возьмёт рабочий.
Нужен обычный VPS:
Получи одноразовый токен вида inst_… в личном
кабинете, кнопка «Своя нода». Токен живёт около часа.
Зайди на машину: ssh root@ТВОЙ_IP. Вставь команду,
подставив свой токен вместо inst_YOUR_TOKEN:
curl -fsSL https://frkn.org/install | bash -s -- --token inst_YOUR_TOKEN
Установка займёт несколько минут (пакеты, ядро AWG, бинарник fnode-agent). В конце не должно быть красных ошибок. Проверка:
systemctl status fnode --no-pager
Должно быть active (running). В системе сервис
называется fnode — это и есть fnode-agent. Если упало —
скопируй вывод команды и пришли в поддержку.
Нужен обычный VPS:
Получи одноразовый токен вида inst_… в личном
кабинете, кнопка «Своя нода». Токен живёт около часа.
Та же, что на Ubuntu. Зайди на машину:
ssh root@ТВОЙ_IP. Вставь команду, подставив свой
токен вместо inst_YOUR_TOKEN. AmneziaWG соберётся
из AUR — это дольше, чем apt.
curl -fsSL https://frkn.org/install | bash -s -- --token inst_YOUR_TOKEN
Установка займёт несколько минут (пакеты, ядро AWG, бинарник fnode-agent). В конце не должно быть красных ошибок. Проверка:
systemctl status fnode --no-pager
Должно быть active (running). В системе сервис
называется fnode — это и есть fnode-agent. Если упало —
скопируй вывод команды и пришли в поддержку.
full): awg0 + awg1 +
hysteria2 + fnode-agent (без WireGuard)
--profile awg
--profile wg
— интерфейс wg0, UDP 51820, сеть
10.100.0.0/16, конфиг
/opt/wireguard/wg0.conf. Повторный прогон conf не
трогает; перевыпустить ключи —
--force-wg-conf, потом полный refresh подписки.
--profile hysteria2
(нужен DNS A-запись на hostname машины)
--ips 5.6.7.8,7.8.9.10. Те, что уже висят на
машине, скрипт подхватит сам при установке. Первый в списке —
адрес с основного интерфейса. На уже стоящей ноде допиши их в
node_ips в /opt/fnode/config.toml и
сделай systemctl restart fnode
--awg-version 3.1 (дефолт) или
--awg-version 2.0. Только mobile (awg1):
--awg-mobile-version 2.0 или
--awg-mobile-version legacy — если LTE
отваливается на 3.1. Повторный прогон скрипта конфиги не
переписывает; смена версии —
--force-awg-conf, потом полный refresh подписки
на клиенте.
AmneziaWG (awg0) — для Wi‑Fi и роутеров, его понимают старые приложения.
AmneziaWG Mobile (awg1) заточен под LTE и мобильные сети: лучше коннект и качество. В старых клиентах и на роутерах Mobile может не работать.
WireGuard (--profile wg) — plain WG
без junk Amnezia: проще для роутинга и экспериментов, хуже проходит
там, где режут «голый» WireGuard.
Hysteria2 — быстрый UDP‑протокол; нужен домен с DNS A на IP этой машины (для ACME‑сертификата). Нет домена — напиши в @frkn_dev.
curl -fsSL https://frkn.org/install | bash -s -- --token inst_… --profile awg
>
curl -fsSL https://frkn.org/install | bash -s -- --token inst_… --profile wg
>
linux-lts → linux-lts-headers) и запусти
команду ещё раз.
sudo -i и снова.inst_… в
личном кабинете.
Если что-то не работает и не подключается — тут базовые советы.
Если Amnezia не коннектится — сначала проверь, что UDP вообще доходит.
UDP через netcat
AmneziaWG слушает 51820, Mobile — 8443.
Поставь netcat и отпусти порт, иначе его держит туннель:
apt-get install -y netcat-openbsdawg-quick down awg0
Для AmneziaWG Mobile — awg-quick down awg1.
nc -u -l 51820Со своего компьютера. VPN на нём выключи, иначе тест будет неточный. На macOS и Linux:
nc -u IP-ADDRESS-Твоего-сервера 51820
Напиши любую строку и нажми Enter. Например TEST и Enter.
Эта строка должна появиться в консоли сервера, где запущен netcat.
На Windows nc нет. Из PowerShell, подставив IP ноды:
$u = New-Object System.Net.Sockets.UdpClient; $b = [Text.Encoding]::ASCII.GetBytes("ping`n"); [void]$u.Send($b, $b.Length, "IP-ADDRESS-Твоего-сервера", 51820); $u.Close()
На ноде должна появиться строка ping. Тишина — UDP не
проходит. Потом верни туннель: awg-quick up awg0. Для
Mobile то же с awg1 и портом 8443.
Если строки нет — проверь так же другие порты. Иногда находится
рабочий. На сервере слушай его: nc -u -l ПОРТ (если
занят — останови то, что его держит), с компьютера шли на тот же
порт. Популярные: 443, 8443,
51820, 3000. Ещё 53,
123 и 4500 — их часто пропускают, когда
обычные VPN-порты уже режут.
Если на каком-то порту строка дошла — поставь его в
ListenPort. AmneziaWG:
/opt/amnezia/awg0.conf. Mobile:
/opt/amnezia/awg1.conf. Порт в каждом свой: один и тот
же в оба файла не ставь. Потом подними интерфейс и fnode-agent,
чтобы клиенты забрали новый порт:
awg-quick down awg0 && awg-quick up awg0 && systemctl restart fnode
Для Mobile то же с awg1. Этот udp-порт открой в файрволе.
Файрвол
ufw status
Если ufw active и портов нет:
ufw allow 51820/udp и ufw allow 8443/udp.
Команды нет — ufw не стоит, смотри iptables.
iptables -S INPUT
Ищешь DROP или REJECT на эти udp-порты. Открыть:
iptables -I INPUT -p udp --dport 51820 -j ACCEPT
и то же для 8443. Панель хостера тоже режет UDP —
открой порты и там.
Логи модуля ядра
Это дебаг-лог модуля Amnezia. В нём видно, доходят ли пакеты и в каком месте ломается подключение.
echo 'module amneziawg +p' > /sys/kernel/debug/dynamic_debug/control
dmesg -wT
Если файла нет:
mount -t debugfs none /sys/kernel/debug. Выключить:
echo 'module amneziawg -p' > /sys/kernel/debug/dynamic_debug/control.
Obfuscation: 3.1 / 2.0 / legacy
Дефолт установщика — AmneziaWG 3.1
(S1–S4, H‑ranges, I1,
RandomTrailers, DisableCookies). На части
RU LTE 3.1 не поднимается; откат mobile на 2.0
(без 3.1‑флагов) или legacy
(H1=1…H4=4, только S1/S2) обычно лечит.
Профили: Mobile / «агрессивные» сети (RU LTE) — предпочтительно
legacy или явная матрица клиент↔сервер. Desktop / Wi‑Fi — можно
оставлять 2.0/3.x. Порты mobile↔desktop без нужды не крути —
ломает кэш sub у всех клиентов; сначала меняй generation
obfuscation. Пример split: Mobile = legacy AWG + :443,
Desktop = 3.x + :51820 — осознанный split, не баг.
Чеклист, если Mobile не коннектится только с LTE:
dmesg: handshake initiation без keepalive /
stopped hearing back?
S3/S4, H‑ranges,
I1=<r…>, HPK, RandomTrailers?
→ пробовать legacy.
Откат mobile через установщик (перепишет junk — потом полный refresh подписки на клиенте):
curl -fsSL https://frkn.org/install | bash -s -- --awg-mobile-version legacy --force-awg-conf
Или руками в /opt/amnezia/awg1.conf: убери
S3/S4, I*, HPK, RandomTrailers,
поставь H1=1…H4=4. Затем:
awg-quick down awg1 && awg-quick up awg1 && systemctl restart fnode
и обнови подписку. Старый junk = Unknown message / Invalid MAC.
One-liner: если AmneziaWG Mobile не поднимается с LTE при живом Wi‑Fi / desktop / другой ноде — сначала откатить mobile obfuscation до legacy, перезапустить awg1+fnode и обновить подписку.
Логи сервиса:
journalctl -u hysteria2 -n 80 --no-pager
Домен. В /opt/hysteria2/config.yaml блок
acme.domains — это имя, на которое выпускается сертификат.
Его A-запись должна смотреть на публичный IP этой машины:
grep -A3 '^acme:' /opt/hysteria2/config.yamlgetent hosts ДОМЕН
Адрес должен совпасть с IP машины
(ip -4 route get 1.1.1.1). 127.0.0.1 значит,
что домен только в /etc/hosts — нужна настоящая DNS A.
Сертификат. На этой же машине:
echo | openssl s_client -connect 127.0.0.1:443 -servername ДОМЕН 2>/dev/null | openssl x509 -noout -subject -dates
Должны быть subject и даты. Пусто или ошибка — сертификат не получен, смотри лог выше.
Порт. Hysteria слушает 443:
ss -ulpn | grep ':443'ss -tlpn | grep ':443'
UDP 443 — сам Hysteria. TCP 443 нужен, чтобы забрать сертификат.
Пусто — сервис не встал, снова journalctl. Порт открой
и в файрволе, и в панели хостера.
Логи сервиса. В системе он называется fnode — это
fnode-agent:
journalctl -u fnode -n 80 --no-pagersystemctl is-active fnode
Нужно active. Если сервис падает и сразу поднимается —
чаще всего сломан /opt/fnode/config.toml. Первый адрес в
node_ips должен совпадать с address. После
правки: systemctl restart fnode.
Кабинет. Нода должна появиться в личном кабинете. Если нужно больше коннекшенов — создаются там же. Постоянный токен пишется после успешной регистрации:
test -f /opt/fnode/api.token && echo ok
ok — регистрация прошла. Файла нет — агент не
зарегистрировался, в кабинете его не будет. Токен
inst_… одноразовый: установщик заново не запускай,
возьми новый в кабинете.
Связь с API. Агент ходит на api.frkn.org: HTTPS и TCP
3001, 3002. Если хостер режет исходящие, в
логе ошибки соединения и ноды в кабинете нет.
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://api.frkn.org
000 или таймаут — до API не достучаться, это уже панель
хостера. Любой другой код — сеть до API есть.
Конфиги, которые агент отдаёт клиентам. Файла нет или путь в
config.toml другой — протокола в приложении не будет,
хотя сервис active:
ls /opt/amnezia/awg0.conf /opt/amnezia/awg1.conf /opt/wireguard/wg0.conf /opt/hysteria2/config.yaml
Нет файла — нормально, если этот кусок не ставили. После правки этих
файлов нужен systemctl restart fnode, иначе клиенты
останутся со старым портом и адресами.
Если что-то не получается — чат t.me/frkn_dev для помощи.