「ダイナミック DNS」の版間の差分
(英語版に併せてセクション構成を変更) |
(→更新用クライアントツール: テーブル以外は英語版と同期。便利そうだったのでテーブルは、この構成を保持しておきたいと考えた。) |
||
9行目: | 9行目: | ||
== 更新用クライアントツール == |
== 更新用クライアントツール == |
||
+ | |||
+ | いくつかの DDNS プロバイダはクライアントツールを必須とはしておらず、[[cURL]] で更新することも可能であることは気に留めておいて下さい。 |
||
+ | |||
+ | === 複数サービスに対応したクライアント === |
||
+ | |||
+ | * {{App|[[#ddclient|ddclient]]|多くのDDNSサービスのアカウントのDDNSエントリを更新できます。|https://github.com/ddclient/ddclient|{{Pkg|ddclient}}}} |
||
+ | * {{App|ddnsc|Pythonで書かれたシンプルで軽量なクライアント。|https://github.com/shyaminayesh/ddnsc|{{AUR|ddnsc}}}} |
||
+ | * {{App|inadyn|SSL/TLSをサポートしたDDNSクライアント。|https://troglobit.com/projects/inadyn/|{{Pkg|inadyn}}}} |
||
+ | * {{App|inadyn-mt|inadyn が元となったシンプルなDDNSクライアント。|http://inadyn-mt.sourceforge.net/|{{AUR|inadyn-mt}}}} |
||
+ | * {{App|ndyndns|DynDNS と Namecheapをサポートしています。|https://github.com/niklata/ndyndns|{{AUR|ndyndns}}}} |
||
+ | |||
+ | === 特定のサービスの為のクライアント === |
||
+ | |||
+ | * {{App|duckdns|systemd を用いて DuckDNS.org のエントリを更新するクライアント。|https://www.duckdns.org/|{{AUR|duckdns}}, {{AUR|duckdns-ipv6}}}} |
||
+ | * {{App|hetzner_ddns|Hetzner DNS のためのDDNS デーモン。|https://github.com/filiparag/hetzner_ddns|{{AUR|hetzner_ddns}}}} |
||
+ | * {{App|noip|no-ip.com サービスのためのDDNS クライアント。|3=https://www.no-ip.com/downloads.php?page=linux|4={{AUR|noip}}}} |
||
+ | * {{App|petrified|freedns.afraid.org を更新するための bash クライアント。|https://gitlab.com/troyengel/petrified|{{AUR|petrified}}}} |
||
+ | |||
=== ddclient === |
=== ddclient === |
||
15行目: | 33行目: | ||
インストールした後、デフォルトの設定ファイル {{ic|/etc/ddclient/ddclient.conf}} を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら {{ic|ddclient.service}} を[[起動]]・[[有効化]]してください。 |
インストールした後、デフォルトの設定ファイル {{ic|/etc/ddclient/ddclient.conf}} を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら {{ic|ddclient.service}} を[[起動]]・[[有効化]]してください。 |
||
+ | |||
+ | {{ic|-noquiet}} と {{ic|-debu}} オプションを付けて実行することで設定をテストできます: |
||
+ | |||
+ | # ddclient -daemon=0 -noquiet -debug |
||
ddclient 対応のサービスの一部を以下に挙げます。[https://sourceforge.net/p/ddclient/code/HEAD/tree/trunk/sample-etc_ddclient.conf examples] や [https://sourceforge.net/p/ddclient/wiki/protocols/ protocols] にはさらに多くのプロバイダが載っています。 |
ddclient 対応のサービスの一部を以下に挙げます。[https://sourceforge.net/p/ddclient/code/HEAD/tree/trunk/sample-etc_ddclient.conf examples] や [https://sourceforge.net/p/ddclient/wiki/protocols/ protocols] にはさらに多くのプロバイダが載っています。 |
||
26行目: | 48行目: | ||
! 設定のノート |
! 設定のノート |
||
! 他のツール |
! 他のツール |
||
+ | |- |
||
+ | ! [http://now-dns.com/ Now-DNS] |
||
+ | | 無料 || A, AAAA || 無制限 || {{ic|dyndns2}} プロトコルを使用、サーバー: {{ic|now-dns.com/update}} || |
||
|- |
|- |
||
! [http://www.changeip.com/ ChangeIP] |
! [http://www.changeip.com/ ChangeIP] |
||
44行目: | 69行目: | ||
! [http://www.noip.com/ No-IP] |
! [http://www.noip.com/ No-IP] |
||
| 無料あるいは有料 || || 3つまで無料、有料で25以上 || {{ic|noip}} プロトコル、{{ic|dynupdate.no-ip.com}} サーバーを使用 || {{aur|noip}} |
| 無料あるいは有料 || || 3つまで無料、有料で25以上 || {{ic|noip}} プロトコル、{{ic|dynupdate.no-ip.com}} サーバーを使用 || {{aur|noip}} |
||
− | |- |
||
− | ! [http://now-dns.com/ Now-DNS] |
||
− | | 無料 || A, AAAA || 無制限 || {{ic|dyndns2}} プロトコルを使用、サーバー: {{ic|now-dns.com/update}} || |
||
|- |
|- |
||
! [https://www.nsupdate.info/ nsupdate.info] |
! [https://www.nsupdate.info/ nsupdate.info] |
||
57行目: | 79行目: | ||
==== 外部ウェブサイトから IP アドレスを確認 ==== |
==== 外部ウェブサイトから IP アドレスを確認 ==== |
||
− | ddclient が IP アドレスを検出できない場合、[http:// |
+ | ddclient が IP アドレスを検出できない場合、[http://checkip.dyndns.org checkip.dyndns.org] などの外部ウェブサイトから IP アドレスを取得するように ddclient を設定できます。デフォルトでは {{ic|use=web]} を指定した場合にこのアドレスが利用されます。また、IPを確認するサービスへの頻繁なアクセスを避けるために、確認までの期間を延すことが推奨されています: |
{{hc|/etc/ddclient/ddclient.conf|2= |
{{hc|/etc/ddclient/ddclient.conf|2= |
||
+ | daemon=900 |
||
− | # use whatismyip.org to determine IP address |
||
+ | # web status page から IP アドレスを取得 |
||
use=web |
use=web |
||
− | web=whatismyip.org |
||
}} |
}} |
||
+ | |||
+ | 他の IP 確認サービスを {{ic|web}} オプションで設定する事もできます: |
||
+ | |||
+ | {{hc|/etc/ddclient/ddclient.conf|2= |
||
+ | daemon=900 |
||
+ | # web status page から IP アドレスを取得 |
||
+ | use=web, web=myonlineportal.net/checkip |
||
+ | }} |
||
+ | |||
+ | ==== IPv6 アドレスを決めるためにスクリプトを使う ==== |
||
+ | |||
+ | ddclient は時折、IPv6 アドレスの取得を間違えるか失敗します。しかし、外部のウェブサイトの代わりに ローカルに IPv6 を知ることができます。以下のスクリプトが使えます: |
||
+ | |||
+ | {{hc|/usr/bin/get-ip|2= |
||
+ | <nowiki> |
||
+ | #!/bin/bash |
||
+ | /sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80 |
||
+ | </nowiki> |
||
+ | }} |
||
+ | |||
+ | このスクリプトを使うように ddclient を設定するには: |
||
+ | |||
+ | {{hc|/etc/ddclient/ddclient.conf|2= |
||
+ | # obtain IP address from script |
||
+ | use=cmd,cmd='/usr/bin/get-ip' |
||
+ | }} |
||
+ | |||
==== ネットワークが立ち上がった後に ddclient を起動 ==== |
==== ネットワークが立ち上がった後に ddclient を起動 ==== |
||
75行目: | 124行目: | ||
}} |
}} |
||
+ | === 他のプロバイダ === |
||
− | {{ic|network-online.target}} に追加の設定が必要かもしれません。[https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget#cutthecraphowdoimakenetwork.targetworkforme] を参照してください。 |
||
− | |||
− | === 他のツール === |
||
+ | 他の DDNS プロバイダは ddclient とは互換性がありません。対応しないプロバイダの為には、特殊なツールやカスタムのスクリプトを必要になるかもしれません。もし IP アドレスがコマンドラインでアップデート可能であるならば、[[cron]] や [[systemd/タイマー]] などのツールで自動的に実現可能であることを覚えておいて下さい。 |
||
− | 複数のプロバイダで使用することができる他の DDNS 更新ツールとして {{AUR|inadyn-mt}} ([https://sourceforge.net/projects/inadyn-mt 対応しているプロバイダ]) と {{AUR|ndyndns}} (DynDNS と Namecheap が対応) が存在します。 |
||
== 他のプロバイダ == |
== 他のプロバイダ == |
2022年7月2日 (土) 19:06時点における版
Dynamic DNS あるいは DDNS はインターネット上の絶えず変化する IP アドレスを指し示す DNS をリアルタイムに更新する手法です。ダイナミック DNS は固定 IP が存在しないリソースに恒久的なドメイン名を割り当てるのに使われます。DDNS を使用するには、DDNS プロバイダで登録を行なって、さらに、IP アドレスが変わったときにプロバイダに新しい IP を通知するように自動更新ツールを設定する必要があります。
目次
ルーター
DDNS を必要とするデバイスがルーターを通している場合、まずルーターだけで DDNS サービスを更新することができないか確認してください。使用できるサービスは限られますが、ルーターを使うことにはメリットが複数存在します: セットアップが簡単であり、メンテナンスの必要がほとんどありません。そしてダウンタイムがなくなります (ルーターが落ちた場合、インターネットに接続自体ができなくなります)。
更新用クライアントツール
いくつかの DDNS プロバイダはクライアントツールを必須とはしておらず、cURL で更新することも可能であることは気に留めておいて下さい。
複数サービスに対応したクライアント
- ddclient — 多くのDDNSサービスのアカウントのDDNSエントリを更新できます。
- ddnsc — Pythonで書かれたシンプルで軽量なクライアント。
- inadyn — SSL/TLSをサポートしたDDNSクライアント。
- inadyn-mt — inadyn が元となったシンプルなDDNSクライアント。
- ndyndns — DynDNS と Namecheapをサポートしています。
特定のサービスの為のクライアント
- duckdns — systemd を用いて DuckDNS.org のエントリを更新するクライアント。
- https://www.duckdns.org/ || duckdnsAUR, duckdns-ipv6AUR
- hetzner_ddns — Hetzner DNS のためのDDNS デーモン。
- noip — no-ip.com サービスのためのDDNS クライアント。
- petrified — freedns.afraid.org を更新するための bash クライアント。
ddclient
ddclient は多数の DDNS サービスに対応しているため、ルーターが使えない場合は DDNS を更新するための推奨ツールとなります。ddclient は systemd にも対応しています。
インストールした後、デフォルトの設定ファイル /etc/ddclient/ddclient.conf
を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら ddclient.service
を起動・有効化してください。
-noquiet
と -debu
オプションを付けて実行することで設定をテストできます:
# ddclient -daemon=0 -noquiet -debug
ddclient 対応のサービスの一部を以下に挙げます。examples や protocols にはさらに多くのプロバイダが載っています。
サービス名 | 費用 | 利用可能なレコード | ホストネーム数 | 設定のノート | 他のツール |
---|---|---|---|---|---|
Now-DNS | 無料 | A, AAAA | 無制限 | dyndns2 プロトコルを使用、サーバー: now-dns.com/update |
|
ChangeIP | 無料あるいは有料 | A, AAAA, CNAME, MX, サブドメイン | 7つまで無料 | ||
DNSdynamic | 無料 | 例 | |||
Duck DNS | 無料 | duckdnsAUR | |||
Dynu | 無料あるいは有料 | 4つまで無料、有料で500まで | サンプル | ||
FreeDNS | 無料あるいは有料 | CNAME, A, AAAA, MX, NS, TXT, LOC, RP, HINFO, SRV | 5つまで無料 | 例 | afraid-dyndns-uvAUR, petrifiedAUR |
No-IP | 無料あるいは有料 | 3つまで無料、有料で25以上 | noip プロトコル、dynupdate.no-ip.com サーバーを使用 |
noipAUR | |
nsupdate.info | 無料かつオープンソース | A, AAAA | dyndns2 プロトコルを使用 |
inadyn-forkAUR |
外部ウェブサイトから IP アドレスを確認
ddclient が IP アドレスを検出できない場合、checkip.dyndns.org などの外部ウェブサイトから IP アドレスを取得するように ddclient を設定できます。デフォルトでは {{ic|use=web]} を指定した場合にこのアドレスが利用されます。また、IPを確認するサービスへの頻繁なアクセスを避けるために、確認までの期間を延すことが推奨されています:
/etc/ddclient/ddclient.conf
daemon=900 # web status page から IP アドレスを取得 use=web
他の IP 確認サービスを web
オプションで設定する事もできます:
/etc/ddclient/ddclient.conf
daemon=900 # web status page から IP アドレスを取得 use=web, web=myonlineportal.net/checkip
IPv6 アドレスを決めるためにスクリプトを使う
ddclient は時折、IPv6 アドレスの取得を間違えるか失敗します。しかし、外部のウェブサイトの代わりに ローカルに IPv6 を知ることができます。以下のスクリプトが使えます:
/usr/bin/get-ip
#!/bin/bash /sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
このスクリプトを使うように ddclient を設定するには:
/etc/ddclient/ddclient.conf
# obtain IP address from script use=cmd,cmd='/usr/bin/get-ip'
ネットワークが立ち上がった後に ddclient を起動
ddclient で IP を更新できない場合、おそらくネットワークが立ち上がる前に ddclient のプロセスが起動しているのが原因です。修正するには、ユニットファイルを編集して network-online.target
に依存するようにしてください:
# systemctl edit ddclient.service
[Unit] After=network-online.target Wants=network-online.target
他のプロバイダ
他の DDNS プロバイダは ddclient とは互換性がありません。対応しないプロバイダの為には、特殊なツールやカスタムのスクリプトを必要になるかもしれません。もし IP アドレスがコマンドラインでアップデート可能であるならば、cron や systemd/タイマー などのツールで自動的に実現可能であることを覚えておいて下さい。
他のプロバイダ
以下の DDNS プロバイダは ddclient に対応していないため、特殊なツールを使ったりカスタムスクリプトで IP を更新する必要があります。コマンドラインで IP を更新できる場合、cron や systemd/タイマーなどのツールを利用して更新を自動化することができます。
duiadns
Duiadns.org は無料のサービスです。duiadnsAUR[リンク切れ: アーカイブ: aur-mirror] で自動化が可能。
FreeDns.io
FreeDns.io は無料で A, AAAA, DNS レコードを提供します。CNAME, TXT, MX レコードはプレミアムメンバーになる必要があります。HTTP API を利用して IP を更新することができます (1時間あたり60回までの制限あり)。複数のサンプルスクリプト が用意されています。
Now-DNS
Now-DNS.com は簡単にセットアップができる無料サービスです。
System-NS
System-NS はコマンドラインによる更新ができる無料サービスです。公式のドキュメント を参照してください。
Loopia.se
ネームサーバーとして loopia.se を使う場合、公式ドキュメント に書かれているように curl で DNS レコードを更新することができます。