开发了一个HClient CLI Web 管理面板

忘机山人

发布于137天前
博客图片修整中,看不了可以先搜索公众号“忘机山人”看。

https://appstore.lazycat.cloud/#/shop/detail/community.lazycat.app.openvpn


为了方便服务端配置凭证,所以基于 Flask 封装了 [hclient-cli](https://gitee.com/lazycatcloud/hclient-cli/blob/master/README.md#hclient-cli)  HClientWeb 管理界面,提供可视化操作替代命令行。


![f1d0742ed51e237067601acbae1fb341.png](https://dl.playground.lazycat.cloud/guidelines/459/7621a834-b4fa-4e0b-a0ac-066fe6a58192.png "f1d0742ed51e237067601acbae1fb341.png")

## 功能

- 🚀 启动/停止 CLI(支持 TUN 模式)
- ➕ 添加微服(输入 boxname、用户名、密码)
- 🔐 设置两步验证码 (TFA)
- 📋 查看/删除微服列表
- ℹ️ 查看客户端信息

## 快速开始

### 1. 下载 hclient-cli 和 Web 管理面板

我开源到了这个,可以使用git clone进行下载:
```
https://github.com/cloudsmithy/hClient-docker.git
```

然后从 [Releases](https://gitee.com/lazycatcloud/hclient-cli/releases) 下载HClient CLI对应系统版本,放到项目目录:

```bash
# Linux/macOS
chmod +x ./hclient-cli-linux-amd64  # 或其他对应版本
mv ./hclient-cli-linux-amd64 ./hclient-cli
```

> 要分得清是X86还是ARM

### 2. 本地运行(不用 Docker)

```bash
pip install -r requirements.txt
python app.py
```

因为用Docker部署会遇到比较复杂的网络问题,需要修改路由表或者network=host,作者才疏学浅,暂时没有适配的打算。

### 3. 访问面板

打开浏览器访问 http://IP:8080

如果你运行在服务端,这里的IP就是服务端的ip,当然也可以使用你的windows或者Mac来运行这个程序。虽然起初是为了给headless服务用的,但是也同样适用于桌面端。


## 使用说明

### 添加微服

1. 在「CLI 控制」卡片中,确认 CLI 路径正确(默认 `./hclient-cli`)
2. 点击「启动 CLI」
3. 在「添加微服」卡片中填写:
   - 微服名称 (bname)
   - 用户名 (uid)
   - 密码 (password)
4. 点击「添加微服」



![image.png](https://dl.playground.lazycat.cloud/guidelines/459/ea11ef9a-aabc-4604-8ef1-a3404450b477.png "image.png")

### 设置两步验证

如果微服开启了两步验证:
1. 在「设置两步验证码」卡片中填写微服名称和验证码
2. 点击「设置验证码」

### 访问微服

CLI 启动后,可通过 HTTP 代理访问微服: (这个待实现)

```bash
curl -x http://127.0.0.1:61090 https://$boxname.heiyu.space
```

如果启用了 TUN 模式,可直接访问:

```bash
curl https://$boxname.heiyu.space
```


### TUN 模式

勾选「启用 TUN 模式」后启动 CLI,可无需配置代理直接访问微服。Docker 容器已配置特权模式和网络权限。(目前只做了tun模式的)


## 原始 CLI API 参考

Web 面板封装了以下 CLI HTTP API:

| 操作 | API |
|------|-----|
| 添加微服 | `POST /add_box?bname=&uid=&password=` |
| 设置 TFA | `POST /add_tfa?bname=&tfa=` |
| 列举微服 | `GET /box_list` |
| 删除微服 | `DELETE /del_box?bname=` |
| 客户端信息 | `GET /client_info` |

## 注意事项

- macOS 用户:5000 端口被 AirPlay 占用,已改用 8080 端口
- TUN 模式需要特权权限,Docker 已配置
- CLI 默认监听 `127.0.0.1:7777` 提供管理 API,`127.0.0.1:61090` 提供 HTTP 代理

评论

0

暂无评论

说点什么呢~
收藏
0
0
0