• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

duckdns

date: 2021-07-09 excerpt: duckdnsについて

tag: duckdns


duckdnsについて

概要

  • 動的なIPを特定の名前にマッピングさせるサービス
  • APIで更新でき、シンプルなのでLinuxなどに組み込みやすい
  • 無料で利用できる
  • たまにDNSを解決できない時があるなど、ミッションクリティカルな運用には向いていなさそう

サイト

  • www.duckdns.org

更新例

  • tokenが発行されるので管理しておく(***で消してある箇所)
  • domainsはduckdnsに登録したドメインの先頭部分
  • systemd等に登録することで、自動更新が行える

ipv4 only

$ bash -c "curl \"https://www.duckdns.org/update?domains=gimpeik&token=*****&ip=&verbose=true\"; sleep 300"

ipv4 and ipv6

$ bash -c "v6=`curl -6 ifconfig.io` ; args=\"https://www.duckdns.org/update?domains=gimpeik6&token=*****&ip=&ipv6=\$v6&verbose=true\" && echo \$args; curl \$args; sleep 300"

txtレコードの設定

$ curl "https://www.duckdns.org/update?domains=gimpeik&token=*****&txt=*****&verbose=true"

user権限のサービスを追加する

  • ~/.config/systemd/user/duckdns.serviceを以下の内容で作成する
[Unit]
Description=DUCKDNS SERVICE
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=5
ExecStart=bash -c "v6=`curl -6 ifconfig.io` ; args=\"https://www.duckdns.org/update?domains=gimpeik6&token=*****&ip=&ipv6=$v6&verbose=true\" && echo $args; curl $args; sleep 300"
[Install]
WantedBy=default.target

サービスを登録する

$ systemctl --user start duckdns
$ systemctl --user enable duckdns # サービスの登録
$ loginctl enable-linger $USER # 未ログインでも実行
$ journalctl --user -u duckdns.service # ログの確認


duckdns Share Tweet