Wireguard Это инструмент для создания впн на все случаи жизни, он не очень сложно разворачивается на личном сервере и позволяет обходить блокировки и так далее.
Сервер
Советую Vultr хорошие цены, разные страны, принимают крипту. Вот купон на СТО БАКСОВ ТЫЦ
Предполагаем что на сервере стоит дебиан, ставим всё нужное
apt install wireguard wireguard-dkms wireguard-tools
Проверим что установилось
modprobe wireguard && lsmod | grep wireguard
wireguard 225280 0 ip6_udp_tunnel 16384 1 wireguard udp_tunnel 16384 1 wireguard
Создаём ключи для клиента и для сервера, эти ключи и будут обеспечивать доступ.
mkdir ~/wireguard
cd ~/wireguard
umask 077
wg genkey | tee server_private_key | wg pubkey > server_public_key
wg genkey | tee client_private_key | wg pubkey > client_public_key
Будет создано 4 файла
server_private_key server_public_key
client_private_key client_public_key
Для системы должен быть разрешён форвардинг, это настраивается в sysctl.conf
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
Теперь нужно создать конфиг файл для вайргарда
vim /etc/wireguard/wg0.conf
В зависимости от потребностей файл может выглядеть поразному, в моём случае я настраивал именно как ВПН с форвардом всего траффика
[Interface]
Address = 192.168.2.1
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 192.168.2.2/32
SERVER_PRIVATE_KEY и CLIENT_PUBLIC_KEY соответвенно надо заменить на те, что сгенерились.
Важно обратить внимание на скрипты PostUp PostDown это то, что выполняется при запуске выключении вайргарда там enp1s0
Это название сетевого интерфейса, через который сервер ходит в интернет. Эти названия бывают разные чтобы узнать надо выполнить
ip route get 8.8.8.8
там будет актуальное имя.
На этом настройка сервера закончена, осталось запустить демона
systemctl enable --now wg-quick@wg0.service
Клиент
Вот тут скачать клиенты, актуально прежде всего для винды (https://www.wireguard.com/install/)
Соотвественно в линуксе редактируем файлик /etc/wireguard/wg0-client.conf
в винде в ГУИ создаём пустой туннель, настройки идентичны
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
ListenPort = 21841
Address = 192.168.2.2/32
DNS = 9.9.9.9
[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = SERVER_REAL_IP:51820
PersistentKeepalive = 21
CLIENT_PRIVATE_KEY и SERVER_PUBLIC_KEY берём те, что сгенерило в папочке на сервере, SERVER_REAL_IP это IP сервера на котором ставим VPN
Возможная проблема с DNS
Столкнулся с тем, что ругается на днс и из-за этого не открывает страницы, хотя коннект есть. Один из способов решения зайти в настройки браузера brave://settings/security
и там задать в Use secure DNS
чтобы использовало тот, который 9.9.9.9 а не, который даёт провайдер. Ну, кароче надо руками везде позадавать днс, а не полагаться на провайдера, иначе не заработает.
В общем не очень сложно и этот впн точно не заблокируют, ведь формально это просто арендованный компьютер где-то в сша.
Подробнее про разные настройки (https://www.stavros.io/posts/how-to-configure-wireguard/)