first commit
This commit is contained in:
183
README.md
Normal file
183
README.md
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
# LinkMaster Node
|
||||||
|
|
||||||
|
LinkMaster 节点服务,用于执行网络测试任务。
|
||||||
|
|
||||||
|
## 功能
|
||||||
|
|
||||||
|
- HTTP GET/POST 测试
|
||||||
|
- Ping 测试
|
||||||
|
- DNS 查询
|
||||||
|
- Traceroute 路由追踪
|
||||||
|
- Socket 连接测试
|
||||||
|
- TCPing 端口延迟测试
|
||||||
|
- FindPing IP段批量ping检测
|
||||||
|
- 持续 Ping/TCPing 测试
|
||||||
|
- 心跳上报
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
### 方式一:一键安装(推荐)
|
||||||
|
|
||||||
|
从 GitHub 一键安装,只需指定后端服务器地址。安装脚本会自动克隆源码并编译安装:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 基本用法(替换为实际的 GitHub 仓库地址)
|
||||||
|
curl -fsSL https://raw.githubusercontent.com/yourbask/linkmaster-node/main/install.sh | bash -s -- http://your-backend-server:8080
|
||||||
|
|
||||||
|
# 示例
|
||||||
|
# 节点和后端在同一服务器
|
||||||
|
curl -fsSL https://raw.githubusercontent.com/yourbask/linkmaster-node/main/install.sh | bash -s -- http://localhost:8080
|
||||||
|
|
||||||
|
# 节点和后端在不同服务器
|
||||||
|
curl -fsSL https://raw.githubusercontent.com/yourbask/linkmaster-node/main/install.sh | bash -s -- http://192.168.1.100:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
**重要说明:**
|
||||||
|
- 节点端需要直接连接后端服务器(端口 8080),不是前端地址
|
||||||
|
- 前端通过 `/api` 路径代理到后端,但节点端不使用代理
|
||||||
|
- 如果后端在公网,使用公网 IP 或域名
|
||||||
|
- 如果后端在内网,使用内网 IP
|
||||||
|
- **本项目是独立的 GitHub 仓库**,与前后端项目分离
|
||||||
|
|
||||||
|
**安装说明:**
|
||||||
|
- 自动检测系统类型和架构
|
||||||
|
- 自动安装系统依赖(包括 Git 和 Go)
|
||||||
|
- 从 GitHub 克隆源码到 `/opt/linkmaster-node`
|
||||||
|
- 自动编译并安装二进制文件
|
||||||
|
- 自动创建 systemd 服务
|
||||||
|
- 自动启动服务并验证
|
||||||
|
|
||||||
|
**指定分支安装:**
|
||||||
|
```bash
|
||||||
|
GITHUB_BRANCH=develop curl -fsSL https://raw.githubusercontent.com/yourbask/linkmaster-node/main/install.sh | bash -s -- http://your-backend-server:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方式二:手动编译安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 克隆仓库
|
||||||
|
git clone https://github.com/yourbask/linkmaster-node.git
|
||||||
|
cd linkmaster-node
|
||||||
|
|
||||||
|
# 编译
|
||||||
|
go build -o agent ./cmd/agent
|
||||||
|
|
||||||
|
# 安装(需要root权限)
|
||||||
|
sudo cp agent /usr/local/bin/linkmaster-node
|
||||||
|
sudo chmod +x /usr/local/bin/linkmaster-node
|
||||||
|
|
||||||
|
# 或使用安装脚本
|
||||||
|
./install.sh http://your-backend-server:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方式三:手动运行
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 克隆仓库
|
||||||
|
git clone https://github.com/yourbask/linkmaster-node.git
|
||||||
|
cd linkmaster-node
|
||||||
|
|
||||||
|
# 运行(会自动拉取最新代码并编译)
|
||||||
|
BACKEND_URL=http://your-backend-server:8080 ./run.sh start
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置
|
||||||
|
|
||||||
|
### 环境变量
|
||||||
|
|
||||||
|
- `BACKEND_URL`: 后端服务地址(必需,默认: http://localhost:8080)
|
||||||
|
- `CONFIG_PATH`: 配置文件路径(可选,默认: config.yaml)
|
||||||
|
|
||||||
|
### 配置文件(可选)
|
||||||
|
|
||||||
|
创建 `config.yaml` 文件:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
server:
|
||||||
|
port: 2200
|
||||||
|
backend:
|
||||||
|
url: http://your-backend-server:8080
|
||||||
|
heartbeat:
|
||||||
|
interval: 60
|
||||||
|
debug: false
|
||||||
|
```
|
||||||
|
|
||||||
|
## 运行脚本
|
||||||
|
|
||||||
|
使用 `run.sh` 脚本管理节点端。**每次启动时会自动拉取最新代码并重新编译**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动服务(会自动拉取最新代码并编译)
|
||||||
|
./run.sh start
|
||||||
|
|
||||||
|
# 停止服务
|
||||||
|
./run.sh stop
|
||||||
|
|
||||||
|
# 重启服务(会拉取最新代码并重新编译)
|
||||||
|
./run.sh restart
|
||||||
|
|
||||||
|
# 查看状态
|
||||||
|
./run.sh status
|
||||||
|
|
||||||
|
# 查看日志
|
||||||
|
./run.sh logs
|
||||||
|
|
||||||
|
# 查看完整日志
|
||||||
|
./run.sh logs-all
|
||||||
|
|
||||||
|
# 指定后端地址启动
|
||||||
|
BACKEND_URL=http://192.168.1.100:8080 ./run.sh start
|
||||||
|
```
|
||||||
|
|
||||||
|
**重要提示:**
|
||||||
|
- 启动脚本会自动执行 `git pull` 拉取最新代码
|
||||||
|
- 拉取代码后会自动执行 `go mod download` 更新依赖
|
||||||
|
- 然后自动编译生成新的二进制文件
|
||||||
|
- 如果 Git 拉取失败(如网络问题),会使用当前代码继续编译
|
||||||
|
- 如果编译失败,服务不会启动
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### POST /api/test
|
||||||
|
|
||||||
|
统一测试接口
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"type": "ceGet|cePost|cePing|ceDns|ceTrace|ceSocket|ceTCPing|ceFindPing",
|
||||||
|
"url": "测试目标",
|
||||||
|
"params": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### POST /api/continuous/start
|
||||||
|
|
||||||
|
启动持续测试
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"type": "ping|tcping",
|
||||||
|
"target": "测试目标",
|
||||||
|
"interval": 10,
|
||||||
|
"max_duration": 60
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### POST /api/continuous/stop
|
||||||
|
|
||||||
|
停止持续测试
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"task_id": "任务ID"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### GET /api/continuous/status?task_id=xxx
|
||||||
|
|
||||||
|
查询任务状态
|
||||||
|
|
||||||
|
### GET /api/health
|
||||||
|
|
||||||
|
健康检查
|
||||||
|
# linkmaster-node
|
||||||
Reference in New Issue
Block a user