VPN и оплата AI-подписок
Назначение этой страницы
Это не материал по обходу блокировок. Данная страница — техническая документация в составе бесплатного образовательного курса «AI-агенты: от основ к практике». Её цель — обеспечить доступ к образовательным и практическим ресурсам: Claude API, OpenAI API, Cursor, GitHub Copilot и другим профессиональным инструментам, которые ограничивают доступ по геолокации.
Настройка собственного VPN-сервера — стандартная практика системного администрирования, описанная в документации Ubuntu, Red Hat, DigitalOcean и других платформ. Страница не является рекламой VPN-сервисов и не предоставляет услуги VPN третьим лицам.
Ст. 15.8 ФЗ-149: ограничения распространяются на операторов VPN-сервисов и владельцев анонимайзеров. Использование VPN для личных и профессиональных целей не является правонарушением.
Эта страница — часть курса по работе с AI-инструментами. Многие профессиональные сервисы (Claude API, OpenAI, Cursor) ограничивают доступ по геолокации. Собственный VPN-сервер — стандартная практика для разработчиков и специалистов по всему миру.
Всё, что нужно для доступа к рабочим AI-сервисам: свой VPN за 5 минут, оплата без иностранной карты, регистрация с виртуальным номером.
Что понадобится
- VPS-сервер за пределами РФ — от 100 руб/мес (если никогда не работали с серверами — наш гайд «VDS для начинающих» поможет разобраться за 10 минут)
- 5 минут времени
- Базовые навыки — скопировать команду в терминал
Где арендовать сервер?
Рекомендуем FirstVDS — серверы в Нидерландах и Казахстане, оплата в рублях, от 100 руб/мес. Выбирайте Ubuntu 22.04/24.04, минимум 1 ГБ RAM.
6481165030 -25% Способ 1: Автоматический скрипт
Одна команда — и через 3 минуты VPN работает. Скрипт установит 3x-ui, настроит VLESS + Reality, создаст пользователя и выдаст готовую ссылку для подключения.
Шаг 1. Скачайте и запустите
Подключитесь к серверу по SSH. Рекомендуем сначала скачать и просмотреть скрипт, а потом запустить:
# 1. Скачать скрипт
curl -sL https://ai.arckep.ru/deploy-vpn.sh -o deploy-vpn.sh
# 2. Просмотреть (убедиться что всё безопасно)
cat deploy-vpn.sh
# 3. Запустить
sudo bash deploy-vpn.sh С указанием имени клиента:
sudo bash deploy-vpn.sh --name "Моё имя" Посмотреть содержимое скрипта deploy-vpn.sh
#!/bin/bash
# ═══════════════════════════════════════════════════════════
# VPN Server Quick Deploy — VLESS + Reality
# Устанавливает 3x-ui, создаёт пользователя, выводит конфиг
#
# Использование:
# bash deploy-vpn.sh # на сервере
# ssh root@IP 'bash -s' < deploy-vpn.sh # удалённо
# ssh user@IP 'sudo bash -s' < deploy-vpn.sh # через sudo
#
# Опции:
# --name NAME Имя клиента (по умолчанию: client1)
# --port PORT Порт для VPN (по умолчанию: случайный)
# ═══════════════════════════════════════════════════════════
set -euo pipefail
# ── Цвета ──
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
# ── Параметры командной строки ──
CLIENT_NAME="client1"
CUSTOM_PORT=""
while [[ $# -gt 0 ]]; do
case $1 in
--name) CLIENT_NAME="$2"; shift 2 ;;
--port) CUSTOM_PORT="$2"; shift 2 ;;
*) echo "Неизвестный параметр: $1"; exit 1 ;;
esac
done
# ── Проверки ──
if [[ $EUID -ne 0 ]]; then
echo -e "${RED}Запустите от root: sudo bash deploy-vpn.sh${NC}"
exit 1
fi
# ── Генерация случайных значений ──
rand_port() { shuf -i 10000-59999 -n 1; }
rand_hex() { openssl rand -hex "$1"; }
PANEL_PORT=$(rand_port)
INBOUND_PORT=${CUSTOM_PORT:-$(rand_port)}
while [[ "$INBOUND_PORT" == "$PANEL_PORT" ]]; do
INBOUND_PORT=$(rand_port)
done
WEB_BASE_PATH="/$(rand_hex 10)/"
ADMIN_USER="admin"
ADMIN_PASS=$(rand_hex 8)
# ── Определение IP ──
SERVER_IP=$(curl -s4 --max-time 5 ifconfig.me 2>/dev/null \
|| curl -s4 --max-time 5 ip.sb 2>/dev/null \
|| curl -s4 --max-time 5 ipinfo.io/ip 2>/dev/null \
|| echo "UNKNOWN")
if [[ "$SERVER_IP" == "UNKNOWN" ]]; then
echo -e "${RED}Не удалось определить внешний IP${NC}"
exit 1
fi
SNI_DOMAIN="www.amd.com"
TARGET_DEST="www.amd.com:443"
echo -e "${CYAN}╔═══════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║ VPN Quick Deploy — VLESS + Reality ║${NC}"
echo -e "${CYAN}╠═══════════════════════════════════════════╣${NC}"
echo -e "${CYAN}║ Сервер: ${GREEN}${SERVER_IP}${NC}"
echo -e "${CYAN}║ Клиент: ${GREEN}${CLIENT_NAME}${NC}"
echo -e "${CYAN}╚═══════════════════════════════════════════╝${NC}"
# ═══════════════════════════════════════════
# Шаг 1: Система + BBR
# ═══════════════════════════════════════════
echo -e "\n${GREEN}[1/6]${NC} Настройка системы..."
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq > /dev/null 2>&1
apt-get install -y -qq curl wget sqlite3 > /dev/null 2>&1
# BBR
if ! sysctl net.ipv4.tcp_congestion_control 2>/dev/null | grep -q bbr; then
cat >> /etc/sysctl.conf << 'SYSCTL'
# VPN Optimization
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mtu_probing = 1
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
SYSCTL
sysctl -p > /dev/null 2>&1
echo -e " BBR ${GREEN}включён${NC}"
else
echo -e " BBR ${GREEN}уже активен${NC}"
fi
# ═══════════════════════════════════════════
# Шаг 2: Открытие портов (все способы)
# ═══════════════════════════════════════════
echo -e "\n${GREEN}[2/6]${NC} Открытие портов ${BOLD}${PANEL_PORT}${NC} и ${BOLD}${INBOUND_PORT}${NC}..."
open_ports() {
local ports=("$@")
local opened=false
# --- UFW ---
if command -v ufw &>/dev/null; then
# Включить если не активен
if ! ufw status 2>/dev/null | grep -q "active"; then
ufw --force enable > /dev/null 2>&1 || true
ufw default allow outgoing > /dev/null 2>&1
ufw default deny incoming > /dev/null 2>&1
ufw allow ssh > /dev/null 2>&1
fi
for p in "${ports[@]}"; do
ufw allow "$p"/tcp > /dev/null 2>&1
done
ufw reload > /dev/null 2>&1 || true
echo -e " ufw: порты ${GREEN}открыты${NC}"
opened=true
fi
# --- firewalld ---
if command -v firewall-cmd &>/dev/null && systemctl is-active --quiet firewalld 2>/dev/null; then
for p in "${ports[@]}"; do
firewall-cmd --permanent --add-port="$p"/tcp > /dev/null 2>&1
done
firewall-cmd --reload > /dev/null 2>&1
echo -e " firewalld: порты ${GREEN}открыты${NC}"
opened=true
fi
# --- iptables (fallback) ---
if command -v iptables &>/dev/null; then
for p in "${ports[@]}"; do
# Проверяем, нет ли уже правила
if ! iptables -C INPUT -p tcp --dport "$p" -j ACCEPT 2>/dev/null; then
iptables -I INPUT -p tcp --dport "$p" -j ACCEPT 2>/dev/null || true
fi
done
# Сохраняем правила если есть инструмент
if command -v netfilter-persistent &>/dev/null; then
netfilter-persistent save > /dev/null 2>&1 || true
elif command -v iptables-save &>/dev/null; then
iptables-save > /etc/iptables.rules 2>/dev/null || true
fi
if [[ "$opened" == false ]]; then
echo -e " iptables: порты ${GREEN}открыты${NC}"
fi
fi
}
open_ports "$PANEL_PORT" "$INBOUND_PORT"
# ═══════════════════════════════════════════
# Шаг 3: Установка 3x-ui
# ═══════════════════════════════════════════
echo -e "\n${GREEN}[3/6]${NC} Установка 3x-ui..."
if [[ -f /usr/local/x-ui/x-ui ]]; then
echo -e " 3x-ui ${GREEN}уже установлен${NC}, пропускаю"
else
INSTALL_SCRIPT=$(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/master/install.sh)
printf 'y\n\n\n\n\n\n\n\n\n\n' | timeout 180 bash -c "$INSTALL_SCRIPT" > /tmp/x-ui-install.log 2>&1 || true
if [[ -f /usr/local/x-ui/x-ui ]]; then
echo -e " 3x-ui ${GREEN}установлен${NC}"
else
echo -e " ${RED}Ошибка установки!${NC} Лог: /tmp/x-ui-install.log"
exit 1
fi
fi
# Убедиться что сервис запущен (нужен для CLI-команд)
systemctl start x-ui 2>/dev/null || true
sleep 3
# ═══════════════════════════════════════════
# Шаг 4: Конфигурация панели через CLI
# ═══════════════════════════════════════════
echo -e "\n${GREEN}[4/6]${NC} Конфигурация панели..."
# CLI x-ui setting — надёжнее чем прямая запись в SQLite
/usr/local/x-ui/x-ui setting -port "$PANEL_PORT" > /dev/null 2>&1
/usr/local/x-ui/x-ui setting -webBasePath "$WEB_BASE_PATH" > /dev/null 2>&1
/usr/local/x-ui/x-ui setting -username "$ADMIN_USER" -password "$ADMIN_PASS" > /dev/null 2>&1
echo -e " Панель: порт ${GREEN}${PANEL_PORT}${NC}, путь ${GREEN}${WEB_BASE_PATH}${NC}"
# ═══════════════════════════════════════════
# Шаг 5: Генерация ключей + создание inbound
# ═══════════════════════════════════════════
echo -e "\n${GREEN}[5/6]${NC} Создание VLESS Reality..."
XRAY_BIN="/usr/local/x-ui/bin/xray-linux-amd64"
if [[ ! -f "$XRAY_BIN" ]]; then
XRAY_BIN=$(find /usr/local/x-ui/bin/ -name "xray-linux-*" -type f | head -1)
fi
# Reality keypair: строка 1 = PrivateKey, строка 2 = PublicKey (Password в новых версиях)
REALITY_OUTPUT=$("$XRAY_BIN" x25519 2>/dev/null)
PRIVATE_KEY=$(echo "$REALITY_OUTPUT" | sed -n '1s/.*: *//p')
PUBLIC_KEY=$(echo "$REALITY_OUTPUT" | sed -n '2s/.*: *//p')
if [[ -z "$PRIVATE_KEY" || -z "$PUBLIC_KEY" || ${#PRIVATE_KEY} -lt 30 || ${#PUBLIC_KEY} -lt 30 ]]; then
echo -e " ${RED}Ошибка генерации ключей Reality${NC}"
echo "$REALITY_OUTPUT"
exit 1
fi
CLIENT_UUID=$("$XRAY_BIN" uuid 2>/dev/null || cat /proc/sys/kernel/random/uuid)
SID1=$(rand_hex 2); SID2=$(rand_hex 1); SID3=$(rand_hex 3); SID4=$(rand_hex 4)
SID5=$(rand_hex 5); SID6=$(rand_hex 7); SID7=$(rand_hex 6); SID8=$(rand_hex 8)
CLIENT_EMAIL=$(rand_hex 4)
CLIENT_SUB=$(rand_hex 8)
NOW_MS=$(date +%s)000
# Записываем inbound в БД (для inbound CLI не подходит — только SQLite)
DB_PATH="/etc/x-ui/x-ui.db"
sqlite3 "$DB_PATH" "DELETE FROM inbounds;"
SETTINGS="{\"clients\":[{\"id\":\"${CLIENT_UUID}\",\"email\":\"${CLIENT_EMAIL}\",\"enable\":true,\"flow\":\"\",\"comment\":\"${CLIENT_NAME}\",\"expiryTime\":0,\"limitIp\":0,\"totalGB\":0,\"reset\":0,\"subId\":\"${CLIENT_SUB}\",\"tgId\":\"\",\"created_at\":${NOW_MS},\"updated_at\":${NOW_MS}}],\"decryption\":\"none\",\"encryption\":\"none\"}"
STREAM="{\"network\":\"tcp\",\"security\":\"reality\",\"externalProxy\":[],\"realitySettings\":{\"show\":false,\"xver\":0,\"target\":\"${TARGET_DEST}\",\"serverNames\":[\"${SNI_DOMAIN}\",\"amd.com\"],\"privateKey\":\"${PRIVATE_KEY}\",\"minClientVer\":\"\",\"maxClientVer\":\"\",\"maxTimediff\":0,\"shortIds\":[\"${SID1}\",\"${SID2}\",\"${SID3}\",\"${SID4}\",\"${SID5}\",\"${SID6}\",\"${SID7}\",\"${SID8}\"],\"settings\":{\"publicKey\":\"${PUBLIC_KEY}\",\"fingerprint\":\"chrome\",\"serverName\":\"\",\"spiderX\":\"/\"}},\"tcpSettings\":{\"acceptProxyProtocol\":false,\"header\":{\"type\":\"http\",\"request\":{\"version\":\"1.1\",\"method\":\"GET\",\"path\":[\"/\"],\"headers\":{}},\"response\":{\"version\":\"1.1\",\"status\":\"200\",\"reason\":\"OK\",\"headers\":{}}}},\"sockopt\":{\"tcpFastOpen\":true,\"tcpMptcp\":true,\"domainStrategy\":\"UseIP\",\"tcpMaxSeg\":1440,\"tcpKeepAliveInterval\":25,\"tcpKeepAliveIdle\":300,\"tcpUserTimeout\":10000,\"tcpcongestion\":\"bbr\",\"tcpWindowClamp\":600}}"
SNIFFING="{\"enabled\":true,\"destOverride\":[\"http\",\"tls\",\"quic\",\"fakedns\"],\"metadataOnly\":false,\"routeOnly\":false}"
sqlite3 "$DB_PATH" "INSERT INTO inbounds (user_id, up, down, total, remark, enable, expiry_time, listen, port, protocol, settings, stream_settings, tag, sniffing) VALUES (1, 0, 0, 0, 'VLESS-Reality', 1, 0, '', ${INBOUND_PORT}, 'vless', '${SETTINGS}', '${STREAM}', 'inbound-${INBOUND_PORT}', '${SNIFFING}');"
echo -e " VLESS Reality на порту ${GREEN}${INBOUND_PORT}${NC} ${GREEN}✓${NC}"
# Перезапуск чтобы применить ВСЕ изменения (и CLI, и SQLite)
systemctl restart x-ui
sleep 3
if systemctl is-active --quiet x-ui; then
echo -e " Сервис ${GREEN}запущен${NC}"
else
echo -e " ${RED}Ошибка запуска!${NC} Проверьте: journalctl -u x-ui -n 50"
exit 1
fi
# ═══════════════════════════════════════════
# Шаг 6: Проверка и вывод результатов
# ═══════════════════════════════════════════
echo -e "\n${GREEN}[6/6]${NC} Проверка доступности портов..."
# Проверяем что порты слушают локально
PANEL_LISTENING=$(ss -tlnp | grep -c ":${PANEL_PORT}" || true)
VPN_LISTENING=$(ss -tlnp | grep -c ":${INBOUND_PORT}" || true)
if [[ "$PANEL_LISTENING" -eq 0 ]]; then
echo -e " ${YELLOW}⚠ Панель не слушает порт ${PANEL_PORT}${NC}"
# Попробуем узнать реальный порт
ACTUAL_PANEL=$(ss -tlnp | grep x-ui | grep -v xray | head -1 | awk '{print $4}' | rev | cut -d: -f1 | rev)
if [[ -n "$ACTUAL_PANEL" ]]; then
PANEL_PORT="$ACTUAL_PANEL"
echo -e " Панель слушает на порту ${GREEN}${PANEL_PORT}${NC} — использую его"
open_ports "$PANEL_PORT"
fi
else
echo -e " Панель (${PANEL_PORT}) ${GREEN}слушает${NC}"
fi
if [[ "$VPN_LISTENING" -eq 0 ]]; then
echo -e " ${RED}✗ VPN не слушает порт ${INBOUND_PORT}!${NC}"
else
echo -e " VPN (${INBOUND_PORT}) ${GREEN}слушает${NC}"
fi
# Проверяем доступность снаружи (через внешний сервис)
echo -e " Проверяю доступность извне..."
VPN_EXTERNAL=$(curl -s --max-time 5 "https://portcheck.transmissionbt.com/${INBOUND_PORT}" 2>/dev/null || true)
# Альтернативный способ — пробуем подключиться через curl к самому себе
VPN_REACHABLE="unknown"
if timeout 3 bash -c "echo > /dev/tcp/${SERVER_IP}/${INBOUND_PORT}" 2>/dev/null; then
VPN_REACHABLE="open"
fi
VLESS_LINK="vless://${CLIENT_UUID}@${SERVER_IP}:${INBOUND_PORT}?type=tcp&security=reality&pbk=${PUBLIC_KEY}&fp=chrome&sni=${SNI_DOMAIN}&sid=${SID1}&spx=%2F&headerType=http&path=%2F#VPN-${SERVER_IP}"
PANEL_URL="http://${SERVER_IP}:${PANEL_PORT}${WEB_BASE_PATH}"
echo ""
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e "${CYAN} ${BOLD}ПАНЕЛЬ УПРАВЛЕНИЯ${NC}"
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e " URL: ${GREEN}${PANEL_URL}${NC}"
echo -e " Логин: ${GREEN}${ADMIN_USER}${NC}"
echo -e " Пароль: ${GREEN}${ADMIN_PASS}${NC}"
echo ""
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e "${CYAN} ${BOLD}ССЫЛКА ДЛЯ ПОДКЛЮЧЕНИЯ${NC}"
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e " Скопируйте в VPN-приложение:\n"
echo -e " ${GREEN}${VLESS_LINK}${NC}"
echo ""
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e "${CYAN} ${BOLD}КАК ПОДКЛЮЧИТЬСЯ${NC}"
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e " ${BOLD}iPhone/iPad:${NC} Streisand или V2Box (App Store)"
echo -e " ${BOLD}Android:${NC} V2RayNG или Hiddify (Google Play)"
echo -e " ${BOLD}Windows:${NC} Hiddify или V2RayN"
echo -e " ${BOLD}macOS:${NC} Hiddify или V2RayN"
echo ""
echo -e " 1. Установите приложение"
echo -e " 2. Нажмите '+' → 'Импорт из буфера' или 'Add from clipboard'"
echo -e " 3. Вставьте ссылку выше"
echo -e " 4. Подключайтесь!"
# Предупреждение если порты недоступны
if [[ "$VPN_REACHABLE" != "open" ]]; then
echo ""
echo -e "${YELLOW}═══════════════════════════════════════════${NC}"
echo -e "${YELLOW} ⚠ ПОРТЫ МОГУТ БЫТЬ ЗАКРЫТЫ ПРОВАЙДЕРОМ${NC}"
echo -e "${YELLOW}═══════════════════════════════════════════${NC}"
echo -e " Порт ${INBOUND_PORT} слушает, но может быть заблокирован"
echo -e " на уровне хостинга (внешний файрвол)."
echo ""
echo -e " ${BOLD}Что сделать:${NC}"
echo -e " 1. Откройте панель управления вашего хостинга"
echo -e " 2. Найдите раздел Firewall / Security Groups / Сеть"
echo -e " 3. Разрешите входящий TCP на порты:"
echo -e " - ${BOLD}${INBOUND_PORT}${NC} (VPN)"
echo -e " - ${BOLD}${PANEL_PORT}${NC} (панель управления)"
echo ""
echo -e " ${BOLD}Или:${NC} Hetzner, DigitalOcean, Vultr — обычно все"
echo -e " порты открыты по умолчанию."
fi
echo ""
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e "${CYAN} ${BOLD}ДОБАВИТЬ ПОЛЬЗОВАТЕЛЯ${NC}"
echo -e "${CYAN}═══════════════════════════════════════════${NC}"
echo -e " Откройте панель → Inbounds → VLESS-Reality"
echo -e " → кнопка '+' рядом с клиентами"
echo ""
echo -e "${YELLOW}⚠ Сохраните эту информацию! Повторно она не покажется.${NC}"
echo ""
# ── Сохранить в файл ──
CREDS_FILE="/root/vpn-credentials.txt"
cat > "$CREDS_FILE" << CREDEOF
VPN Server Credentials
Created: $(date '+%Y-%m-%d %H:%M')
Server: ${SERVER_IP}
Panel URL: ${PANEL_URL}
Login: ${ADMIN_USER}
Password: ${ADMIN_PASS}
VLESS Link: ${VLESS_LINK}
Client: ${CLIENT_NAME}
Protocol: VLESS + Reality
VPN Port: ${INBOUND_PORT}
Panel Port: ${PANEL_PORT}
CREDEOF
chmod 600 "$CREDS_FILE"
echo -e "${GREEN}Данные сохранены в ${CREDS_FILE}${NC}\n"
Шаг 2. Сохраните данные
После установки скрипт покажет:
- Панель управления — URL, логин и пароль для веб-интерфейса
- VLESS-ссылку — для вставки в VPN-приложение
Сохраните эту информацию. Данные также записываются в файл /root/vpn-credentials.txt на сервере.
Шаг 3. Подключитесь
Скопируйте VLESS-ссылку и вставьте в приложение (см. раздел «Приложения для подключения» ниже).
Безопасность: скрипт генерирует случайные порты и пароли, но после установки рекомендуется зайти в панель и сменить порт панели и порт VPN-подключения на свои. Стандартные порты — первые цели для сканеров. Случайные порты в диапазоне 10000–65000 значительно снижают риск обнаружения.
Что делает скрипт
- Включает BBR — ускорение TCP для VPN
- Устанавливает 3x-ui — панель управления VPN
- Создаёт VLESS + Reality — современный протокол с шифрованием соединения
- Открывает порты в файрволе (
ufw,firewalld,iptables) - Генерирует случайные ключи, порты и пароли
- Проверяет доступность и предупреждает о проблемах
Способ 2: Ручная установка
Если предпочитаете контролировать каждый шаг.
1. Подключитесь к серверу
ssh root@ваш-IP-сервера 2. Обновите систему и включите BBR
# Обновление
apt update && apt upgrade -y
# Включение BBR (ускорение TCP)
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
sysctl -p 3. Установите 3x-ui
bash <(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/master/install.sh) Установщик спросит подтверждение — нажмите y и Enter. После установки панель запустится автоматически.
4. Настройте панель
Смените логин, пароль и порт панели:
# Смена логина и пароля
/usr/local/x-ui/x-ui setting -username admin -password ВашНовыйПароль
# Смена порта панели (любой свободный)
/usr/local/x-ui/x-ui setting -port 54321
# Перезапуск
systemctl restart x-ui Откройте панель в браузере: http://IP-сервера:54321
5. Создайте VLESS Reality подключение
В панели 3x-ui:
- Перейдите в Inbounds (Входящие подключения)
- Нажмите Add Inbound (Добавить)
- Заполните:
- Remark: любое имя (например,
VPN) - Protocol:
vless - Port: любой свободный (например,
43567) - Transport:
tcp - Security:
reality - Dest (Target):
www.amd.com:443 - SNI:
www.amd.com - Нажмите Get New Cert — сгенерирует Reality-ключи
- Client Fingerprint:
chrome - ShortID: нажмите Generate
- Remark: любое имя (например,
- Нажмите Add
6. Получите ссылку для подключения
В списке Inbounds найдите созданное подключение и нажмите значок QR-код или Copy Link. Скопируйте VLESS-ссылку — она начинается с vless://.
7. Откройте порт в файрволе
Если на сервере включён файрвол:
# UFW (Ubuntu/Debian)
ufw allow 43567/tcp
ufw allow 54321/tcp
# Firewalld (CentOS/RHEL/Fedora)
firewall-cmd --permanent --add-port=43567/tcp
firewall-cmd --permanent --add-port=54321/tcp
firewall-cmd --reload
# iptables (если нет ufw/firewalld)
iptables -I INPUT -p tcp --dport 43567 -j ACCEPT
iptables -I INPUT -p tcp --dport 54321 -j ACCEPT
# Сохранить правила iptables (Ubuntu/Debian)
apt install -y iptables-persistent
netfilter-persistent save
# Сохранить правила iptables (CentOS/RHEL)
service iptables save
# nftables (современная замена iptables)
nft add rule inet filter input tcp dport 43567 accept
nft add rule inet filter input tcp dport 54321 accept Важно: некоторые хостинги (Timeweb, Reg.ru, FirstVDS) блокируют порты на уровне инфраструктуры. Если порт открыт в системе, но не доступен извне — откройте его в панели управления хостинга (раздел Firewall / Security Groups / Сеть). На FirstVDS, Hetzner, Vultr, DigitalOcean все порты открыты по умолчанию.
Безопасность: после установки рекомендуется сменить порты панели и VPN-подключения на нестандартные. Стандартные порты (2053, 443, 8443) — первые цели сканеров. Используйте случайные порты в диапазоне 10000–65000. Смените в панели 3x-ui: Settings → Panel Port и в настройках Inbound. Не забудьте открыть новые порты в файрволе.
Приложения для подключения
Вставьте VLESS-ссылку в одно из приложений:
V2Box
iPhone, iPad, macOS, Android
Простой и красивый клиент. Поддерживает VLESS Reality из коробки. Без регистрации, не собирает логи.
V2RayTun
iPhone, iPad, macOS, Android
Стабильный клиент с поддержкой Reality. Не собирает данные, импорт по QR-коду и из буфера.
Hiddify
Windows, macOS, Linux, Android, iOS
Кросс-платформенный клиент. Работает везде, open-source.
GitHub Releases →Как добавить конфиг в приложение
- Скопируйте VLESS-ссылку (начинается с
vless://) - Откройте приложение
- Нажмите + → Import from clipboard (или «Импорт из буфера»)
- Конфигурация добавится автоматически
- Нажмите кнопку Connect (подключиться)
Подключение и оплата подписок
VPN — первый шаг. Дальше нужно зарегистрироваться и оплатить подписку на AI-сервис. Вот как это сделать из России.
Оплата без иностранной карты
Сервис МТС Оплата позволяет оплачивать зарубежные подписки рублями через СБП или российскую банковскую карту.
МТС Оплата — зарубежные подписки
34+ сервисов: ChatGPT, Claude, Cursor, Midjourney, Figma, Spotify, Netflix и другие. Оплата через СБП или карту, ваучер на почту за 15 минут. Комиссия 0 ₽.
Как это работает:
- Откройте payment.mts.ru/tools и выберите сервис
- Укажите email и выберите номинал подписки
- Оплатите через СБП или банковскую карту
- Получите ваучер с инструкцией на почту (до 15 минут)
- Активируйте подписку по инструкции из письма
Важно: ваучеры МТС работают для аккаунтов региона США. При регистрации нового аккаунта используйте почту gmail.com и VPN с американским IP.
Регистрация с иностранным номером
Многие AI-сервисы (ChatGPT, Claude) требуют иностранный номер телефона при регистрации. Сервис HeroSMS позволяет получить виртуальный номер из 180+ стран для приёма SMS. Интерфейс на английском, но принимает оплату из России.
HeroSMS — виртуальные номера
Виртуальные номера из 180+ стран для приёма SMS. Номера для 700+ сервисов и приложений. Сайт на английском языке, но принимает СБП и карты Мир.
Способы оплаты из России:
- СБП по QR-коду — комиссия 6% (самый выгодный)
- Российские банковские карты (Мир) — комиссия 10.5%
- Visa / Mastercard — комиссия 7% + $0.25
- Криптовалюта — Bitcoin, USDT, ETH и другие
Как зарегистрироваться в AI-сервисе:
- Зарегистрируйтесь на hero-sms.com и пополните баланс
- Выберите сервис (OpenAI / Claude) и страну (Великобритания, Нидерланды и др.)
- Получите виртуальный номер — он активен 20 минут
- Укажите этот номер при регистрации в AI-сервисе
- SMS с кодом подтверждения появится на сайте HeroSMS
Мы не связаны с HeroSMS и не несём ответственности за работу сервиса — просто подсказываем рабочий вариант. Как и с любым подобным сервисом, не храните крупные суммы на балансе — пополняйте ровно столько, сколько нужно для конкретной активации.
Совет: включите VPN (США или Великобритания) до начала регистрации в AI-сервисе. Сервисы проверяют IP при создании аккаунта, а не только при входе.
Решение проблем
Не подключается
- Проверьте, что порт VPN открыт в файрволе сервера и в панели хостинга
- Убедитесь, что сервис работает:
systemctl status x-ui - Проверьте порт извне:
curl -v telnet://ваш-IP:порт
Панель не открывается
- Убедитесь, что порт панели тоже открыт
- Проверьте текущие настройки:
x-ui settings - Попробуйте перезапуск:
systemctl restart x-ui
Как добавить ещё пользователей
В панели 3x-ui: Inbounds → нажмите на подключение → кнопка + рядом с «Clients» → заполните имя → Add. Каждый пользователь получит свою уникальную ссылку.
Частые вопросы
Это легально?
Использование VPN для личных и рабочих целей в России не является административным правонарушением. Под ограничения подпадает предоставление публичных VPN-сервисов без лицензии и их реклама. Данная страница является технической документацией в составе образовательного курса.
Какой хостинг выбрать?
FirstVDS — оплата в рублях, серверы в Нидерландах/Казахстане, от 100 руб/мес, промокод 6481165030 даёт -25%.
Hetzner, Vultr, DigitalOcean — тоже хороший выбор, но оплата в валюте.
Почему VLESS Reality, а не WireGuard?
WireGuard использует собственный протокол, который легко идентифицируется. VLESS Reality работает поверх стандартного TLS — это обеспечивает стабильное соединение даже в условиях нестабильной сети.
Сколько пользователей на одном сервере?
Минимальный VPS (2 ядра, 4 ГБ) выдерживает 20-50 одновременных подключений без проблем.
// Обсуждение
Можно писать анонимно. Укажите email, чтобы получать уведомления об ответах.