pfSenseでFastDDNSを実行する2つの方法
ホスト名パネルでは2つの設定方法があります。方法2は、FastDDNSを組み込みのServices > Dynamic DNSクライアントにCustomプロバイダーとして追加します — これは保持すべき方法です。なぜならpfSenseがこれを設定に保存し、バックアップするからです。方法1は、シェルに一行のスクリプトを貼り付け、2分ごとに実行されるcronジョブをインストールします。即座に動作しますが、pfSenseはそのジョブを管理しません。
以下の番号は、推奨順ではなく、パネルのラベルに従っています。長期的には方法2を設定し、今すぐ更新を送信したい場合は方法1を使用してください。
| 方法2 — 組み込みのDDNSクライアント | 方法1 — crontabスクリプト | |
|---|---|---|
| 作業場所 | Web UIのServices > Dynamic DNS | Diagnostics > Command Prompt、またはSSH |
| pfSenseの設定に保存されます | はい | いいえ — 下記の制限を参照してください |
| 設定の復元や再インストール後も保持されます | はい | いいえ |
| 更新を送信するタイミング | 監視対象のインターフェースアドレスが変わったとき、および毎日の再チェック時 | 無条件に2分ごと |
| 設定の手間 | 7つのフィールド、そのうち4つはパネルからコピーされます | 1回の貼り付け |
| 適している用途 | 永続的な設定 | 最初の更新をすぐに送信する場合、または簡単なテスト |
始める前に
4つのこと、うち2つはリモートアクセスがそもそも機能するかどうかを決めます。
- FastDDNSのhostname。 FastDDNS で無料で作成し、DDNS Configuration Parameters > Firewall pfSense 開いて
- pfSenseウェブインターフェースへの管理者アクセスと、方法1を使用する場合のみシェルアクセス。
- WANインターフェースに実際のパブリックIPアドレス。 ISPがCarrier-Grade NATの背後に置いている場合、DDNSは役に立ちません。hostnameは、ISPの外部からは誰も到達できないアドレスを指すことになります。pfSenseダッシュボードでWANアドレスを確認するか、FastDDNSモバイルアプリのCGNATチェッカーを実行してください。
- 到達したいもののためのファイアウォールとNATルール。 DDNSは名前を正しいアドレスに向け続けるだけで、接続方法は自分で設定する必要があります。後でポートチェックで確認してください。
pfSenseダッシュボードで、WANインターフェースのアドレスが10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、または100.64.0.0/10の範囲にある場合、上流でNATが行われています。100.64.0.0/10の範囲はキャリアグレードNAT用に予約されています。
方法2 — FastDDNSをCustom Dynamic DNSクライアントとして追加する
この設定を使い続けるのがおすすめです。pfSenseはこれをconfig.xmlに保存するため、設定を復元すれば戻り、再インストール後も維持されます。
ステップ1 — hostnameパネルから更新URLをコピーする
ホスト名を開き、DDNS Configuration ParametersまでスクロールしてFirewall pfSenseを展開します。

Method 2の下にあるUpdate URLボックスをコピーします。
https://client.fastddns.net/?hostname=myhome.fastddns.net&user_name=YOUR-USERNAME&user_pass=YOUR-UPDATE-PASSWORD大文字で表示されている3つの値は、あなたのアカウントに固有の非公開情報です。パネルが自動的に入力します。
ステップ 2 — Dynamic DNS クライアントを開く
pfSense のウェブインターフェースで Services > Dynamic DNS に移動し、+ 追加 をクリックします。
ステップ 3 — フィールドに入力する
| フィールド | 値 | 理由 |
|---|---|---|
| Service Type | Custom |
FastDDNS は組み込みのプロバイダーリストに含まれていませんが、含める必要もありません |
| Interface to Monitor | WAN |
アドレスの変更によって更新を実行するインターフェース |
| Hostname | あなたの FastDDNS ホスト名 | 更新 URL にすでに含まれているため、Custom タイプでは主にリストに表示されるラベルです |
| Update URL | ステップ 1 の URL | そのまま貼り付けてください。置き換える %IP% はありません。FastDDNS はリクエストの送信元アドレスを記録します |
| Force IPv4 DNS Resolution | チェックを入れる | 更新ホストを IPv4 のみで解決します。これにより、FastDDNS が記録するアドレスは IPv6 ではなく IPv4 の WAN アドレスになります |
| Result Match | 空欄のままにする | pfSense はこれを応答全体と比較します。FastDDNS は変更後にgood更新成功のメッセージを返し、何も変化がない場合はnochg更新なしのメッセージで応答します。そのため、両方に一致する単一の固定文字列はありません。パネル自体の指示でも設定されていません |
| Description | FastDDNS.net |
自由記述欄。自分用の参照情報です |

ステップ 4 — 保存してからステータス列を確認する
保存して強制更新をクリックします。{@_NT40_}リストに戻ると、キャッシュされたIP列に現在の WAN アドレスが表示されます。空欄のまま、または強制更新後も古いままの場合は、更新が成功していません。以下のトラブルシューティング表で原因を確認できます。
この方法について理解しておくべきことの一つは、これは2分ごとのハートビートによってではなく、イベントによって動作するということです。Netgateはこのサービスを、インターフェースアドレスが変更されたとき
に更新されると文書化しており、pfSense も安全策として1日1回01:01に/etc/rc.dyndns.updateを実行するデフォルトのcronエントリを提供しています。そのため、更新が失敗した場合でも再試行はされます — ただし数分以内ではありません。すぐに更新が必要な場合は、保存して強制更新を使用してください。
もし、自分のスクリプトから同じエンドポイントを呼び出したい場合、パラメータはFastDDNSクライアントAPIページに記載されています。
以下のウォークスルーは古い録画ですので、パネルの見た目はここにあるスクリーンショットとは異なります。フィールドや手順の順序は同じです。
方法1 — ワンラインcronスクリプト
ステップ1 — hostnameパネルからスクリプトをコピーする
同じFirewall pfSenseパネルで、Method 1の下のボックスをコピーします。これは同じ更新URLを中心に構築された一行です:
((crontab -l >/dev/null && crontab -l | grep -i "client.fastddns.net") || ((crontab -l; echo '*/2 * * * * fetch "URL" -o /dev/null || curl -s "URL"') | crontab -; fetch "URL" -o /dev/null || curl -s "URL"; printf "\n\nAdded Dynamic DNS Script to crontab successfully\n\n"; exit 1;)) && printf "\n\nFastDDNS is available \n\n";実際の行では、各URLは、方法2のステップ1で取得した完全な更新URLです。手動で組み立てるのではなく、パネルからコピーしてください。

ステップ2 — 実行する
行をDiagnostics > Command PromptのExecute Shell Commandボックスに貼り付け、Executeを押します。SSHセッションまたはコンソールのオプション8でも同様に実行できます。
Netgateの警告はこのページ全体に適用されます。貼り付けた内容は完全な権限で実行され、誤ったコマンドによってファイアウォールが使用不能になる可能性があります。パネルから取得した行だけを貼り付けてください。このコマンドは実行を完了して戻る必要がありますが、これは実際に戻るため、ここで安全に実行できます。
ステップ3 — 2つのメッセージが意味すること
出力の最後に、次のどちらかの行が表示されるか確認してください。それぞれ意味が異なります:
| メッセージ | 何が起こったか |
|---|---|
| Added Dynamic DNS Script to crontab successfully | crontabにFastDDNSのエントリがなかったため、1つ追加され、すぐに更新が送信されました |
| FastDDNS is available | すでにエントリが存在したため、何も変更されませんでした |
チェックはcrontab全体に対する単純なgrepに対するclient.fastddns.netです。これにより、ジョブを二重にインストールすることを防げます — しかし、同じファイアウォールに2つ目のhostnameを追加した場合、スクリプトは最初のものを見つけ、何も追加しません。2つ目のhostnameには、手動でcron行を追加する必要があります。
grepこれが、2回目の実行で1行以上が表示される理由です。マッチした内容が表示され、その行は更新用URLを完全に含むcronエントリです — ユーザー名とパスワードも含まれます。誰かのそばで実行している場合や、出力をチケットに貼り付ける場合は、その行を削除してください。
スケジュールされた行自体は、pfSenseに付属するFreeBSDのダウンローダーfetchを実行し、失敗した場合はcurlにフォールバックします。
ステップ4 — 頼りにする前に知っておくべき制限
pfSenseは独自のスケジュールタスクをconfig.xmlに保持し、そこからシステムのcrontabを再構築します。crontab -で追加したジョブはrootユーザーのcrontabに存在しますが、pfSenseはこれを管理せず、構成バックアップにも含めません。その結果、次の2つのことが起こります。
- 設定を復元するか、ファイアウォールを再インストールすると、ジョブは失われます — 方法2のDynamic DNSクライアントなら残ります。
- System > Advanced > Miscellaneous が
/tmpと/varに対してRAMディスクを有効にしている場合、rootのcrontabはRAM上に存在します。Netgateの文書によると、再起動後にそのRAMディスクから保存されるのはRRDデータ、DHCPリース、ログ、およびCaptive Portalデータのみで、crontabは含まれていません。
これらはいずれも、方法1が間違っているという意味ではありません。これは更新を取得する良い方法です今すぐただし、1年間放置するには適していません。pfSenseに本当に保持されるcronジョブが必要なら、Cronパッケージをインストールし、そこから同じ行を追加してください。
以前のパネルデザインでスクリプト方式を紹介している、もう1つの古い記録です。
ホスト名が本当に更新されているか確認してください
どの方法を使った場合でも、3つの角度から確認してください。
pfSenseでは、Services > Dynamic DNSは各エントリにキャッシュされたIPを表示します — WANアドレスと一致するはずです。方法1を使った場合は、ジョブが存在することを確認し、シェルから一度手動で実行してください。
crontab -l
fetch -o - "PASTE-YOUR-UPDATE-URL-HERE"2つ目のコマンドはサーバーの応答を表示します。アドレスが変更されたばかりの場合はgoodアドレスが変更されたばかりの場合、またはnochgすでに正しい場合は — FastDDNSは記録したアドレスを追加することがあります。badauthユーザー名または更新パスワードが間違っていることを明確に示す唯一の応答です。それ以外の応答、または応答がまったくない場合は、それだけでは原因を判断できません。実際に返ってきた内容を読んでから、システムログを確認してください。
外部からhostnameを解決し、公開アドレスと比較してください。
nslookup myhome.fastddns.net最後に、あなたのホスト名パネルには、ファイアウォールが初めて報告した時点の Not yet updatedファイアウォールが初めて報告した時点から変化する最終更新最終更新のタイムスタンプが表示されます。FastDDNSは60秒未満で新しいアドレスを適用しますが、ローカルのDNSキャッシュが古いアドレスをもう少し長く保持することがあります。
pfSense DDNSのトラブルシューティング
| 表示される内容 | 理由 | 対処方法 |
|---|---|---|
返信は badauth です |
パネルからUpdate URLをもう一度コピーしてください。別のプロバイダーから移行した場合は、 | 保存後もNo-IP または DynDNS サーバーアドレスの置き換え ガイドを参照してください |
| 更新をCached IP が空のまま | クライアントが更新ホストに到達できなかったか、URL が貼り付け時に切り詰められた可能性があります | 保存して強制更新をクリックし、その後Status > System Logs > System > GeneralログVerbose Loggingエントリーで詳細ログを有効にすると、完全なやり取りが表示されます |
| ホスト名が IPv6 アドレスに解決される | 更新ホストにはIPv6経由で到達したため、そのアドレスが記録されました | Dynamic DNSエントリーのTick Force IPv4 DNS Resolutionをオンにして、強制的に更新してください |
| hostnameは正しいにもかかわらず、すべての更新が失敗としてログに記録される | Result Matchは固定文字列に設定されており、返信はgoodとnochg「」をクリアして |
結果の確認をオフにするResult Matchフィールドをクリアしてください |
| 方法1は成功しましたが、再起動や設定の復元後に停止しました | 、RAMディスク上に置くこともできますconfig.xmlの外部にあり、RAMディスク上に置くことができます |
代わりに方法2を設定するか、Cronhostnameは解決されますが、ポートには何も応答がありません |
| DDNSは動作していますが、ネットワークへの経路が機能していません | NATおよびファイアウォールルールを追加し、外部から | hostnameがパブリックIPではないアドレスに解決されるポートチェックでテストしてください |
| ダッシュボードのWANアドレスと、パブリックIP検索で報告されるアドレスを比較してください。異なる場合は、ISPにパブリックIPを依頼してください | すべて動作していたのに、数か月後に停止した | ダッシュボードのWANアドレスとパブリックIPの確認結果を比較してください。異なる場合は、ISPにパブリックIPを依頼してください。 |
| アカウントから更新するか、 | 無料のホスト名は年に一度更新され、仮のホスト名は30日間有効です。 | アカウントから更新するか、ホスト名が期限切れにならないプランに移行してください。 |
更新URLは非公開にしておいてください
更新URLには、hostname、ユーザー名、更新パスワードがクエリパラメータとして平文で含まれています。これはpfSenseの設定内にそのまま保存され、方法1ではcrontabにも保存されます。そのため、設定バックアップを読める人は誰でもこれらの認証情報を読み取れます。pfSenseの設定エクスポートはパスワードファイルと同じように扱い、情報を伏せていない更新URLをフォーラムスレッドやサポートチケットに貼り付けないでください。すでに貼り付けてしまった場合は、アカウントで更新パスワードを変更し、エントリを再設定してください。
よくある質問
Dynamic DNS クライアントとcronスクリプトのどちらを使うべきですか?
今後も使い続けるものには、Services > Dynamic DNS のDynamic DNS クライアントを使用してください。pfSenseはこれを設定に保存するため、バックアップに含まれ、再インストール後も復元されます。cronスクリプトは最初の更新をすぐに実行するには便利ですが、pfSenseはそのジョブを管理しないため、再起動や設定の復元時に失われる可能性があります。
DDNSの更新自体のためにポートを開く必要はありますか?
いいえ。pfSenseはFastDDNSへのアウトバウンドHTTPS接続を開くため、更新にインバウンドルールは必要ありません。ただし、hostname経由でアクセスしたいサービス(RTSPの554やカメラのWebポートなど)には、port forwardingとファイアウォールルールが引き続き必要です。
パネルでIPv4解決を強制するよう求められるのはなぜですか?
FastDDNSは、リクエストが到達した元のアドレスを記録します。pfSenseが更新ホストをIPv6アドレスに解決してIPv6で接続すると、そのアドレスが記録されるため、A recordが誤ったり空になったりします。IPv4解決を強制すると、公開したいアドレスと同じプロトコルで更新できます。
ISPがCGNATを使用している場合でも、これは機能しますか?
いいえ。Carrier-Grade NATの背後では、ファイアウォール自体にパブリックIPがないため、hostnameを指す有用なアドレスがなく、ISPによって着信接続もブロックされます。DDNSは変化するアドレスを解決するものであり、アドレスがない状態を解決するものではありません。ISPにパブリックIPアドレスを依頼するか、アウトバウンド接続をトンネルするサービスを利用してください。
エッジで別のものを実行していますか?同じ更新URLは、スケジュールされたHTTPSリクエストを送信できる環境ならどこでも機能し、たとえば、MikroTik RouterOSのセットアップも含まれます。





