mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
refactor(proxy): 将 aether-proxy 从 HMAC 正向代理迁移到 WebSocket 隧道模式
移除 HMAC 认证、TLS 自签名证书、HTTP CONNECT 代理和代发(delegate)模式, 改为 aether-proxy 主动通过 WebSocket 连接 Aether 服务端建立隧道。 Aether 服务端新增: - WebSocket 隧道端点 (proxy_tunnel.py) - TunnelManager 管理隧道连接和请求分发 - TunnelTransport 作为 httpx 自定义 transport 层 - 基于二进制帧的隧道协议 (tunnel_protocol.py) aether-proxy (Rust) 重构: - 新增 tunnel 模块 (client/dispatcher/stream_handler/protocol) - 支持多 Aether 服务端连接 ([[servers]] 配置) - 移除 proxy/auth/delegate 模块和 hyper 依赖 - 改用 tokio-tungstenite 实现 WebSocket 客户端 同时: - 添加浏览器指纹 Headers 绕过 Cloudflare 防护 - 删除节点时自动清理 Provider/Endpoint 的代理引用 - 数据库迁移: 新增 tunnel_mode/tunnel_connected/tunnel_connected_at 字段
This commit is contained in:
@@ -3,8 +3,6 @@
|
||||
从环境变量或 .env 文件加载配置
|
||||
"""
|
||||
|
||||
import hashlib
|
||||
import hmac
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
@@ -48,13 +46,6 @@ class Config:
|
||||
# 加密密钥配置(独立于JWT密钥,用于敏感数据加密)
|
||||
self.encryption_key = os.getenv("ENCRYPTION_KEY", None)
|
||||
|
||||
# 代理节点 HMAC 密钥(用于 aether-proxy 认证)
|
||||
proxy_hmac_key_env = os.getenv("PROXY_HMAC_KEY")
|
||||
if proxy_hmac_key_env and proxy_hmac_key_env.strip():
|
||||
self.proxy_hmac_key = proxy_hmac_key_env.strip()
|
||||
else:
|
||||
self.proxy_hmac_key = self._derive_proxy_hmac_key()
|
||||
|
||||
# 环境配置 - 智能检测
|
||||
# Docker 部署默认为生产环境,本地开发默认为开发环境
|
||||
is_docker = (
|
||||
@@ -327,20 +318,6 @@ class Config:
|
||||
# 验证连接池配置
|
||||
self._validate_pool_config()
|
||||
|
||||
def _derive_proxy_hmac_key(self) -> str:
|
||||
"""
|
||||
从 ENCRYPTION_KEY 派生 PROXY_HMAC_KEY
|
||||
|
||||
目的:避免把 ENCRYPTION_KEY 直接下发到 VPS(aether-proxy)。
|
||||
"""
|
||||
if not self.encryption_key:
|
||||
return ""
|
||||
return hmac.new(
|
||||
self.encryption_key.encode("utf-8"),
|
||||
b"aether-proxy-hmac-key-v1",
|
||||
hashlib.sha256,
|
||||
).hexdigest()
|
||||
|
||||
def _auto_pool_size(self) -> int:
|
||||
"""
|
||||
智能计算连接池大小 - 根据 Worker 数量和 PostgreSQL 限制计算
|
||||
|
||||
Reference in New Issue
Block a user