自架服務
TimothyYe/godns avatar
TimothyYe/godns

GoDNS:覆盖多家 DNS 服務商的動態域名客户端

一個動態 DNS 用戶端工具,支援 AliDNS、Cloudflare、Google Domains、DNSPod、HE.net & DuckDNS & DreamHost 等,以 Go 編寫。

1,778 個 Star247 個 ForkGoApache-2.0
GitHub

秒懂

它是什麼?
GoDNS 是用 Go 编寫的動態 DNS 客户端,README 列出 AliDNS、Cloudflare、Google Domains、DNSPod、HE.net、DuckDNS 和 DreamHost 等服務商。它适合把地址變化同步到 DNS,但账号權限和公網更新策略需要自行控制。
適合誰用?
GoDNS 适合有動態公網地址、需要把變化同步到已支持 DNS 服務商的個人或運维環境。不适合把客户端當成 DNS 托管平台,也不适合在没有明确 API 凭據權限和更新频率的情况下直接放進公網主机。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 3 天前。
用什麼語言寫的?
主要是 Go(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

GoDNS,一個多提供商的DDNS客户端 · timothyye-godns-deep-analysis

GoDNS是一個用Go编寫的自托管動態DNS(DDNS)客户端。它是作者早期開源專案DynDNS的重寫。README將其描述為支持多個DNS提供商並带有內置Web面板。倉庫還指向了托管版本godns.app,供不想自托管的用户使用。自托管版本可通過二進制、Docker镜像或源码构建获得。README未提及任何用户數量或生产統计。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 1:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

支持的DNS提供商及其能力 · timothyye-godns-deep-analysis

README中的表格列出了21個DNS提供商,包括Cloudflare、DigitalOcean、Google Domains、DNSPod、Dynv6、HE.net、AliDNS、DuckDNS、Dreamhost、No-IP、Scaleway、Linode、Strato、LoopiaSE、Infomaniak、Hetzner、OVH、Porkbun、Dynu、IONOS和TransIP。對于每個提供商,表格标明是否支持IPv4和IPv6更新,以及是否支持根域名和子域名。例如,Cloudflare、DigitalOcean、DNSPod、HE.net、AliDNS、Scaleway、Linode、Hetzner和Porkbun支持根域名,而Google Domains、Dynv6、DuckDNS、Dreamhost、No-IP、Strato、LoopiaSE、Infomaniak、OVH、Dynu、IONOS和TransIP僅支持子域名。README還指出,一個GitHub issue跟踪根域名DDNS的當前状態。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 2:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

設定:格式、動態加载和多提供商 · timothyye-godns-deep-analysis

GoDNS從JSON或YAML文件讀取設定。README指示用户將config_sample.json或config_sample.yaml复制為config.json或config.yaml。設定文件包含provider、email、password、login_token、domains、ip_urls、ipv6_urls、ip_type、interval、socks5_proxy、resolver和skip_ssl_verify等属性。一個显著的特点是動態加载:如果修改設定文件,GoDNS会自動重新加载並應用更改。README還强调,GoDNS現在支持在單個設定文件中同時使用多個DNS提供商,從而可以一起管理來自不同提供商的域名。單獨的指南MULTI_PROVIDER.md提供了詳细的设置說明和示例。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 3:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

通知和Webhook · timothyye-godns-deep-analysis

GoDNS可以在IP地址變化時發送通知。README记录了通過SMTP的电子邮件、Telegram、Slack、Discord、Pushover、Bark和ntfy。每個通知渠道都有自己的設定片段。例如,电子邮件需要smtp_server、smtp_username、smtp_password、smtp_port、send_from和send_to。message_template属性在Telegram和Slack中支持Markdown。除了通知,GoDNS還可以通過HTTP GET或POST發送Webhook。Webhook設定有url和可选的request_body;如果request_body為空,则發送GET请求。URL或正文中的可用變量有Domain、IP和IPType。README提供了GET和POST的示例。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 4:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

內置Web面板 · timothyye-godns-deep-analysis

從版本3.1.0開始,GoDNS包含一個Web面板,用于管理設定和监控域名状態。Web UI默認禁用。要启用它,请在設定文件中设置web_panel部分,包括enabled、addr、username和password。示例显示addr為0.0.0.0:9000。启用後,您可以访问http://localhost:9000進行管理和监控。README包含Web面板的截图,但除了設定管理和状態监控外,没有詳细描述其功能。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 5:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

在不同環境中執行GoDNS · timothyye-godns-deep-analysis

README描述了多種執行GoDNS的方式。對于一次性執行,设置run_once為true,程序將在第一次更新後退出。對于後台進程,使用nohup ./godns &。提供了upstart、systemd和procd(OpenWRT)的托管守护進程设置。這些初始化系統的設定文件包含在倉庫的config/upstart、config/systemd和config/procd目录下。Docker镜像可在Docker Hub和GitHub Container Registry上获取;示例命令挂载本地設定文件並暴露端口9000供Web面板使用。對于Windows,README解释了如何使用NSSM將godns.exe安裝為服務。README還指出,如果使用nohup手動執行,程序停止後不会自動重启。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 6:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

其他选項和授權 · timothyye-godns-deep-analysis

README涵盖了几個可选功能。可以通過设置ip_type為IPv6並使用ipv6_urls來启用IPv6支持,或者將ip_urls和ipv6_urls留空,让GoDNS發現網络接口的IPv6地址。可以用ip_interface指定網络接口IP,如果同時设置了ip_urls,则先尝试在線查找。所有远程调用都可以通過设置socks5_proxy和use_proxy來使用SOCKS5代理。還有一個設定块用于從Mikrotik RouterOS设備获取公網IP。可以通過debug_info启用调试信息。README推荐了几個公網IP查找API。该專案采用Apache 2.0許可,该許可授予永久的、全球性的、非排他性的、免版税的使用、复制、修改和分發工作的權利。許可文本未提及保修或支持,README也未提供任何安全保證。

請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。(timothyye-godns-deep-analysis 核驗焦點 7:保留該節涉及的命令、檔案或服務名稱,並記錄實際觀察到的回應。)

編輯結論

GoDNS 适合有動態公網地址、需要把變化同步到已支持 DNS 服務商的個人或運维環境。不适合把客户端當成 DNS 托管平台,也不适合在没有明确 API 凭據權限和更新频率的情况下直接放進公網主机。先按 Quick Start 設定一個低權限记录,观察地址變化、更新日志和失败重试,再扩大到正式域名。 請將這個專案的版本、實際命令、輸入資料、輸出結果與錯誤日誌分開保存。針對本文提到的專案名稱、設定檔和執行入口逐項比對,觀察成功與失敗時的具體差異,再決定是否擴大使用範圍。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記