Технология: WireGuard (современный, быстрый, простой).
Сервер (Ubuntu 22.04/24.04)
sudo apt update && sudo apt install -y wireguard qrencode
umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/ server.pub srv_priv=$(cat /etc/wireguard/server.key); srv_pub=$(cat /etc/wireguard/ server.pub )
ip -4 addr show eth0 | awk '/inet /{print $2}' # узнаём внешний IP, например 203.0.113.10
Создаём /etc/wireguard/wg0.conf:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <вставьте srv_priv>
# Маршрутизация и NAT:
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Включаем IP-форвардинг:
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wg.conf
sudo sysctl --system
sudo systemctl enable --now wg-quick@wg0
Клиентский профиль (пример на одного пользователя)
wg genkey | tee client1.key | wg pubkey > client1.pub cli_priv=$(cat client1.key); cli_pub=$(cat client1.pub )
# Добавляем клиента на сервер:
sudo wg set wg0 peer "$cli_pub" allowed-ips 10.8.0.2/32
Файл client1.conf (для телефона/ПК):
[Interface]
PrivateKey = <вставьте cli_priv>
Address = 10.8.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = <вставьте srv_pub>
Endpoint = <ВНЕШНИЙ_IP_СЕРВЕРА>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Удобно отдать профиль QR-кодом:
qrencode -t ansiutf8 < client1.conf
Пользователь сканирует в приложении WireGuard (iOS/Android/macOS/Windows/Linux) — и готово.


Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев