用了多年的 ssh -D
作为 OpenWRT 的后端,今日才发现 OpenSSH 实现的 -D
参数的 SOCKS 协议只支持 TCP CONNECT 命令,不支持 UDP;所以我的软路由一直不支持代理 UDP。
另外,由于目前的构架偏复杂:
- 需要运行 http2tcp
- 提供 TCP over HTTPS
- 需要运行 SSH
- 提供本地的 SOCKS5 端口绑定;
- 提供 TCP Multiplexing。
导致部署偏复杂,运维成本较高。所以拟重写部分组件:
- 重写当前的 http2tcp 实现,以支持作为 package 供外部使用
-
实现一个同时支持 TCP & UDP 转发的 SOCKS 协议端找到的开源版本不太好用,重写- 发现我根本不需要处理 SOCKS 请求细节,直接转发给服务器即可
- 支持 Multiplexing 以将 SOCKS5 协议通过 http2tcp 转发