todo

监听进程信号,优雅关闭服务

读取 conn 时加上超时机制

检查 ip 时需要判断同一 ip 的不同写法

代理节点超时控制

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

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

数据通道池化

长期

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

数据通道支持 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%