Skip to content

cxbdasheng/dnet

Repository files navigation

D-NET 动态网络解析管理系统

一款轻量级动态网络管理工具,支持多平台的 CDN、DNS 和 内网穿透自动化管理与监控。

License Go Version Release Go Report Card Docker Pulls GitHub Downloads

主要功能快速开始Wiki 文档


主要功能

  • 动态 CDN 管理 (DCDN): 支持阿里云(CDN、DCDN、ESA)、腾讯云(CDN、EdgeOne)、百度云(CDN、DRCDN)
  • 动态 DNS 管理 (DDNS): 自动更新域名解析记录(V2 版本规划中)
  • 内网穿透管理: 从外网访问内网服务(V3 版本规划中)
  • Webhook 通知: 实时推送 IP 变更通知
  • Web 管理界面: 可视化配置和管理

界面

界面

快速开始

更多使用示例和详细配置说明见 Wiki,常见问题见 FAQ

方式一:使用二进制文件

1. 下载安装

Releases 页面下载适合您系统的版本并解压。

2. 安装为系统服务

Mac/Linux:

sudo ./dnet -s install

Windows(管理员权限):

.\dnet.exe -s install

3. 访问 Web 界面

浏览器访问 http://localhost:9877 进行配置。

服务管理

# 卸载服务
sudo ./dnet -s uninstall          # Mac/Linux
.\dnet.exe -s uninstall           # Windows (管理员)

# 重启服务
sudo ./dnet -s restart            # Mac/Linux
.\dnet.exe -s restart             # Windows (管理员)

高级选项

安装服务时可以指定以下参数:

参数 说明 示例
-l 监听地址 -l :9877
-f 同步间隔时间(秒) -f 600
-c 自定义配置文件路径 -c /path/to/config.yaml
-u 升级当前 D-NET 版本 -u
-noweb 不启动 Web 服务 -noweb
-skipVerify 跳过 HTTPS 证书验证 -skipVerify
-dns 自定义 DNS 服务器 -dns 8.8.8.8
-dcdnCacheTimes 间隔 N 次与服务商比对 -dcdnCacheTimes 10
-resetPassword 重置密码 -resetPassword newpass

更多使用参数,请查看 Wiki 文档 - D‐NET 使用指南

使用示例:

# 自定义同步间隔和配置文件路径
./dnet -s install -f 600 -c /path/to/config.yaml

# 重置密码
./dnet -resetPassword 123456

方式二:使用 Docker

Linux(推荐 Host 模式):

docker run -d --name dnet --net=host -v /opt/dnet:/root --restart=always cxbdasheng/dnet:latest

macOS / Windows(端口映射):

docker run -d --name dnet -p 9877:9877 -v /opt/dnet:/root --restart=always cxbdasheng/dnet:latest

说明: Host 模式支持 IPv6 地址检测(仅 Linux);端口映射无法直接获取宿主机的网卡信息,可能无法检测 IPv6

常用命令:

# 重置密码
docker exec dnet ./dnet -resetPassword 123456 && docker restart dnet

# 查看日志
docker logs -f dnet

方式三:从源码构建

make build                              # 构建当前平台
goreleaser build --snapshot --clean     # 构建所有平台
go run main.go                          # 直接运行

Webhook 通知

支持的变量:#{serviceType}(服务类型)、#{serviceName}(服务名称)、#{serviceStatus}(更新结果)

配置示例

Server酱:

https://sctapi.ftqq.com/[SendKey].send?title=DNET通知&desp=#{serviceName} - #{serviceStatus}

钉钉机器人:

{
  "msgtype": "markdown",
  "markdown": {
    "title": "DNET 通知",
    "text": "#{serviceName} - #{serviceStatus}"
  }
}

贡献与许可

欢迎贡献代码或提出建议,详见 贡献指南。本项目采用 MIT 许可证。

About

一款轻量级动态网络管理工具,支持多平台的 CDN、DNS 和 内网穿透自动化管理与监控。

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages