VPN на VPS: WireGuard / AmneziaWG / OpenVPN / VLESS | Ubuntu/Debian Print

  • ubuntu, debian, vless, xray, WireGuard, AmneziaWG
  • 0

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.10
export SERVER_FQDN=vpn.example.net
export WG_PORT=51820
export OVPN_PORT=1194

# 0) Обновления, утилиты, файрвол
sudo apt update && sudo apt -y full-upgrade
sudo 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 incoming
sudo ufw default allow outgoing
sudo 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 wireguard
umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub
wg genkey | tee /etc/wireguard/client1.key | wg pubkey | tee /etc/wireguard/client1.pub
SERVER_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/24
ListenPort = ${WG_PORT}
PrivateKey = ${SERVER_PRIV}
# Маршрутизация всех клиентов в интернет через VPS
PostUp = sysctl -w net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1
PostUp = 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" masquerade
PostDown = nft delete table ip nat

[Peer]
# client1
PublicKey = ${CLIENT1_PUB}
AllowedIPs = 10.66.66.2/32
WG

3) Запуск и автозапуск

sudo systemctl enable --now wg-quick@wg0
sudo 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/32
DNS = 1.1.1.1

[Peer]
PublicKey = ${SERVER_PUB}
Endpoint = ${SERVER_IP}:${WG_PORT}
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
WG
qrencode -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-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
cp -r /usr/share/easy-rsa/* .
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
openvpn --genkey --secret ta.key

2) Конфигурация сервера

sudo mkdir -p /etc/openvpn/server
sudo 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.conf
sudo sed -i 's/^;port 1194/port '"${OVPN_PORT}"'/' /etc/openvpn/server/server.conf
sudo sed -i 's/^;user nobody/user nobody/' /etc/openvpn/server/server.conf
sudo sed -i 's/^;group nogroup/group nogroup/' /etc/openvpn/server/server.conf
sudo sed -i 's/^;topology subnet/topology subnet/' /etc/openvpn/server/server.conf
sudo sed -i 's/^;push "redirect-gateway.*/push "redirect-gateway def1 bypass-dhcp"/' /etc/openvpn/server/server.conf
sudo sed -i 's/^;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 1.1.1.1"/' /etc/openvpn/server/server.conf
sudo sed -i 's/^;tls-auth ta.key.*/tls-auth ta.key 0/' /etc/openvpn/server/server.conf
sudo 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.conf
sudo sysctl --system

# NAT через nftables
IFACE=$(ip -4 route show default | awk "{print \$5}")
sudo nft list ruleset >/tmp/nft.backup 2>/dev/null || true
sudo bash -c "cat >/etc/nftables.conf <<'NFT'
flush ruleset
table inet filter {
chain input { type filter hook input priority 0;
ct state established,related accept
iif lo accept
tcp dport {22,80,443,'${OVPN_PORT}'} accept
udp dport '${OVPN_PORT}' accept
counter drop
}
}
table ip nat {
chain postrouting { type nat hook postrouting priority 100; oifname \"${IFACE}\" masquerade }
}
NFT"
sudo systemctl enable --now nftables
sudo ufw allow ${OVPN_PORT}/udp comment 'OpenVPN'

4) Запуск

sudo systemctl enable --now openvpn-server@server
sudo systemctl status openvpn-server@server --no-pager

5) Клиентский профиль .ovpn

cat > ~/client1.ovpn <<OVPN
client
dev tun
proto udp
remote ${SERVER_IP} ${OVPN_PORT}
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
key-direction 1
verb 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" }]
}
JSON
sudo systemctl restart xray
sudo 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 поднимет инфраструктуру, укрепит безопасность, настроит мульти-регион и автоматическую выдачу конфигов.


Was this answer helpful?

« Back

Powered by WHMCompleteSolution


Knowledgebase