2021年10月29日 星期五

在ubuntu上自動更新cloudflare的ddns

之前常常在GCP上開免費的機器來玩,但是因為沒有使用靜態IP,所以如果連不上了有可能是因為IP被換掉了,就要開GCP的介面去查IP,昨天覺得實在是太煩了,就研究了一下怎樣才能達到自動更新Cloudflare的DNS紀錄,自然的碰到了坑,所以寫這篇記錄一下...

  • 安裝依賴套件
    • apt install libdata-validate-ip-perl libio-socket-ssl-perl
  • 下載新版 ddclient 並解壓縮
  • 進入解壓縮後的資料夾 把 ddclient 複製到 /usr/sbin/
    • cp ddclient /usr/sbin/
  • 建立兩個資料夾
    • mkdir /etc/ddclient /var/cache/ddclient
  • 建立設定檔
    • vim /etc/ddclient/ddclient.conf
  • 內容為
    • daemon=300 # 多久檢查一次
    • syslog=yes # 是否將 log 寫入 syslog
      pid=/var/run/ddclient.pid
      protocol=cloudflare
      use=web
      web=https://ipinfo.io/ip
      ssl=yes
      login= # Cloudlfare 登入帳號(Email)
      password= # Cloudflare API key,可在 https://dash.cloudflare.com/profile/api-tokens 取得
      zone=example.com # 域名
      dynamic1.example.com # 要更新的 DNS Record,多筆請用 , 分隔
  • 設定system service
    • cp sample-etc_systemd.service /etc/systemd/system/ddclient.service
      systemctl enable ddclient.service
      systemctl start ddclient.service
  • 測試指令
    • sudo ddclient -daemon=0 -debug -verbose -noquiet
API Key 要特別注意,因為ddclient不支援API Token,只支援API Key,因為這邊我卡了快1小時...WTF...

2 則留言:

  1. 太感谢了,我也是因为用了API Token卡了快一个小时,直到Google到这篇文章😓

    回覆刪除
  2. 啊啊啊,一样现在是login要是token,卡了好久

    回覆刪除