Запустите свой VPN на оффшорном VPS
Коммерческие VPN просят доверять политике отсутствия логов, написанной их маркетинговым отделом. Ваш собственный VPS логирует только то, что вы настроили. Вот полная настройка WireGuard — и честный список компромиссов.
Почему self-hosted лучше коммерческого VPN
«Отсутствие логов» у коммерческого VPN — это политика. Отсутствие логов на вашем VPS — это архитектура. Эта разница важнее любого аудиторского значка:
- VPN-провайдер видит всё по определению. Трафик тысяч пользователей завершается на серверах, которые компания полностью контролирует. Закрытое постановление плюс тихое изменение политики логирования невидимы для вас — и такое уже случалось, у провайдеров, о которых вы слышали.
- На своём VPS вы контролируете весь стек. Ваш sshd, ваш диск, ваша конфигурация WireGuard. Мы не запускаем ничего внутри вашей гостевой системы и не храним журналов активности или подключений на сетевой стороне. Мы не видим внутрь вашего VPS; VPN-компания определяется тем, что видит внутрь своего туннеля.
- Юрисдикция работает на вас. Ваша точка выхода находится там, где вы её развернули — вне разведывательных альянсов, если выберете такую локацию, и подчиняется судам юрисдикции хостинга, а не стране регистрации VPN-компании.
И честная обратная сторона: self-hosted VPN имеет выделенный IP, который принадлежит только вам. Сайты не пометят его как VPN (реальное улучшение качества жизни), но весь ваш трафик идёт с одного адреса — вы не растворяетесь в толпе из тысяч. Если нужно скрыться в толпе — используйте Tor. Если нужна надёжная инфраструктура — ничто не заменит сервер, который вы контролируете.
Что мы собираем
Телефон и ноутбук → туннель WireGuard → SV-Pro в выбранной локации → открытый интернет. IPv4 forwarding с NAT на сервере, full-tunnel маршрутизация на клиентах (0.0.0.0/0), DNS через 9.9.9.9. Пример IP сервера: 185.220.101.14 — подставьте свой. Базовая ОС — Debian 13; если вы ещё не укрепили сервер, сначала пройдите чек-лист на 30 минут , затем возвращайтесь.
Настройка сервера на Debian 13
Установка и генерация ключей
apt update && apt install -y wireguard qrencode
cd /etc/wireguard
umask 077
# server keypair
wg genkey | tee server.key | wg pubkey > server.pub
# one keypair per client device (laptop shown; repeat for phone)
wg genkey | tee laptop.key | wg pubkey > laptop.pub
Генерация клиентских ключей на сервере допустима для первой настройки, так как конфиги всё равно передаются по SSH. Для более строгой гигиены генерируйте ключи на каждом устройстве и вставляйте в конфиг сервера только публичные ключи.
Пишем wg0.conf
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# laptop
[Peer]
PublicKey = <contents of laptop.pub>
AllowedIPs = 10.10.0.2/32
# phone — repeat the block with 10.10.0.3/32
Проверьте имя uplink-интерфейса командой ip route | grep default — на образах VPSRento это eth0, но если у вас другое, поправьте строки MASQUERADE.
Включаем forwarding и запускаем
# turn on IPv4 forwarding, persist across reboots
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf
# firewall: one UDP port, nothing else
ufw allow 51820/udp comment 'WireGuard'
# bring it up, now and on boot
systemctl enable --now wg-quick@wg0
wg show
wg show должен показать интерфейс, порт прослушивания и ваших пиров. Строк handshake пока нет — они появятся, когда клиент подключится.
Конфигурация клиента
На ноутбуке — laptop.conf:
[Interface]
PrivateKey = <contents of laptop.key>
Address = 10.10.0.2/32
DNS = 9.9.9.9
[Peer]
PublicKey = <contents of server.pub>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 185.220.101.14:51820
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 маршрутизирует весь трафик через туннель — позже можно переключить на split tunnel, если понадобится. PersistentKeepalive поддерживает соединение через домашний NAT. Для телефона ничего не вводите: сгенерируйте файл конфигурации телефона на сервере и отобразите его как QR-код в терминале:
# prints a scannable QR in the terminal — scan it with the WireGuard app
qrencode -t ansiutf8 < phone.conf
Активируйте, затем проверьте с любого клиента: curl ifconfig.me должен вернуть IP вашего VPS, а тест на утечку DNS должен показать оператора 9.9.9.9 — не вашего провайдера.
Замечания по производительности
WireGuard работает в ядре и использует ChaCha20 — на узлах AMD EPYC один туннель реально передаёт 600–900 Мбит/с через NAT, то есть насыщает порт задолго до того, как нагрузит процессор. Узким местом никогда не является шифр; это условия по пропускной способности в тарифе. VPN — это чистый трафик: каждый скачанный гигабайт считается один раз на входе и один раз на выходе. На тарифах с лимитом трафика эта арифметика важна. На SV-Pro — $19.99/мес, безлимит на 1 Гбит/с — не имеет, поэтому SV-Pro мы рекомендуем для сборки VPN. Один клиент держит всю семью на одном SV-Pro в Амстердаме и до сих пор не упёрся в потолок.
Мультихоп: вход в Амстердаме, выход в Рейкьявике
Для второго слоя соедините два VPS в разных юрисдикциях. Входной узел в Нидерландах (низкая задержка до вас), туннель WireGuard между серверами, выходной узел в Исландии (юрисдикция, из которой вы хотите, чтобы исходил трафик). Ваши устройства видят одну точку в Амстердаме; интернет видит IP в Рейкьявике; входной узел видит только шифротекст. Механически это те же конфиги, что вы уже написали, дважды — второй wg интерфейс на входном узле, чей маршрут по умолчанию указывает на выходной туннель. Цена — примерно 40–60 мс дополнительной задержки и ещё один $5.99–6.89 VPS. Это оправдано, когда у вашей модели угроз есть бюджет; декорация, когда нет.
Честные ограничения
- Теперь вы оператор. Обновления, ротация ключей и аптайм — на вас. unattended-upgrades и чек-лист по усилению покрывают большую часть; остальное — редкий apt upgrade по воскресеньям.
- Один IP — одна личность. Наблюдатели могут коррелировать всё, что выходит с вашего адреса. Когда это важно, переразверните в другом месте — через 55 секунд у вас свежий выход и свежий IP, проверенный по 40+ чёрным спискам.
- VPS — это не Tor. Эта настройка защищает вас от провайдера, от враждебного Wi-Fi и от VPN-компаний. Против государственного противника, наблюдающего за обоими концами туннеля, существует корреляция по времени. Знайте, в каком бою вы участвуете.