PasarGuard
Нод

Конфигурация

Настройка параметров PasarGuard Node и переменных окружения

Обзор конфигурации

PasarGuard Node можно настроить с помощью переменных окружения. Все настройки можно установить в файле .env или непосредственно как переменные окружения.

PasarGuard Node в настоящее время находится на стадии тестирования/разработки. Используйте на свой страх и риск.

Переменные окружения

Основные настройки

ПеременнаяТипПо умолчаниюОписание
API_KEYstring-UUID для аутентификации доступа к API (обязательно)
NODE_HOSTstring127.0.0.1Адрес хоста для привязки приложения
SERVICE_PORTint62050Порт для привязки приложения
SERVICE_PROTOCOLstringgrpcПротокол подключения (grpc или rest, рекомендуется: grpc)
DEBUGboolfalseВключить режим отладки для подробного логирования

Настройка SSL/TLS

ПеременнаяТипПо умолчаниюОписание
SSL_CERT_FILEstring-Путь к файлу SSL сертификата
SSL_KEY_FILEstring-Путь к файлу приватного ключа SSL

Конфигурация Xray

ПеременнаяТипПо умолчаниюОписание
XRAY_EXECUTABLE_PATHstring/usr/local/bin/xrayПуть к исполняемому файлу Xray
XRAY_ASSETS_PATHstring/usr/local/share/xrayПуть к директории с ресурсами Xray

Поддерживаемые ядра:

  • ✅ xray-core
  • ❌ sing-box (не поддерживается)
  • ❌ v2ray-core (не поддерживается)

Примеры конфигурации

Базовая настройка

# Core Settings
API_KEY=your-uuid-here
NODE_HOST=127.0.0.1
SERVICE_PORT=62050
SERVICE_PROTOCOL=grpc
DEBUG=false

# SSL Configuration
SSL_CERT_FILE=/path/to/ssl_cert.pem
SSL_KEY_FILE=/path/to/ssl_key.pem

# Xray Paths (defaults usually work)
XRAY_EXECUTABLE_PATH=/usr/local/bin/xray
XRAY_ASSETS_PATH=/usr/local/share/xray

Настройка для продакшена

# Core Settings
API_KEY=change-this-to-a-secure-uuid
NODE_HOST=0.0.0.0
SERVICE_PORT=62050
SERVICE_PROTOCOL=grpc
DEBUG=false

# SSL - Use valid certificates
SSL_CERT_FILE=/etc/ssl/certs/your-domain.pem
SSL_KEY_FILE=/etc/ssl/private/your-domain-key.pem

# Xray Configuration
XRAY_EXECUTABLE_PATH=/usr/local/bin/xray
XRAY_ASSETS_PATH=/usr/local/share/xray

Настройка Docker Compose

При использовании Docker вы можете установить переменные окружения в файле docker-compose.yml или использовать файл .env:

API_KEY=your-uuid-here
SERVICE_PORT=62050
SERVICE_PROTOCOL=grpc
SSL_CERT_FILE=/app/certs/ssl_cert.pem
SSL_KEY_FILE=/app/certs/ssl_key.pem

Настройка SSL сертификата

Генерация самоподписанного сертификата

Для тестирования или внутреннего использования создайте самоподписанный сертификат:

openssl req -x509 -newkey rsa:4096 -keyout ssl_key.pem \
  -out ssl_cert.pem -days 36500 -nodes \
  -subj "/CN=your-server-ip-or-domain" \
  -addext "subjectAltName = DNS:your-domain.com,IP:your.server.ip"

Затем настройте пути:

SSL_CERT_FILE=/path/to/ssl_cert.pem
SSL_KEY_FILE=/path/to/ssl_key.pem

Использование сертификата Let's Encrypt

Для продакшена с доменом:

  1. Установите Certbot:
sudo apt-get install certbot
  1. Получите сертификат:
sudo certbot certonly --standalone -d your-domain.com
  1. Обновите переменные окружения:
SSL_CERT_FILE=/etc/letsencrypt/live/your-domain.com/fullchain.pem
SSL_KEY_FILE=/etc/letsencrypt/live/your-domain.com/privkey.pem

Использование собственного сертификата

Если у вас есть свой сертификат:

SSL_CERT_FILE=/path/to/your/certificate.pem
SSL_KEY_FILE=/path/to/your/private-key.pem

Рекомендации по безопасности

Генерация безопасного API ключа

Сгенерируйте безопасный UUID для API_KEY:

# Using uuidgen (Linux/macOS)
uuidgen

# Using Python
python3 -c "import uuid; print(uuid.uuid4())"

# Using OpenSSL
openssl rand -hex 16 | awk '{print substr($1,1,8)"-"substr($1,9,4)"-"substr($1,13,4)"-"substr($1,17,4)"-"substr($1,21,12)}'

Права доступа к файлам

Убедитесь в правильных правах для конфиденциальных файлов:

# Certificate files
chmod 600 /path/to/ssl_key.pem
chmod 644 /path/to/ssl_cert.pem

# Environment file
chmod 600 .env

Настройка файрвола

Открывайте только необходимые порты:

# Allow only node port
sudo ufw allow 62050/tcp

# Enable firewall
sudo ufw enable

Конфигурация протокола

gRPC (Рекомендуется)

gRPC - рекомендуемый протокол для лучшей производительности и меньшей задержки:

SERVICE_PROTOCOL=grpc

REST API

REST API также поддерживается, но может иметь большие накладные расходы:

SERVICE_PROTOCOL=rest

Устранение неполадок

Распространенные проблемы

Порт уже используется:

# Change the port
SERVICE_PORT=62051

Режим отладки

Включите режим отладки для подробного логирования:

DEBUG=true

Это предоставит детальные логи для помощи в устранении проблем.