# lanproxy-client **Repository Path**: zhu260824/lanproxy-client ## Basic Information - **Project Name**: lanproxy-client - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-03 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lanproxy-client lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持 TCP 和 UDP 流量转发,可支持任何 TCP 协议上层应用(Web、SSH、远程桌面、游戏服务等)。本项目为 lanproxy 的客户端部分。 ## 项目简介 lanproxy-client 是 lanproxy 内网穿透解决方案的客户端组件,通过该客户端可以将内网服务暴露到公网。该客户端基于 Netty 异步网络框架开发,采用自定义二进制协议进行通信,支持 SSL 加密传输,具有高性能、低延迟的特点。 ## 技术架构 - **网络框架**:Netty 4.0.36 - **通信协议**:自定义二进制协议(基于 LengthFieldBasedFrameDecoder) - **安全传输**:SSL/TLS 加密 - **构建工具**:Maven ### 模块说明 | 模块 | 说明 | |------|------| | proxy-client | 客户端核心实现,负责与代理服务器建立连接并转发流量 | | proxy-common | 公共工具类,包括配置管理、JSON 解析等 | | proxy-protocol | 协议实现,包含消息编解码、心跳检测等 | ## 功能特性 - 支持 TCP 协议代理 - SSL 安全传输 - 自动重连机制 - 心跳保活 - 连接池管理 - 支持多种内网服务代理(HTTP、SSH、RDP、游戏服务器等) ## 快速开始 ### 环境要求 - Java 1.8+ - Maven 3.x ### 编译构建 ```bash # 克隆项目后,进入项目目录 cd lanproxy-client # 编译项目 mvn clean package ``` ### 配置说明 编辑 `proxy-client/src/main/resources/config.properties` 或 `distribution/proxy-client-0.1/conf/config.properties`: ```properties # 代理服务器地址 server.host=your-proxy-server.com # 代理服务器端口 server.port=8093 # 客户端标识密钥 client.key=your-client-key # SSL 密钥库路径 ssl.jks.path=conf/test.jks # SSL 密钥库密码 ssl.jks.password=your-jks-password ``` ### 启动服务 ```bash # Linux/Mac chmod +x distribution/proxy-client-0.1/bin/startup.sh ./distribution/proxy-client-0.1/bin/startup.sh # 或使用项目根目录脚本 ./start.sh # Windows distribution\proxy-client-0.1\bin\startup.bat ``` ### 停止服务 ```bash # Linux/Mac ./distribution/proxy-client-0.1/bin/stop.sh # 或使用项目根目录脚本 ./stop.sh ``` ### 查看状态 ```bash ./status.sh ``` ### 重启服务 ```bash ./restart.sh ``` ## 核心类说明 ### ProxyClientContainer 客户端容器主类,负责初始化 Netty 客户端、连接代理服务器、管理生命周期。 ```java // 核心方法 public void start() // 启动客户端 public void stop() // 停止客户端 ``` ### ClientChannelMannager 通道管理器,负责管理代理通道、真实服务器通道、连接池等。 ```java // 核心方法 public static void borrowProxyChanel(Bootstrap bootstrap, final ProxyChannelBorrowListener borrowListener) public static void returnProxyChanel(Channel proxyChanel) public static Channel getRealServerChannel(String userId) ``` ### ProxyMessage 代理消息类,定义客户端与服务器之间的通信协议格式。 ```java // 消息类型 TYPE_HEARTBEAT // 心跳 C_TYPE_AUTH // 认证 TYPE_CONNECT // 连接 TYPE_DISCONNECT // 断开 P_TYPE_TRANSFER // 数据传输 ``` ## 目录结构 ``` lanproxy-client/ ├── proxy-client/ # 客户端模块 │ ├── src/main/java/ # Java 源码 │ │ └── org/fengfei/lanproxy/client/ │ │ ├── ProxyClientContainer.java │ │ ├── ClientChannelMannager.java │ │ ├── SslContextCreator.java │ │ ├── handlers/ # 处理器 │ │ └── listener/ # 监听器 │ └── src/main/resources/ # 配置文件 ├── proxy-common/ # 公共模块 ├── proxy-protocol/ # 协议模块 ├── distribution/ # 发行版本 │ └── proxy-client-0.1/ │ ├── bin/ # 启动脚本 │ ├── conf/ # 配置文件 │ ├── lib/ # 依赖 jar 包 │ └── logs/ # 日志文件 └── *.sh # 管理脚本 ``` ## 常见问题 ### 1. 连接不上代理服务器 - 检查 server.host 和 server.port 配置是否正确 - 确认客户端密钥是否与服务器端配置匹配 - 检查防火墙是否放行了对应端口 ### 2. SSL 握手失败 - 确认 jks 文件路径和密码配置正确 - 检查证书是否过期 ### 3. 代理服务不稳定 - 检查网络连接状况 - 适当调整心跳检测参数 ## 相关链接 - [lanproxy 官网](https://github.com/ffay/lanproxy) - [lanproxy-server](https://gitee.com/ffay/lanproxy-server) - 代理服务器端 ## 许可证 本项目基于 MIT 许可证开源。