说明:本文只做项目体检,不修改代码。按“高风险 / 中风险 / 低风险”排序,优先列出最可能影响稳定性、排障和后续维护的问题。
配置缺少严格校验
config.py:54-89Config.load() 直接读取 JSON 并套默认值,缺少字段类型、取值范围、必填项的统一校验。并发状态机复杂,容易出现隐性竞态
relay_client.py:49-235、transparent_edge.py:197-847、socks_edge.py:241-680异常处理偏宽,真实错误容易被吞掉
relay_client.py、relay_server.py、transparent_edge.py、socks_edge.pyexcept Exception,部分分支只做 pass 或简单打印。日志格式强依赖,汇总结果脆弱
cli.py:18-295summary 通过正则解析运行日志,完全依赖日志文本格式稳定。缺少自动化测试覆盖
日志输出偏“人读友好”,不够机器化
relay_client.py、relay_server.py、transparent_edge.py、socks_edge.pyprint(...) 风格输出,缺少统一级别、字段、结构化上下文。UDP 路径语义较复杂,文档和实现容易产生认知偏差
README.md、scripts/start-transparent.sh、socks_edge.py、transparent_edge.pysocks_port > 0 时会优先走 SOCKS 入口。重连与健康检查阈值偏经验化
config.py:31-38、relay_client.py:60-75、scheduler.py:24-58统计与调度逻辑耦合在一起,后续可维护性一般
scheduler.py、cli.py部分默认值偏保守,未必适合所有场景
config.py:24-53redundancy、direct_redundancy、udp_copy_interval_ms、tcp_loser_grace_ms 都是通用默认值。README.md 信息量较大,入门成本略高
README.md脚本命名和入口较多,初次使用容易混淆
scripts/start.sh、scripts/start-transparent.sh、scripts/start_udp.sh、scripts/start-relay.sh