2025-02-27 23:34:31 +08:00
2025-02-27 18:07:00 +08:00
2025-02-25 11:31:51 +08:00
2025-02-27 23:34:31 +08:00
2025-02-24 14:35:13 +08:00
2025-02-25 16:03:21 +08:00
2025-02-24 14:35:13 +08:00
2025-02-27 23:34:31 +08:00

todo

认证失败应当是 Warn 级别而非 Error 级别,需要修改

考虑再修改逻辑,等待子协程退出不应当级联,而是放在包全局管理,否则流程可能有问题

ProxyConn 直接实现 Conn 相同的接口,不再取出 Conn 使用

web 服务目录结构,不要 app 那层了

配置退出等待时间

log 控制台颜色,输出错误堆栈

读取 conn 时加上超时机制

代理节点超时控制

网关根据代理节点对目标服务连接的反馈,决定向用户返回的 socks 响应

数据通道池化

在控制通道直接传输目标地址,客户端可以同时开始数据通道和目标地址的连接建立

长期

实现一个 socks context 以在子组件中获取 socks 相关信息

代理端口支持混合端口转发

数据通道支持 tcp 多路复用(分离逻辑流)

👆 进阶黑魔法 multipath tcp + 多路复用

考虑一下连接安全性

内部接口 rtt 是否还有优化空间当前30-300ms根据内容大小增长

代码清理

检查 slog 级别:

ERR: 除非有必要,否则全部 error 都使用 errors.Wrap() 包裹(如果下游有返回 err并附带本层业务信息return 到上层统一打印

其他级别日志就地打印Info 只用来跟踪关键流程

开发相关

环境变量

环境变量只记录在程序中用到的变量

构建期变量,比如 docker-compose 中的变量,以及其他配套服务的环境变量,直接写死

新增环境变量时,需要确保两个位置正确传递了变量

  1. 在对应端的 .env.sample 文件中添加变量
  2. 复制到 .env 文件中,并修改变量值
  3. 在 docker-compose.yml 和程序中使用变量

更新测试环境

  1. 构建项目
  2. 使用测试配置 .env.test 远程启动 docker

转发服务

Description
静态代理转发服务器和客户端
Readme 11 MiB
Languages
Go 90%
PowerShell 9%
Dockerfile 1%