@chenpu17/tcpmapping 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,32 +1,40 @@
1
- # TCP转发服务器
1
+ # TcpMapping
2
2
 
3
- 一个功能强大、安全可靠的TCP端口转发服务器,支持多端口映射、WebUI管理界面和实时连接监控。
3
+ TCP端口转发服务器,支持多端口映射、WebUI管理界面和实时连接监控。
4
4
 
5
5
  ## 功能特性
6
6
 
7
- ### 核心功能
8
- - **TCP协议端口转发** - 将TCP请求转发到后端服务器
9
- - **多端口映射配置** - 同时支持多个端口转发规则
10
- - **动态配置管理** - 通过WebUI实时添加/删除/启动/停止端口映射
7
+ - **TCP端口转发** - 将TCP流量转发到后端服务器
8
+ - **多端口映射** - 同时管理多个转发规则
9
+ - **WebUI管理** - 现代化Web界面,实时监控和管理
11
10
  - **连接监控** - 实时显示每个映射的连接数和流量统计
11
+ - **安全认证** - bcrypt密码加密、登录失败保护、会话管理
12
12
 
13
- ### WebUI管理界面
14
- - 现代化响应式Web界面
15
- - 实时系统状态监控(映射数、连接数、运行时间)
16
- - 每个端口映射的连接数和流量统计
17
- - 映射的启动/停止控制
13
+ ## 安装方式
18
14
 
19
- ### 安全特性
20
- - 强密码策略(8字符+大小写+数字)
21
- - 登录失败保护(5次失败锁定30分钟)
22
- - 会话管理(24小时自动超时)
23
- - bcrypt 12轮密码哈希加密
24
- - 自动生成的Session Secret
15
+ ### 方式一:NPM全局安装(推荐)
25
16
 
26
- ## 快速开始
17
+ ```bash
18
+ # 全局安装
19
+ npm install -g @chenpu17/tcpmapping
20
+
21
+ # 初始化配置文件
22
+ tcpmapping init
23
+
24
+ # 设置管理员密码
25
+ tcpmapping setup-password
26
+
27
+ # 启动服务
28
+ tcpmapping start
29
+ ```
30
+
31
+ ### 方式二:本地安装
27
32
 
28
- ### 安装
29
33
  ```bash
34
+ # 克隆项目
35
+ git clone https://github.com/chenpu17/TcpMapping.git
36
+ cd TcpMapping
37
+
30
38
  # 安装依赖
31
39
  npm install
32
40
 
@@ -37,8 +45,28 @@ npm run setup-password
37
45
  npm start
38
46
  ```
39
47
 
40
- ### 访问
41
- 启动后访问 **http://localhost:9999** 进入管理界面。
48
+ ## CLI命令
49
+
50
+ 全局安装后,可使用以下命令:
51
+
52
+ | 命令 | 说明 |
53
+ |------|------|
54
+ | `tcpmapping start` | 后台启动服务 |
55
+ | `tcpmapping stop` | 停止服务 |
56
+ | `tcpmapping restart` | 重启服务 |
57
+ | `tcpmapping status` | 查看服务状态 |
58
+ | `tcpmapping logs` | 查看最近日志 |
59
+ | `tcpmapping logs -f` | 实时跟踪日志 |
60
+ | `tcpmapping setup-password` | 设置管理员密码 |
61
+ | `tcpmapping init` | 创建默认配置文件 |
62
+ | `tcpmapping version` | 显示版本号 |
63
+ | `tcpmapping help` | 显示帮助信息 |
64
+
65
+ ## 访问WebUI
66
+
67
+ 启动服务后,访问 **http://localhost:9999** 进入管理界面。
68
+
69
+ 默认用户名:`admin`
42
70
 
43
71
  ## 配置说明
44
72
 
@@ -48,56 +76,152 @@ npm start
48
76
  {
49
77
  "mappings": [
50
78
  {
51
- "name": "服务名称",
79
+ "name": "Web服务",
52
80
  "listen": { "host": "0.0.0.0", "port": 8080 },
53
81
  "target": { "host": "192.168.1.100", "port": 3000 }
82
+ },
83
+ {
84
+ "name": "数据库",
85
+ "listen": { "host": "0.0.0.0", "port": 3307 },
86
+ "target": { "host": "192.168.1.100", "port": 3306 }
54
87
  }
55
88
  ],
56
- "webui": { "enabled": true, "port": 9999, "host": "0.0.0.0" },
57
- "logging": { "enabled": true, "level": "info" }
89
+ "webui": {
90
+ "enabled": true,
91
+ "port": 9999,
92
+ "host": "0.0.0.0"
93
+ },
94
+ "logging": {
95
+ "enabled": true,
96
+ "level": "info"
97
+ }
58
98
  }
59
99
  ```
60
100
 
61
- ## 项目结构
101
+ ### 配置项说明
102
+
103
+ | 配置项 | 说明 |
104
+ |--------|------|
105
+ | `mappings[].name` | 映射名称,用于标识 |
106
+ | `mappings[].listen.host` | 监听地址,0.0.0.0表示所有网卡 |
107
+ | `mappings[].listen.port` | 监听端口 |
108
+ | `mappings[].target.host` | 目标主机IP或域名 |
109
+ | `mappings[].target.port` | 目标端口 |
110
+ | `webui.enabled` | 是否启用WebUI |
111
+ | `webui.port` | WebUI端口,默认9999 |
112
+ | `logging.level` | 日志级别:debug/info/warn/error |
113
+
114
+ ## 使用示例
115
+
116
+ ### 示例1:转发本地开发服务
62
117
 
118
+ 将本地8080端口转发到开发服务器的3000端口:
119
+
120
+ ```json
121
+ {
122
+ "name": "开发服务",
123
+ "listen": { "host": "0.0.0.0", "port": 8080 },
124
+ "target": { "host": "127.0.0.1", "port": 3000 }
125
+ }
63
126
  ```
64
- ├── server.js # 主服务器
65
- ├── config.json # 端口映射配置
66
- ├── auth-config.json # 认证配置(敏感)
67
- ├── setup-password.js # 密码设置工具
68
- ├── package.json # 项目配置
69
- ├── .gitignore # Git忽略规则
70
- ├── public/ # Web界面
71
- │ ├── login.html # 登录页面
72
- │ └── dashboard.html # 管理面板
73
- └── docs/ # 文档目录
74
- ├── API.md # API接口文档
75
- ├── 功能总结.md # 功能清单
76
- └── 安全配置说明.md # 安全指南
127
+
128
+ ### 示例2:转发远程数据库
129
+
130
+ 将本地3307端口转发到远程MySQL:
131
+
132
+ ```json
133
+ {
134
+ "name": "MySQL",
135
+ "listen": { "host": "127.0.0.1", "port": 3307 },
136
+ "target": { "host": "db.example.com", "port": 3306 }
137
+ }
77
138
  ```
78
139
 
140
+ ### 示例3:通过WebUI动态添加
141
+
142
+ 1. 访问 http://localhost:9999
143
+ 2. 登录管理界面
144
+ 3. 点击"添加映射"按钮
145
+ 4. 填写映射信息并保存
146
+
147
+ ## 安全特性
148
+
149
+ - **强密码策略** - 8字符以上,包含大小写字母和数字
150
+ - **登录保护** - 5次失败后锁定30分钟
151
+ - **会话超时** - 24小时自动过期
152
+ - **密码加密** - bcrypt 12轮哈希
153
+
79
154
  ## API接口
80
155
 
81
156
  详细API文档请参阅 [docs/API.md](docs/API.md)
82
157
 
83
- 主要接口:
84
- - `GET /api/health` - 健康检查(无需认证)
85
- - `POST /api/login` - 登录
86
- - `GET /api/mappings` - 获取映射列表(含连接数统计)
87
- - `POST /api/mappings` - 添加映射
88
- - `PUT /api/mappings/:id` - 更新映射
89
- - `DELETE /api/mappings/:id` - 删除映射
90
- - `POST /api/mappings/:id/start` - 启动映射
91
- - `POST /api/mappings/:id/stop` - 停止映射
92
- - `GET /api/connections` - 获取连接状态
93
- - `GET /api/status` - 获取系统状态
158
+ ### 快速参考
159
+
160
+ ```bash
161
+ # 健康检查(无需认证)
162
+ curl http://localhost:9999/api/health
163
+
164
+ # 登录
165
+ curl -X POST http://localhost:9999/api/login \
166
+ -H "Content-Type: application/json" \
167
+ -d '{"username":"admin","password":"YourPassword"}' \
168
+ -c cookies.txt
169
+
170
+ # 获取映射列表
171
+ curl http://localhost:9999/api/mappings -b cookies.txt
172
+
173
+ # 添加映射
174
+ curl -X POST http://localhost:9999/api/mappings \
175
+ -H "Content-Type: application/json" \
176
+ -d '{"name":"测试","listen":{"port":8888},"target":{"host":"127.0.0.1","port":80}}' \
177
+ -b cookies.txt
178
+ ```
179
+
180
+ ## 项目结构
181
+
182
+ ```
183
+ ├── bin/
184
+ │ └── tcpmapping.js # CLI入口
185
+ ├── public/
186
+ │ ├── login.html # 登录页面
187
+ │ └── dashboard.html # 管理面板
188
+ ├── docs/
189
+ │ └── API.md # API文档
190
+ ├── server.js # 主服务器
191
+ ├── setup-password.js # 密码设置工具
192
+ ├── config.json # 端口映射配置
193
+ └── package.json # 项目配置
194
+ ```
195
+
196
+ ## 常见问题
94
197
 
95
- ## 技术栈
198
+ ### Q: 忘记密码怎么办?
96
199
 
97
- - **后端**: Node.js, Express.js, bcryptjs
98
- - **前端**: 原生HTML/CSS/JavaScript
99
- - **安全**: bcrypt密码哈希, Session管理
200
+ 运行密码重置命令:
201
+ ```bash
202
+ # NPM全局安装
203
+ tcpmapping setup-password
204
+
205
+ # 本地安装
206
+ npm run reset-password
207
+ ```
208
+
209
+ ### Q: 如何查看服务是否运行?
210
+
211
+ ```bash
212
+ tcpmapping status
213
+ ```
214
+
215
+ ### Q: 端口被占用怎么办?
216
+
217
+ 修改 `config.json` 中的 `webui.port` 或映射的 `listen.port`。
218
+
219
+ ### Q: 如何查看实时日志?
220
+
221
+ ```bash
222
+ tcpmapping logs -f
223
+ ```
100
224
 
101
225
  ## 许可证
102
226
 
103
- MIT License
227
+ MIT License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chenpu17/tcpmapping",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "TCP端口转发服务器,支持多端口映射、WebUI管理界面和实时连接监控",
5
5
  "main": "server.js",
6
6
  "bin": {