WireGuard — самый быстрый и простой «road-warrior» VPN. Для регионов без DPI-блокировок.
AmneziaWG — WireGuard с маскировкой под QUIC/DNS и др. для обхода DPI. Устанавливается за минуты через приложение; при желании донастраивается руками.
OpenVPN — классика с PKI и .ovpn-профилями; медленнее, но гибкий и предсказуемый.
VLESS (Xray/REALITY) — прокси-VPN для сложных сетей/фильтров, когда нужен «невидимый» TLS-трафик без реального сертификата.
Общая подготовка VPS
# Примеры (подставьте свои на этом шаге, или оставьте как есть для теста)export SERVER_IP=203.0.113.10export SERVER_FQDN=vpn.example.netexport WG_PORT=51820export OVPN_PORT=1194
# 0) Обновления, утилиты, файрволsudo apt update && sudo apt -y full-upgradesudo apt install -y curl wget ca-certificates jq ufw nftables qrencode
# 1) Хостнеймsudo hostnamectl set-hostname $SERVER_FQDN
# 2) UFW: SSH и веб-порты (на всякий)sudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw allow 22/tcp comment 'SSH'sudo ufw allow 80,443/tcp comment 'Web'sudo ufw --force enable
WireGuard: «Wireguard VPS настройка», «настройка Wireguard на VPS Ubuntu»
1) Установка и ключи
sudo apt install -y wireguardumask 077wg genkey | tee /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pubwg genkey | tee /etc/wireguard/client1.key | wg pubkey | tee /etc/wireguard/client1.pubSERVER_PRIV=$(cat /etc/wireguard/server.key)SERVER_PUB=$(cat /etc/wireguard/server.pub)CLIENT1_PRIV=$(cat /etc/wireguard/client1.key)CLIENT1_PUB=$(cat /etc/wireguard/client1.pub)
2) Конфиг сервера /etc/wireguard/wg0.conf
sudo tee /etc/wireguard/wg0.conf >/dev/null <<WG[Interface]Address = 10.66.66.1/24ListenPort = ${WG_PORT}PrivateKey = ${SERVER_PRIV}# Маршрутизация всех клиентов в интернет через VPSPostUp = sysctl -w net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1PostUp = nft add table ip nat; nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }; nft add rule ip nat postrouting oifname "eth0" masqueradePostDown = nft delete table ip nat
[Peer]# client1PublicKey = ${CLIENT1_PUB}AllowedIPs = 10.66.66.2/32WG
3) Запуск и автозапуск
sudo systemctl enable --now wg-quick@wg0sudo ufw allow ${WG_PORT}/udp comment 'WireGuard'sudo wg show
4) Профиль клиента client1.conf
Сгенерируем файл и QR для мобильного клиента:
sudo tee ~/client1.conf >/dev/null <<WG[Interface]PrivateKey = ${CLIENT1_PRIV}Address = 10.66.66.2/32DNS = 1.1.1.1
[Peer]PublicKey = ${SERVER_PUB}Endpoint = ${SERVER_IP}:${WG_PORT}AllowedIPs = 0.0.0.0/0, ::/0PersistentKeepalive = 25WGqrencode -t ansiutf8 < ~/client1.conf
Готово: импортируйте ~/client1.conf в WireGuard (Windows/macOS/Android/iOS). (Справка по QuickStart и установке — на официальном сайте WireGuard.)
AmneziaWG: Amnezia wg настройка VPN через VPS
Вариант 1 — самый быстрый (через приложение AmneziaVPN, саморазвёртывание на сервере)
1. Установите приложение AmneziaVPN (Windows/macOS/Linux/Android/iOS).
2. В меню выберите Self-hosted VPN, введите root@$SERVER_IP (или домен), пароль/SSH-ключ.
3. Выберите High level of control → протокол AmneziaWG. Приложение установит сервис на VPS и подготовит конфигурации.
4. При необходимости включите маскировку под QUIC: в настройках AmneziaWG заполните поле I1 готовым HEX-«сигнатурным» пакетом (QUIC).
5. Откройте UDP-порт, который выбрало приложение (часто 51820/UDP): sudo ufw allow 51820/udp.
Приложение настраивает AmneziaWG 1.5 (маскировка заголовков, junk-пакеты, CPS-сигнатуры под QUIC/DNS и др.), а серверная часть уже совместима без дополнительной ручной конфигурации.
Вариант 2 — «ручная» донастройка обфускации (QUIC-сигнатура)
Если сервер уже развёрнут приложением, но нужно усилить маскировку, в приложении откройте настройки AmneziaWG для этого сервера и вставьте готовый HEX в поле I1 — это имитация стартового UDP-пакета QUIC (рекомендованный шаблон). Сохраните профиль — клиент начнёт имитировать QUIC при рукопожатии.
OpenVPN: настройка OpenVPN на VPS Ubuntu
1) Установка и PKI (Easy-RSA)
sudo apt install -y openvpn easy-rsamake-cadir ~/openvpn-cacd ~/openvpn-cacp -r /usr/share/easy-rsa/* ../easyrsa init-pki./easyrsa build-ca nopass./easyrsa gen-req server nopass./easyrsa sign-req server server./easyrsa gen-dhopenvpn --genkey --secret ta.key
2) Конфигурация сервера
sudo mkdir -p /etc/openvpn/serversudo cp pki/ca.crt pki/dh.pem pki/issued/server.crt pki/private/server.key ta.key /etc/openvpn/server/sudo zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server/server.conf >/dev/null
Правки server.conf (заменим и включим нужные опции):
sudo sed -i 's/^;proto udp/proto udp/' /etc/openvpn/server/server.confsudo sed -i 's/^;port 1194/port '"${OVPN_PORT}"'/' /etc/openvpn/server/server.confsudo sed -i 's/^;user nobody/user nobody/' /etc/openvpn/server/server.confsudo sed -i 's/^;group nogroup/group nogroup/' /etc/openvpn/server/server.confsudo sed -i 's/^;topology subnet/topology subnet/' /etc/openvpn/server/server.confsudo sed -i 's/^;push "redirect-gateway.*/push "redirect-gateway def1 bypass-dhcp"/' /etc/openvpn/server/server.confsudo sed -i 's/^;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 1.1.1.1"/' /etc/openvpn/server/server.confsudo sed -i 's/^;tls-auth ta.key.*/tls-auth ta.key 0/' /etc/openvpn/server/server.confsudo sed -i 's/^;cipher AES-256-CBC/cipher AES-256-GCM/' /etc/openvpn/server/server.conf
3) Включаем маршрутизацию и NAT
# Форвардингecho 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-openvpn.confsudo sysctl --system
# NAT через nftablesIFACE=$(ip -4 route show default | awk "{print \$5}")sudo nft list ruleset >/tmp/nft.backup 2>/dev/null || truesudo bash -c "cat >/etc/nftables.conf <<'NFT'flush rulesettable inet filter {chain input { type filter hook input priority 0;ct state established,related acceptiif lo accepttcp dport {22,80,443,'${OVPN_PORT}'} acceptudp dport '${OVPN_PORT}' acceptcounter drop}}table ip nat {chain postrouting { type nat hook postrouting priority 100; oifname \"${IFACE}\" masquerade }}NFT"sudo systemctl enable --now nftablessudo ufw allow ${OVPN_PORT}/udp comment 'OpenVPN'
4) Запуск
sudo systemctl enable --now openvpn-server@serversudo systemctl status openvpn-server@server --no-pager
5) Клиентский профиль .ovpn
cat > ~/client1.ovpn <<OVPNclientdev tunproto udpremote ${SERVER_IP} ${OVPN_PORT}resolv-retry infinitenobindpersist-keypersist-tunremote-cert-tls servercipher AES-256-GCMkey-direction 1verb 3<ca>$(cat /etc/openvpn/server/ca.crt)</ca><cert>$(openssl x509 -in ~/openvpn-ca/pki/issued/server.crt)</cert><key>$(cat ~/openvpn-ca/pki/private/server.key)</key><tls-auth>$(cat /etc/openvpn/server/ta.key)</tls-auth>OVPN
VLESS (Xray/REALITY): VLESS настройка VPS
Вариант, когда обычный VPN заметен, а нужен «невидимый» прокси-туннель.
1) Установка Xray-core
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
2) Ключи и SHORTID для REALITY
K=$(xray x25519); PRIV=$(echo "$K" | awk '/Private/{print $3}'); PUB=$(echo "$K" | awk '/Public/{print $3}')UUID=$(xray uuid)SID=$(openssl rand -hex 8)echo "PUB=$PUB PRIV=$PRIV UUID=$UUID SID=$SID"
3) Конфиг /usr/local/etc/xray/config.json
sudo tee /usr/local/etc/xray/config.json >/dev/null <<JSON{"log": { "loglevel": "warning" },"inbounds": [{"tag": "vless-reality","listen": "0.0.0.0","port": 443,"protocol": "vless","settings": {"clients": [{ "id": "${UUID}", "flow": "xtls-rprx-vision" }],"decryption": "none"},"streamSettings": {"network": "tcp","security": "reality","realitySettings": {"show": false,"dest": "www.cloudflare.com:443","serverNames": ["www.cloudflare.com"],"privateKey": "${PRIV}","shortIds": ["${SID}"]}}}],"outbounds": [{ "protocol": "freedom" }]}JSONsudo systemctl restart xraysudo ufw allow 443/tcp comment 'VLESS REALITY'
4) Ссылка для клиента
echo "vless://${UUID}@${SERVER_IP}:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.cloudflare.com&fp=chrome&pbk=${PUB}&sid=${SID}&type=tcp#VLESS-REALITY"
(Проект Xray/REALITY и параметры инбаунда описаны в репозитории XTLS/Xray-core и практических туториалах.)
Частые ошибки:
Открыть порт в UFW: sudo ufw allow 51820/udp (WG), sudo ufw allow 1194/udp (OpenVPN), sudo ufw allow 443/tcp (VLESS).
Проверить, что слушает: ss -ltnup | sed -n '1,120p'
Включить форвардинг навсегда: echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-forward.conf && sudo sysctl --system
Диагностика WireGuard: sudo wg show
Диагностика OpenVPN: journalctl -u openvpn-server@server -e
Диагностика Xray: journalctl -u xray -e
Нужны настройка VPN на VPS,WireGuard/AmneziaWG/OpenVPN/VLESS под ключ, много пользователей, генерация профилей/QR, мониторинг и бэкапы? HSTQ поднимет инфраструктуру, укрепит безопасность, настроит мульти-регион и автоматическую выдачу конфигов.