StealthSurf-VPN/awg-server
GitHub: StealthSurf-VPN/awg-server
AmneziaWG 2.0 的 HTTP API 管理服务,提供内核级 DPI 混淆 VPN 的程序化控制能力。
Stars: 1 | Forks: 0
# awg-server
用于管理 **AmneziaWG 2.0** VPN 客户端的 HTTP API 服务器。在主机上使用 **AmneziaWG 内核模块** 和 `awg` CLI 工具 —— 提供内核级性能,并通过 CPS (Custom Protocol Signature) 实现 DPI 混淆。
## 快速安装 (Linux)
一键安装 AmneziaWG,下载最新的 `awg-server` 二进制文件,并准备运行:
```
# 1. 安装 AmneziaWG 内核模块 (DKMS)
apt update && apt install -y software-properties-common linux-headers-$(uname -r)
add-apt-repository -y ppa:amnezia/ppa
apt update && apt install -y amneziawg
# 2. 安装 AmneziaWG 工具 (awg CLI)
apt install -y build-essential git
git clone https://github.com/amnezia-vpn/amneziawg-tools.git /tmp/amneziawg-tools
make -C /tmp/amneziawg-tools/src && make -C /tmp/amneziawg-tools/src install
rm -rf /tmp/amneziawg-tools
# 3. 启用 IP 转发
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# 4. 下载最新 awg-server
curl -fsSL https://github.com/stealthsurf-vpn/awg-server/releases/latest/download/awg-server-linux-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/') -o /usr/local/bin/awg-server
chmod +x /usr/local/bin/awg-server
# 5. 创建数据目录
mkdir -p /data
# 6. 创建 systemd 服务
cat > /etc/systemd/system/awg-server.service <`。
```
# 列出客户端
curl http://localhost:7777/api/clients -H "Authorization: Bearer $TOKEN"
# 创建客户端
curl -X POST http://localhost:7777/api/clients \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"my-client-uuid"}'
# 获取客户端配置 (.conf)
curl http://localhost:7777/api/clients/my-client-uuid/configuration \
-H "Authorization: Bearer $TOKEN"
# 删除客户端
curl -X DELETE http://localhost:7777/api/clients/my-client-uuid \
-H "Authorization: Bearer $TOKEN"
```
## 配置
环境变量:
| Variable | Required | Default | Description |
| -------- | -------- | ------- | ----------- |
| `AWG_API_TOKEN` | yes | — | 用于 API 认证的 Bearer token |
| `AWG_ADDRESS` | yes | — | 服务器 VPN 地址 (CIDR),例如 `10.0.0.1/24` |
| `AWG_ENDPOINT` | yes | — | 用于客户端配置的公网 IP/主机名 |
| `AWG_LISTEN_PORT` | no | `51820` | WireGuard UDP 端口 |
| `AWG_HTTP_PORT` | no | `7777` | HTTP API 端口 |
| `AWG_MTU` | no | `1420` | MTU 值 |
| `AWG_DNS` | no | `1.1.1.1` | 用于客户端配置的 DNS |
| `AWG_DATA_DIR` | no | `/data` | 数据持久化目录 |
### AmneziaWG 混淆
| Variable | Description |
| -------- | ----------- |
| `AWG_JC` | 垃圾数据包数量 |
| `AWG_JMIN` / `AWG_JMAX` | 垃圾数据包大小范围 |
| `AWG_S1` - `AWG_S4` | 数据包填充 (init, response, underload, transport) |
| `AWG_H1` - `AWG_H4` | 数据包头 (init, response, underload, transport) |
| `AWG_I1` - `AWG_I5` | CPS 签名数据包 (AmneziaWG 2.0),例如 `` |
## 架构
```
main.go → config → awg (device, keygen) → clients (manager, storage) → api (server, handlers)
```
- **内核模块** —— 主机上的 `amneziawg-linux-kernel-module`,使用 `awg` CLI 进行管理
- **静态二进制文件** —— `CGO_ENABLED=0`,除 `golang.org/x/crypto` 外无外部 Go 依赖
- **持久化** 通过 JSON 文件及原子写入实现
- **IP 分配** 从 .2 开始顺序分配,释放的 IP 可重用
- **认证** 所有端点使用 Bearer token
标签:AI代理, AmneziaWG, CPS混淆, DPI规避, EVTX分析, EVTX分析, Golang, Homebrew安装, HTTP API, IP 地址批量处理, Linux服务器, Systemd, VPN管理, WireGuard, 代理工具, 内核模块, 安全编程, 安全资源, 抗封锁, 日志审计, 深度包检测, 系统服务, 网络安全, 网络安全, 网络安全分析, 网络调试, 自动化, 隐私保护, 隐私保护, 静态二进制