# LazycatNetpipe **Repository Path**: leavingme/lazycat-netpipe ## Basic Information - **Project Name**: LazycatNetpipe - **Description**: lazycat netpipe 简易内网穿透 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-07 - **Last Updated**: 2026-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 轻量级内网穿透 这是一个基于 Netty 的轻量级内网穿透工具,支持 TCP 协议转发。 ### 模块说明 - `lazycat-netpipe-common`: 公共模块,包含协议定义、编解码器等 - `lazycat-netpipe-server`: 服务端模块 - `lazycat-netpipe-client`: 客户端模块 ### 使用方法 #### 启动服务端 ```bash cd lazycat-netpipe-server mvn exec:java -Dexec.mainClass="xyz.lwm.lazycat.netpipe.server.NetpipeServer" ``` 或者运行构建后的 jar 包: ```bash java -jar lazycat-netpipe-server-1.0-SNAPSHOT.jar ``` #### 启动客户端 ```bash cd lazycat-netpipe-client mvn exec:java -Dexec.mainClass="xyz.lwm.lazycat.netpipe.client.NetpipeClient" ``` 或者运行构建后的 jar 包: ```bash java -jar lazycat-netpipe-client-1.0-SNAPSHOT.jar [server_host] [server_port] ``` 默认连接到 localhost:8080,可以通过命令行参数指定服务器地址和端口。 ### 协议格式 ``` +----------+-----------+---------------+---------+-------------+------+ | 魔数(1) | 消息类型(4) | 头部长度(4) | 头部(N) | 数据长度(4) | 数据(M) | +----------+-----------+---------------+---------+-------------+------+ ``` 其中: - 魔数:固定值 'F' - 消息类型:定义在 MsgType 枚举中 - 头部长度:头部字节数 - 头部:使用 Protostuff 序列化的 Headers 对象 - 数据长度:数据字节数 - 数据:具体的数据内容 ### 支持的消息类型 - REGISTER: 客户端注册 - AUTH: 认证消息 - CONNECT: 连接请求 - DISCONNECT: 断开连接 - KEEPALIVE: 心跳包 - DATA: 数据传输