# local-oss **Repository Path**: nachao/local-oss ## Basic Information - **Project Name**: local-oss - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FNOSS - 内网穿透客户端 (Node.js 版本) Node.js 版本的 Web Transfer 客户端,支持全局安装和交互式配置。 ## 安装 ### 全局安装(推荐) ```bash npm install -g @fangna/nat ``` 安装后,可以在任何地方使用 `fnoss` 命令。 ### 本地安装 ```bash npm install ``` ## 使用方法 ### 启动客户端 ```bash fnoss ``` 启动后会进入交互式配置界面,依次输入: 1. **服务器地址**:格式为 `IP:端口` 或 `域名:端口`,例如 `162.14.120.45:9000` 2. **服务代码**:用于区分不同的客户端,只能包含字母、数字、连字符和下划线 3. **本地服务端口**:本地要转发的服务端口,例如 `8080`(会自动转换为 `http://localhost:8080`) 4. **确认启动**:确认配置后启动客户端 ### 示例 ```bash $ fnoss ======================================== Web Transfer Client - Node.js 版本 ======================================== ? 请输入服务器地址 (格式: IP:端口 或 域名:端口) 162.14.120.45:9000 ? 请输入服务代码 (用于区分不同的客户端) my-service ? 请输入本地服务端口 8080 ? 确认启动客户端? Yes ======================================== 配置信息: ======================================== 服务代码: my-service 服务器地址: 162.14.120.45:9000 本地目标: http://localhost:8080 ======================================== 正在连接服务器... [2025-11-21 10:00:00.000] 配置验证通过,开始连接服务器... [2025-11-21 10:00:00.001] 服务器地址: 162.14.120.45:9000 [2025-11-21 10:00:00.002] 本地目标: http://localhost:8080 [2025-11-21 10:00:00.003] 服务代码: my-service [2025-11-21 10:00:00.100] 尝试连接到服务器: 162.14.120.45:9000 [2025-11-21 10:00:00.200] 已连接到服务器 [2025-11-21 10:00:00.201] 已注册服务代码: my-service ``` ### 停止客户端 按 `Ctrl+C` 停止客户端。 ## 配置说明 ### 服务器地址 格式:`IP:端口` 或 `域名:端口` 例如: - `162.14.120.45:9000` - `tunnel.example.com:9000` ### 服务代码 服务代码用于区分不同的客户端,在访问时使用: ``` http://服务器IP:8080/服务代码/路径 ``` 例如,如果服务代码是 `my-service`,访问: ``` http://162.14.120.45:8080/my-service/api/users ``` 请求会被转发到本地服务: ``` http://localhost:8080/api/users ``` ### 本地服务端口 输入本地服务的端口号,客户端会自动转换为 `http://localhost:端口`。 例如: - 输入 `8080` → 转发到 `http://localhost:8080` - 输入 `3000` → 转发到 `http://localhost:3000` ## 功能特性 - ✅ **交互式配置**:启动时通过命令行交互配置参数 - ✅ **自动重连**:连接断开后自动重连服务器 - ✅ **实时日志**:显示连接状态和请求转发日志 - ✅ **错误处理**:完善的错误处理和提示 - ✅ **跨平台**:支持 Windows、Linux、macOS ## 与 Go 版本的区别 | 特性 | Go 版本 | Node.js 版本 | |------|---------|--------------| | 安装方式 | 编译二进制文件 | npm 全局安装 | | 配置方式 | 构建时注入或配置文件 | 交互式命令行配置 | | 部署方式 | Windows/Linux 服务 | 手动启动 | | 适用场景 | 生产环境、长期运行 | 开发测试、快速使用 | ## 开发 ### 本地开发 ```bash # 安装依赖 npm install # 启动(开发模式) npm start ``` ### 发布到 npm ```bash # 登录 npm npm login # 发布 npm publish ``` ## 故障排查 ### 连接失败 1. 检查服务器地址和端口是否正确 2. 检查网络连接:`ping 服务器IP` 3. 检查防火墙设置 4. 确认服务器已启动并监听对应端口 ### 服务代码已存在 如果提示服务代码已被其他客户端使用,请: 1. 更换服务代码 2. 或停止使用该服务代码的其他客户端 ### 本地服务无法访问 1. 确认本地服务已启动 2. 检查本地服务端口是否正确 3. 测试本地服务:`curl http://localhost:端口` ## 许可证 MIT License