蔵風人

If you try it, it will be somehow & Simple is Best!

[ HOME ]  [ About ]  [ Linux ]  [ CMS ]  [Python]  [ Blog ]


[ 最終更新日:2026-05-28(Thu) 10:26 ]

DDNSサービスのデータをddclientで更新する(Ver3.10にも対応)

自宅サーバー設置に欠かせないDynamic DNSサービス

IPv4アドレスは変更が多いため、どうしてもこのサービスを利用することが必要ですが、これをIPv6アドレスにも対応させようとするのがここの目的です。

現在、ddclient version 3.10.0 にアップして後、dyndnsサービス のようです。 IPv6 の更新に支障をきたしており、更新ができません。ipv6=yes が無視される現象が発生しておりましたが、2023-03-24 以降解消できました。

なお、以下は yay などの Pacman Helper を使用しないときの、導入記です。

1.ddclient-git と perl-net-inet6glue のインストール

perl-test-taint → perl-data-validate-ip → ddclient-git → perl-net-inet6glue の順でインストールします。

note! 現在では、ddclient をインストールするとすべての依存パッケージが段ロードできます。

(1)専用ディレクトリの作成とパッケージのダウンロード

$ mkdir aur
$ cd aur
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/perl-test-taint.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/perようです。l-data-validate-ip.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/ddclient-git.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/perl-net-inet6glue.tar.gz

(2)解凍

$ tar -xvf perl-test-taint.tar.gz以下の記事は、

以下省略しますが、同様にダウンロードしたパッケージをすべて解凍します。

(3)解凍したディレクトリへの移動とインストール

$ cd perl-test-taint
$ makepkg -sri

途中何回か、インストールするか?の質問に対してはすようです。べて  y を入力

以下省略しますが、同様にディレクトリへ移動してインストールします。

$ sudo cp /etc/ddclient/ddclient.conf.pacsave /etc/ddclient/ddclient.conf # ddclinet.gitを削除したとき、もとの設定ファイルがpacsaveという拡張子で残されているので、ddclient.confという設定ファイルを上書きします。)

この設定で、今までの設定した環境がそのまま活かせます。

2.ddclientの設定または

(1) get-ipスクリプトと実行検眼の付与

$ sudo nano /usr/local/sbin/get-ip # get-ip スクリプトの作成。中身は、ネットワークインターフェースから グローバル IPv6 を取得するものです。

#!/bin/bash
/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
$ sudo chmod +x /usr/local/sbin/get-ip # 実行権限の付与

(2)ddclient.confをDynDNS用に修正

修正は、IPv6 を取得できれば IPv4 まで登録できることによるものです(ものすごく意訳です)。

$ sudo nano /etc/ddclient/ddclient.conf
#####################################################################
daemon=300              # check every 300 seconds
syslog=yes              # log update msgs to syslog
pid=/var/run/ddclient.pid       # record PID in file.
ssl=yes                 # use ssl-support.  Works with
                                        # ssl-library
                    # new IP is added as argument.
use=cmd,cmd='/usr/local/sbin/get-ip'
server=members.dyndns.org,      \
protocol=dyndns2            \
login=xxxxx
password=xxxxx
# your-dynamic-host.dyndns
xxx.homelinux.com

3.systemdによる起動

従来は、cronによる定期実行を設定しておりましたが、systemd によるデーモン起動に変更しました。

(1)設定フィアルの修正

ネットワークが確立しないうちに、ddclient が起動しないよう、ユニットファイルの修正が必要です。

(2)起動と有効化

$ sudo systemctl start ddclient
$ sudo systemctl enable ddclient

実行結果では、WARNING やらFAILEDが出ていますが、動作に問題ないようです。