节点
配置
配置 PasarGuard Node 设置和环境变量
配置概述
PasarGuard Node 可以使用环境变量进行配置。所有设置都可以在 .env
文件中设置或直接设置为环境变量。
PasarGuard Node 目前处于测试/开发阶段。使用风险自负。
环境变量
核心设置
变量 | 类型 | 默认值 | 描述 |
---|---|---|---|
API_KEY | string | - | API 访问的身份验证 UUID(必需) |
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 密钥
为 API_KEY
生成安全的 UUID:
# 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
这将提供详细的日志以帮助排除问题。