2024年3月14日星期四

使用ddns-go配置DDNS

ddns-go

自动获得你的公网 IPv4 或 IPv6 地址,并解析到对应的域名服务。

系统中使用

  • 从 Releases 下载并解压 ddns-go

  • 安装服务

    • Mac/Linux: sudo ./ddns-go -s install
    • Win(以管理员打开cmd): .\ddns-go.exe -s install
    • (默认配置保存在C:\Users\当前用户)
    • 指定配置文件路径示例命令:

      .\ddns-go.exe -s install -c "%HOMEPATH%\AppData\Local\ddns-go\.ddns_go_config.yaml"

      .\ddns-go.exe -s install -c "%PROGRAMFILES%\ddns-go\ddns_go_config.yaml"
  • [可选] 服务卸载

    • Mac/Linux: sudo ./ddns-go -s uninstall
    • Win(以管理员打开cmd): .\ddns-go.exe -s uninstall
  • [可选] 支持安装带参数

    • -l 监听地址
    • -f 同步间隔时间(秒)
    • -cacheTimes 间隔N次与服务商比对
    • -c 自定义配置文件路径
    • -noweb 不启动web服务
    • -skipVerify 跳过证书验证
    • -dns 自定义 DNS 服务器
  • [可选] 参考示例

    • 10分钟同步一次, 并指定了配置文件地址
      ./ddns-go -s install -f 600 -c /Users/name/.ddns_go_config.yaml
    • 每 10 秒检查一次本地 IP 变化, 每 30 分钟对比一下 IP 变化, 实现 IP 变化即时触发更新且不会被服务商限流, 如果使用接口获取IP, 需要注意接口限流
      ./ddns-go -s install -f 10 -cacheTimes 180

Docker中使用

  • 挂载主机目录, 使用docker host模式。可把 /opt/ddns-go 替换为你主机任意目录, 配置文件为隐藏文件

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
  • 在浏览器中打开http://主机IP:9876,并修改你的配置

  • [可选] 使用 ghcr.io 镜像

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root ghcr.io/jeessy2/ddns-go
  • [可选] 支持启动带参数 -l监听地址 -f间隔时间(秒)

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go -l :9877 -f 600
  • [可选] 不使用docker host模式

    docker run -d --name ddns-go --restart=always -p 9876:9876 -v /opt/ddns-go:/root jeessy/ddns-go

使用IPv6

  • 前提:你的电脑或终端能正常获取IPv6,并能正常访问IPv6
  • Windows/Mac:推荐 系统中使用,Windows/Mac桌面版的docker不支持--net=host
  • docker使用与 Docker Host 相同的网络,高级设置中勾选启动自动重新启动
  • Linux的x86或arm架构,推荐使用Docker的--net=host模式。参考 Docker中使用