使用ddns-go實現本地IP或公網IP動態域名解析


作用

自動獲得你的公網或局域網 IPv4 或 IPv6 地址,並解析到對應的域名服務。

項目地址

同類產品

獲取阿里雲 AccessKey ID 和 AccessKey Secret

AccessKey ID 和 AccessKey Secret 推薦使用 子用戶AccessKey(訪問控制台RAM) 分配的權限!這樣最安全!
使用子用戶AccessKey,請分配 AliyunDNSReadOnlyAccess(只讀訪問雲解析(DNS)的權限) 和 AliyunDNSFullAccess(管理雲解析(DNS)的權限) 這兩個權限!

系統中使用

  • 下載並解壓https://github.com/jeessy2/ddns-go/releases
  • 雙擊運行, 如沒有找到配置, 程序自動打開http://127.0.0.1:9876
  • [可選] 安裝服務
    • Mac/Linux: sudo ./ddns-go -s install
    • Win(以管理員打開cmd): .\ddns-go.exe -s install
    • 安裝服務也支持 -l監聽地址 -f同步間隔時間(秒)
  • [可選] 服務卸載
    • Mac/Linux: sudo ./ddns-go -s uninstall
    • Win(以管理員打開cmd): .\ddns-go.exe -s uninstall
  • [可選] 支持啟動帶參數 -l監聽地址 -f同步間隔時間(秒)。如:sudo ./ddns-go -l 127.0.0.1:9876 -f 600

Docker中使用

  • 不掛載主機目錄, 刪除容器同時會刪除配置

    # host模式, 同時支持IPv4/IPv6
    docker run -d --name ddns-go --restart=always --net=host jeessy/ddns-go
    
  • 在瀏覽器中打開http://主機IP:9876,修改你的配置,成功

  • [可選] 掛載主機目錄, 刪除容器后配置不會丟失。可替換 /opt/ddns-go 為有權限訪問的目錄, 配置文件為隱藏文件

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
    
  • [可選] 支持啟動帶參數 -l監聽地址 -f間隔時間(秒)

    docker run -d --name ddns-go --restart=always --net=host jeessy/ddns-go -l :9877 -f 600
    

使用IPv6

  • 前提:你的電腦或終端能正常獲取IPv6,並能正常訪問IPv6
  • Windows/Mac:推薦 系統中使用,Windows/Mac桌面版的docker不支持--net=host
  • 群暉:
    • 套件中心下載docker並打開
    • 注冊表中搜索ddns-go並下載
    • 映像 -> 選擇jeessy/ddns-go -> 啟動 -> 高級設置 -> 網絡中勾選使用與 Docker Host 相同的網絡,高級設置中勾選啟動自動重新啟動
    • 在瀏覽器中打開http://群暉IP:9876,修改你的配置,成功
  • Linux的x86或arm架構,推薦使用Docker的--net=host模式。參考 Docker中使用
  • 虛擬機中使用有可能正常獲取IPv6,但不能正常訪問IPv6
  • [可選] 使用IPv6后,建議勾選禁止從公網訪問

Webhook

  • 支持webhook, 域名更新成功或不成功時, 會回調填寫的URL

  • 支持的變量

    變量名 說明
    #{ipv4Addr} 新的IPv4地址
    #{ipv4Result} IPv4地址更新結果: 未改變 失敗 成功
    #{ipv4Domains} IPv4的域名,多個以,分割
    #{ipv6Addr} 新的IPv6地址
    #{ipv6Result} IPv6地址更新結果: 未改變 失敗 成功
    #{ipv6Domains} IPv6的域名,多個以,分割
  • RequestBody為空GET請求,不為空POST請求

  • Server醬: https://sc.ftqq.com/[SCKEY].send?text=主人IPv4變了#{ipv4Addr},域名更新結果:#{ipv4Result}

  • Bark: https://api.day.app/[YOUR_KEY]/主人IPv4變了#{ipv4Addr},域名更新結果:#{ipv4Result}

  • 釘釘:

    • 釘釘電腦端 -> 群設置 -> 智能群助手 -> 添加機器人 -> 自定義
    • 只勾選 自定義關鍵詞, 輸入的關鍵字必須包含在RequestBody的content中, 如:你的公網IP變了
    • URL中輸入釘釘給你的 Webhook地址
    • RequestBody中輸入 {"msgtype": "text","text": {"content": "你的公網IP變了:#{ipv4Addr},域名更新結果:#{ipv4Result}"}}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM