Конфигурация
Настройка параметров PasarGuard Node и переменных окружения
Обзор конфигурации
PasarGuard Node можно настроить с помощью переменных окружения. Все настройки можно установить в файле .env
или непосредственно как переменные окружения.
PasarGuard Node в настоящее время находится на стадии тестирования/разработки. Используйте на свой страх и риск.
Переменные окружения
Основные настройки
Переменная | Тип | По умолчанию | Описание |
---|---|---|---|
API_KEY | string | - | UUID для аутентификации доступа к API (обязательно) |
NODE_HOST | string | 127.0.0.1 | Адрес хоста для привязки приложения |
SERVICE_PORT | int | 62050 | Порт для привязки приложения |
SERVICE_PROTOCOL | string | grpc | Протокол подключения (grpc или rest , рекомендуется: grpc ) |
DEBUG | bool | false | Включить режим отладки для подробного логирования |
Настройка SSL/TLS
Переменная | Тип | По умолчанию | Описание |
---|---|---|---|
SSL_CERT_FILE | string | - | Путь к файлу SSL сертификата |
SSL_KEY_FILE | string | - | Путь к файлу приватного ключа SSL |
Конфигурация Xray
Переменная | Тип | По умолчанию | Описание |
---|---|---|---|
XRAY_EXECUTABLE_PATH | string | /usr/local/bin/xray | Путь к исполняемому файлу Xray |
XRAY_ASSETS_PATH | string | /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
Для продакшена с доменом:
- Установите Certbot:
sudo apt-get install certbot
- Получите сертификат:
sudo certbot certonly --standalone -d your-domain.com
- Обновите переменные окружения:
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
Это предоставит детальные логи для помощи в устранении проблем.