# cbjq-via **Repository Path**: lithtech123_admin/cbjq-via ## Basic Information - **Project Name**: cbjq-via - **Description**: 是一个面向尘白禁区游戏官服 TCP 协议的透明转发网关,支持全包日志、Proto 解析、可配置包过滤与热重载。用于在正式服配合相关补丁开启gm菜单。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-08 - **Last Updated**: 2026-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ViaProxy `ViaProxy` 是一个面向尘白禁区正式服游戏链路的 TCP 透明转发网关(.NET 8.0)。 项目核心目标是:在客户端连入 Via 后,将流量转发到真实服务器,并在命中 `gm.notifylogin` 时自动改写字段值,配合客户端补丁实现正式服环境下强开 GM 菜单。 ## 功能特性 - 面向正式服,仅处理游戏 TCP 链路 - 按规则改写特定下行包(重点:`gm.notifylogin`) - 与客户端补丁配合,实现正式服强开 GM 菜单 - 双向全包日志(方向、包名、`CmdId`、长度、内容) - 断线检测与自动连接回收 - 配置文件驱动(首次启动自动生成) - 控制台命令支持热重载与重启 ## 项目结构 - `ViaProxy.sln`:解决方案 - `ViaProxy/`:主程序(监听、连接管理、命令、配置) ## 运行环境 - .NET SDK 8.0+ - Windows(当前主要测试环境) ## 快速开始 ### 1) 构建 ```bash dotnet build .\ViaProxy.sln ``` ### 2) 运行 ```bash dotnet run --project .\ViaProxy\ViaProxy.csproj ``` 首次运行会在工作目录生成配置文件: - `Config/Config.json` ### 3) 修改真实服务器地址 编辑 `Config/Config.json` 中的以下字段: - `Proxy.RemoteAddress` - `Proxy.RemotePort` 修改后在控制台输入: - `reload`(重载配置并重启服务) ## 配置说明(Config/Config.json) ```json { "Path": { "ConfigPath": "Config" }, "Proxy": { "BindAddress": "0.0.0.0", "ListenPort": 21000, "RemoteAddress": "127.0.0.1", "RemotePort": 21000, "EnablePacketLog": true, "EnableGmMenu": true, "DisconnectCheckIntervalSeconds": 2 } } ``` 字段含义: - `BindAddress`:Via 监听地址 - `ListenPort`:Via 监听端口(客户端连这个) - `RemoteAddress`:真实游戏服务器地址 - `RemotePort`:真实游戏服务器端口 - `EnablePacketLog`:是否打印包日志 - `EnableGmMenu`:命中 `gm.notifylogin` 时写入的 `IsDebug` 值(`true` 为开启 GM,`false` 为关闭) - `DisconnectCheckIntervalSeconds`:断线检测间隔(秒) ## 控制台命令 - `help` / `h`:查看帮助 - `status` / `info`:查看服务状态与配置路径 - `connections` / `conn`:查看在线连接 - `reload`:重载配置并重启服务 - `restart`:按当前配置重启服务 - `stop`:停止服务 - `start`:启动服务 - `exit` / `quit`:退出程序 ## 工作流程说明 1. 客户端连接 Via 监听端口 2. Via 建立到真实游戏服的上游连接 3. 双向读取并解析数据包(用于日志与过滤判断) 4. 默认按原始字节转发到对端 5. 若命中目标包(如下行 `gm.notifylogin`),自动将其 `IsDebug` 重写为配置值后转发 6. 客户端补丁侧与 Via 的改写结果配合,实现正式服强开 GM 菜单 ## 项目目的 - 本项目是为“正式服转发 + 特定包改写”场景服务。 - 主要用途是稳定拦截会影响 GM 菜单状态的关键下行包。 - 通过网络层改写与客户端补丁联动,实现 GM 菜单在正式服链路下保持开启。 ## 致谢 - 感谢所有参与测试与反馈的使用者。 ## 注意事项 - 本项目当前仅覆盖“游戏 TCP 链路”转发。 - 若版本更新导致协议变化,请优先观察日志中的异常包。 - 如需关闭 GM 菜单,可将 `EnableGmMenu` 设为 `false` 后执行 `reload`。 - 建议在测试环境使用,避免影响正式游戏流程。