Готовые сценарии
Выберите задачу, скопируйте минимальную схему и замените адреса, интерфейсы и секреты своими. Примеры показывают связи параметров, а не заменяют полный конфиг.
Начните с нужного результата
| Задача | Схема | Ключевой параметр |
|---|---|---|
| Весь трафик через публичный IP VPS | Серверный NAT + full-tunnel клиента | routing.nat.enabled + gateway |
| Открыть только NAS, камеры и сервисы дома | Точный push-маршрут без default route | route + gateway = false |
| Один сервер, разные режимы и порты | Независимые [profile:*] | bind.port + уникальные TUN/pool |
| Основной TCP и запасной UDP-канал | Два профиля и две ссылки | profiles + ручной выбор |
| Разделить группы ресурсов по IP | Локальные include/exclude или файл | route_file / exclude |
| Переживать сон и смену Wi‑Fi/LTE | Реконнект + автоматический MTU | reconnect + mtu = 0 |
| Связать две площадки | Site-to-site без NAT | client_subnet + forward |
route сообщает клиенту, куда идти через Qeli; allowed_networks ограничивает, куда пользователь вправе идти; client_subnet регистрирует сеть, находящуюся за клиентом. Эти параметры не взаимозаменяемы.VPS как full-tunnel VPN
Сервер выпускает трафик из пула Qeli через свой WAN, а клиент устанавливает default route в туннель. DNS-прокси сервера не даёт резолвингу остаться на физической сети.
routing.nat.enabled = true
routing.forward_private = true
dns.enabled = true
dns.listen = 10.9.0.1
dns.upstream = 1.1.1.1
gateway = true
kill_switch = true
dns = tunnel
mtu = 0
routing.nat.interface = ens3. На Android kill switch требует системных Always-on VPN и «Блокировать без VPN»; на iOS его роль выполняет VPN On Demand.Только доступ к домашней сети
Клиент не меняет default route и получает только маршрут домашней LAN. Qeli-сервер пересылает пакеты без подмены адресов, а домашний роутер направляет ответы в VPN-пул через LAN-адрес Qeli-сервера. Так сохраняются реальные адреса клиентов и работает обычная двусторонняя маршрутизация.
routing.nat.enabled = false
routing.forward_private = true
route = 192.168.50.0/24 gateway=10.9.0.1 metric=100
[user:home]
allowed_networks = 192.168.50.0/24
[qeli]
gateway = false
# pool=10.9.0.0/24; Qeli-LAN=192.168.50.2
sudo ip route replace 10.9.0.0/24 via 192.168.50.2
192.168.50.2 и на основном домашнем роутере создайте маршрут: сеть назначения 10.9.0.0/24 (pool.cidr), следующий узел 192.168.50.2. Команда выше показывает Linux-вариант; сохраните маршрут штатным способом вашей ОС или роутера.routing.nat.enabled = true и указать LAN-интерфейс. При этом устройства LAN перестанут видеть реальные VPN-адреса клиентов, что ухудшает журналирование и правила доступа.Сервер с несколькими профилями и портами
Каждый профиль — отдельный listener со своим транспортом, портом, TUN и пулом. Пользователи глобальны, но поле profiles может разрешить им только нужные точки входа.
[profile:reality-tls]
bind.port = 443
bind.transport = tcp
tun.name = vpn0
tun.address = 10.9.0.1
pool.cidr = 10.9.0.0/24
obf.mode = reality-tls
[profile:udp-quic]
bind.port = 8449
bind.transport = udp
tun.name = vpn7
tun.address = 10.9.7.1
pool.cidr = 10.9.7.0/24
obf.mode = fake-tls
obf.quic.enabled = true
short_id и остальные параметры маскировки. Возьмите полный server-multiprofile.conf, удалите ненужные профили и откройте каждый TCP/UDP-порт отдельно в firewall.reality-tls как основной, udp-quic как резервный
Разрешите одному пользователю оба серверных профиля и выпустите две ссылки. Сохраните их на клиенте как «Основной» и «Резервный»: TCP/reality-tls обычно предсказуемее, UDP/QUIC может быть быстрее на хорошем UDP-пути.
[user:alice]
profiles = reality-tls, udp-quic
sudo qeli share-link alice --host vpn.example.com:443 --profile reality-tls
sudo qeli share-link alice --host vpn.example.com:8449 --profile udp-quic
Раздельная маршрутизация российских и зарубежных ресурсов
Qeli принимает IP/CIDR, а не домены и названия стран. Поэтому географическое разделение строится на поддерживаемом вами списке сетей и остаётся приблизительным: CDN, anycast и адреса сервисов меняются.
[qeli]
gateway = false
route_file = C:\Qeli\foreign-cidrs.txt
# one IPv4 address or CIDR per line
203.0.113.0/24
198.51.100.7
[qeli]
gateway = true
exclude = 203.0.113.0/24, 198.51.100.7/32
route_file применяется только Windows/macOS и добавляет split-маршруты. В Linux CLI и мобильных клиентах используйте include/exclude или server push с повторяемым route. Примерные сети выше зарезервированы для документации — подставьте проверенный актуальный список.Мобильная сеть и нестабильный Wi‑Fi
Оставьте бесконечный реконнект и автоматический MTU. Для UDP активный MTU probe подбирает путь безопаснее ручного значения; жёстко фиксировать socket buffers без измерений не стоит.
reconnect = true
reconnect_retries = -1
reconnect_base_delay = 1
reconnect_max_delay = 60
timeout = 30
mtu = 0
mtu_probe = true
roaming=auto. При смене Wi‑Fi/LTE Qeli сначала пытается перенести текущую сессию и сохраняет TUN, маршруты и lease; если платформа, сервер или transport не поддерживают полный контракт, выполняется безопасный reconnect. required используйте только для полностью обновлённого парка.Site-to-site: две локальные сети
Два Linux-клиента работают как маршрутизаторы площадок. Сервер регистрирует каждую LAN за соответствующим пользователем и разрешает пересылку между клиентами без NAT.
[profile:sites]
routing.client_to_client = true
routing.forward_private = true
routing.nat.enabled = false
[user:branch-a]
client_subnet = 192.168.50.0/24
route = 192.168.60.0/24 gateway=10.9.0.1
[user:branch-b]
client_subnet = 192.168.60.0/24
route = 192.168.50.0/24 gateway=10.9.0.1
gateway = false
forward = true
192.168.60.0/24 через Qeli-клиент A, на площадке B — 192.168.50.0/24 через клиент B. Подсети площадок и VPN-пулы не должны пересекаться.Ещё полезные готовые схемы
Для команды или семьи разделите доступ через profiles, allowed_networks, max_sessions и группы. Не создавайте один общий пароль для всех устройств: отдельные пользователи упрощают отзыв доступа и аудит.
Универсальная проверка сценария
sudo qeli check-config --config /etc/qeli/server.conf
qeli check-config --client --config /etc/qeli/client.conf
sudo systemctl restart qeli
sudo journalctl -u qeli -n 100 --no-pager