WireGuard Peer 端点动态解析服务 - 自动检测并更新 WireGuard Peer 的端点 IP 地址。
--test / -t 参数用于测试 DNS 解析和 API 连接wg.exe 位于 C:\Program Files\WireGuard\wg.exe)配置文件为 appsettings.json,主要配置项如下:
"WireGuard": {
"WgExePath": "C:\\Program Files\\WireGuard\\wg.exe",
"CheckIntervalSeconds": 60,
"DnsResolveMode": "DoH",
"DoHServerUrls": [
"https://223.5.5.5/dns-query",
"https://doh.pub/dns-query",
"https://120.53.53.53/dns-query"
]
}
| 配置项 | 说明 | 默认值 |
|---|---|---|
WgExePath | wg.exe 可执行文件路径 | C:\Program Files\WireGuard\wg.exe |
CheckIntervalSeconds | 检查间隔(秒) | 60 |
DnsResolveMode | DNS 解析模式:System 或 DoH | DoH |
DoHServerUrls | DoH 服务器地址列表 | 阿里、腾讯、腾讯 DNSPod |
"DdnsPeers": [
{
"PublicKey": "Peer公钥",
"Domain": "ddns域名",
"Port": WireGuard端口
}
]
"LuckyPeers": [
{
"PublicKey": "Peer公钥",
"LuckyBaseUrl": "Lucky服务地址",
"OpenToken": "Lucky的OpenToken",
"TunnelName": "STUN隧道名称"
}
]
dotnet build -c Release
dotnet run
测试 DNS 解析和 Lucky API 连接:
dotnet run -- --test
# 或
dotnet run -- -t
使用 Windows Service Wrapper 或 NSSM 将程序安装为后台服务运行。
CheckIntervalSeconds 秒执行一次检查wg set <interface> peer <publicKey> endpoint <ip:port> 更新端点src/
├── Program.cs # 程序入口
├── Workers/
│ └── Worker.cs # 后台工作服务
├── Services/
│ ├── WireGuardService.cs # WireGuard 命令执行
│ ├── DdnsResolver.cs # DDNS 域名解析
│ ├── LuckyClient.cs # Lucky API 客户端
│ └── ServiceTester.cs # 服务测试器
├── Models/
│ └── Config.cs # 配置模型
└── appsettings.json # 配置文件