Как поднять персональный VPN — актуализация 2026
Как поднять персональный VPN
Архивное переиздание с актуализацией. Оригинал опубликован на Habr (≈2025), автор — неизвестен. оригинал доступен на Habr по состоянию на ноябрь 2026. Ниже — редакция ноября 2026: что работает сейчас, что изменилось и как правильно повторить рецепт сегодня. Полный текст оригинала — в конце, без купюр.
TL;DR — версия 2026
Теория «VPN vs Proxy vs Tor» не изменилась с 2019 года; изменился выбор: в 2026 для РФ — AmneziaWG или VLESS+REALITY, BYE-DPI для лёгких случаев, и никогда — «бесплатный VPN» из стора.
Оригинал — лучший разбор «что вообще есть что» своего времени. Картинка не поменялась: прокси — это «только веб, без шифрования выше уровня», VPN — «весь трафик, L3-туннель», Tor — «луковая цепочка, медленно, но анонимно». Изменился контекст: ТСПУ (DPI-боксы) стоят у всех крупных российских провайдеров и умеют резать VPN-хендшейки WireGuard, OpenVPN и «голый» Shadowsocks, в 2026 году вступили в силу поправки о «поиске экстремистских материалов», по которым поисковики и мессенджеры обязаны скрывать доступ к запрещённому, а раздача инструкций по обходу начинает приравниваться к «пропаганде средств обхода» — и выбор «какой VPN поднять себе» стал вопросом выживания канала, а не вкуса.
Статус оригинала
- URL: https://habr.com/ru/articles/898154/
- Статус на Habr: ЖИВА
- Картинки: 4/4 сохранено локально
Выбор схемы под задачу (ноябрь 2026)
- «Открыть заблокированный сайт» → ByeDPI/Zapret/SpoofDPI (без VPN вообще);
- «YouTube не тормозит» → то же + выбор провайдера, где ТСПУ мягче;
- «Личный VPN на все случаи» → AmneziaWG на своём VPS (просто) или VLESS+REALITY (маскировка 5-го уровня);
- «Анонимно почитать» → Tor с Snowflake;
- «Корпоративный удалённый доступ» → OpenVPN/TLS или Headscale/Tailscale — вне этой войны;
- «Смартфон» → AmneziaVPN/Hiddify self-hosted.
Про что в 2026 думать обязательно (чего не было в оригинале)
- утечки DNS: туннель без своего резолвера = «туда же, только с флагом»;
- IPv6-обход: у части провайдеров v6 не фильтруется — и это и выход, и дыра;
- kill switch: WireGuard
AllowedIPs = 0.0.0.0/0+ fw, иначе при обрыве трафик уходит напрямую; - юрридикация VPS: сервер в РФ = читать чужие письма; Нидерланды/Финляндия/Германия — норм по латентности;
- MTU/фрагментация: GSO/CDN-маршруты любят ломать большие пакеты — 1280 спасает.
Иллюстрации из оригинала

Что изменилось с ≈2025 года
- PPTP/L2TP-разделы устарели навсегда
- появились протоколы маскировки (Reality, AWG), которых в оригинале не существовало
- у провайдеров появились ТСПУ и «замедлители» отдельных сервисов
- VPN-обзоры и гайды с российских сайтов удаляются — сохраняйте локально
Чек-лист 2026
- понимать, что именно вы обходите: IP-блок, DPI, SNI или geo
- выбрать схему по таблице выше
- свой DNS внутри туннеля
- kill switch на клиенте
- копия гайдов — в офлайн-архив
Вердикт
Как учебник «что такое VPN» статья не устареет никогда. Как практический гайд — замените раздел выбора протокола на таблицу 2026 выше, и это снова лучшая вводная на русском языке.
ОРИГИНАЛ СТАТЬИ (без изменений)
Как поднять свой VPN?
Зачем я вообще решил сделать свой VPN? 1. Я хочу быть уверен, что никто не пишет логи и не знает куда и что я отправил. 2. Я могу пользоваться ВПН без ограничений на количество устройств, скорости и объема траффика. 3. Если скинуться группой, то выйдет дешевле.
Что же, приступим к запуску персонального VPN. Расскажу как это делал я:
[]
Для начала нам нужен какой-нибудь хостинг с локацией, которую мы хотим. Например, можно купить сервер на aeza.net. Берем виртуальную машину на Ubuntu.
Дальше нам нужно зайти на эту машину и настроить ее. Обычно на хостингах нам будет дан ip сервера и пароль от root. Заходим по ssh
ssh root@<ip>
Тут у нас попросит пароль, копируем и вставляем его (пароль не будет отображаться при вставке, не будет даже звездочек, это нормально)
Первым делом я бы настроил доступ к машине и какой-нибудь фаервол. Создадим своего юзера, под которым будем заходить на машину в будущем:
useradd -G root -m diphantxm -s /bin/bash
Запретим вход на машину под рутом, разрешим аутентификацию по публичному ключу и запретим вход по паролю:
sed -i "s/PermitRootLogin yes/PermitRootLogin no/g" /etc/ssh/sshd_config
sed -i "s/PubkeyAuthentication no/PubkeyAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config
Настроим фаервольные правила. По умолчанию запретим весь входящий траффик, откроем порт для подключения по ssh и порт 443 для нашего приложения.
ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow 22
ufw allow 443
ufw enable
ufw reload
Дальше нам нужен инструмент, который будет роутить наш траффик. Самые популярные из них это v2ray или xray, поэтому будем использовать их. Скачиваем:
wget https://github.com/XTLS/Xray-core/releases/download/v25.3.6/Xray-linux-64.zip
unzip Xray-linux-64.zip
chmod +x xray
mv xray /usr/bin/xray
Теперь для удобства создадим systemd сервис. Для этого можно просто скопировать файл сервиса и положить его в /lib/systemd/system/xray.service
echo "[Unit]
Description=XRay Service
After=network.target nss-lookup.target
[Service]
User=root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/usr/bin/xray run -config /etc/xray/config.json
Restart=on-failure
RestartPreventExitStatus=23
[Install]
WantedBy=multi-user.target"
Вместо TLS будем использовать Reality, это так же безопасно, но не требует сертификатов. Поэтому сгенерируем приватный и публичный ключи, сделать это можно при помощи самого Xray:
xray x25519
Приватный ключ нужен для настройки нашей тулзы, а публичный понадобится для подключения клиентам до нашего сервера.
Для правильной работы Xray напишем конфиг. Тут мы должны указать какие клиенты могут к нам подключиться, по какому порту, куда и как их роутить и прочее. Ниже минимальный конфиг для начала работы. В нем нужно указать id клиента в формате uuid v4 и только клиенты с этим id смогут подключаться к нашему прокси.
{
"inbounds": [
{
"tag": "input",
"port": 443,
"listen": "0.0.0.0",
"protocol": "vless",
"settings": {
"clients": [
{
"id": "<СЮДА ВСТАВЛЯЕМ ЛЮБУЮ СТРОКУ ВИДУ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "github.com:443",
"privateKey": "<СЮДА ВСТАВЛЯЕМ НАШ ПРИВАТНЫЙ КЛЮЧ>",
"serverNames": ["github.com"],
"shortIds": [""],
"type": "tcp"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct",
"settings": {
"domainStrategy": "UseIP"
}
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}
Запускаем Xray:
systemctl start xray.service
Наша прокся слушает порт 443, теперь нужно к нему подключиться.
Подключиться к нему можно с любого устройства, но нужны специальные приложения:
На Android/IOS: V2Box
На Windows: V2rayN
Разберем на примере IOS:
Приложение будет выглядеть следующим образом:

Мы являемся клиентом нашего прокси сервера, поэтому нам нужно написать еще один конфиг, теперь для клиентской части. В приложении нужно нажать на + и выбрать «Add manual config», в выпавшем списке выбираем наш транспортный протокол «VLESS». Заполняем его, пример моего конфига есть ниже:


| | |
Вуаля, наш ВПН готов, можно пользоваться :)
Надеюсь моя статья была хоть немного полезна тем, кому это могло быть интересным!

Ну а если вам лень всем этим заниматься, то можно попробовать мой VPN через бота в тг: DipVPN