内容提要
devroute 是一款轻量本地开发调试转发工具,内存占用 3.5MB 起,无界面模式 1.6MB,单文件即拷即用。单端口同时支持 SOCKS5 和 HTTP 代理,可按 Host 加路径前缀转发并重写路径。带原生 GUI,支持规则编辑、实时统计、日志、系统代理联动及中英文主题切换。配置存于 config.toml,改动即时生效,转发失败可返回 503 或回退原地址。
延伸解读
轻量级设计带来的资源效率
devroute 在 GUI 空闲时内存占用约 3.5MB,开启代理后约 4MB,无界面模式仅约 1.6MB。这种低资源消耗使其适合长时间常驻运行,尤其适合本地开发环境,不会对系统造成明显负担。单文件 2MB 即拷即用,无需安装,进一步降低了使用门槛。
双协议代理与规则转发的灵活性
同一监听端口可自动识别 SOCKS5 和 HTTP 代理协议,简化了客户端配置。通过 Host:Port 和路径前缀匹配规则,可将请求转发到不同目标并重写路径。例如,将 /api 前缀的请求转发到本地服务并去除前缀,便于前后端联调或服务迁移。
原生 GUI 与系统代理联动
采用 Rust 和 FLTK 实现原生 GUI,不依赖 WebView 或浏览器内核,启动快速且资源占用低。GUI 提供规则编辑、实时统计、日志查看、系统代理一键设置及主题语言切换。系统代理联动可自动修改系统设置,停止时恢复,方便浏览器等应用直接使用。
配置热重载与失败处理
配置文件 config.toml 修改后即时生效,无需重启。转发失败时可选择返回 503 错误或回退到原始地址,这为调试提供了灵活性。用户可根据需要调整规则,快速验证不同转发策略,而无需中断当前工作流程。
Q&A
devroute 是什么?它主要用来做什么?
devroute 是一款用 Rust 编写的本地开发调试转发工具,主要用于在本地开发调试时转发网络请求。它极致轻量,内存占用仅 3.5MB 起(无界面模式 1.6MB),单文件即拷即用,无需本地部署前端即可调试。
devroute 支持哪些代理协议?
devroute 在同一监听端口上同时支持 SOCKS5 和 HTTP 代理协议,能够自动识别并处理 CONNECT 和绝对路径请求。
devroute 的转发规则是如何配置的?
转发规则通过 config.toml 文件配置,每条规则包含 matcher 和 forward 两部分。matcher 指定待匹配的 Host:Port 和路径前缀,forward 指定转发目标地址和路径前缀。例如:matcher = { addr = "192.168.120.177:81", path_prefix = "/api" } 和 forward = { addr = "127.0.0.1:8686", path_prefix = "" },请求 http://192.168.120.177:81/api/users 会被转发到 http://127.0.0.1:8686/users。
devroute 的 GUI 有哪些功能?
devroute 的 GUI 提供规则增删改、保存热重载、连接/流量统计、实时日志、一键系统代理、深浅色主题切换以及中英文界面切换等功能。
devroute 如何设置系统代理?
在 GUI 中勾选“系统代理”后启动,代理会自动写入系统设置(Windows 注册表 / macOS networksetup / Linux gsettings),停止或关闭窗口时自动取消。
devroute 的配置文件修改后需要重启吗?
不需要。devroute 的配置文件 config.toml 改动会即时生效,支持热重载。
devroute 转发失败时会怎么处理?
转发失败时,devroute 可以返回 503 状态码,或者回退到原始地址。