MikroTikルーターでDDNSを設定する2つの方法
FastDDNSは、すべてのホスト名に2つの既製のRouterOSセットアップ。方法1は、ターミナルに貼り付ける1行のコマンドで、ホスト名用に構築されたスクリプトをダウンロードし、/system scriptと/system schedulerエントリーを作成します。方法2は、System > Schedulerの下で手動で入力する同じ更新コマンドです。どちらも2分ごとにFastDDNSの更新URLを呼び出します。
特に理由がない限り方法1を使用してください。ターミナルよりもWinBoxを好む場合、ルーターがダウンロードをブロックしている場合、または自分で選んだ名前でスケジューラーを作成したい場合は方法2を使用してください。
| 方法1 — 自動スクリプト | 方法2 — 手動スケジューラー | |
|---|---|---|
| 作業場所 | ターミナル(WinBox または SSH) | WinBoxでWebFig / System > Scheduler |
| 貼り付ける内容 | 1行 | 3つのフィールドと1つのコマンド |
| 作成されるスケジューラー名 | FastDDNS.net(固定) | 入力する内容 — パネルが提案するfastddns更新間隔 |
| 更新間隔 | 120 秒 | 00:02:00 |
| 最初の更新 | 最初の間隔の後に実行 | 制限時間 |
| 制限時間 | ダウンロードリンクは、パネルが生成してから 1 時間で期限切れになります | なし |
開始する前に
4 つのことがあり、そのうち 2 つがリモートアクセスがそもそも動作するかどうかを決めます。
- FastDDNS hostname。FastDDNS で無料で作成し、そのホスト名を開いて DDNS Configuration Parameters > MikroTik Routers までスクロールします。
- 管理者アクセスRouterOS を WinBox、WebFig、または SSH。
- WANインターフェース上の実際のパブリックIP。 ISPがあなたをCarrier-Grade NATの背後に置いている場合、DDNSは役に立ちません。hostnameはISPの外部から誰も到達できないアドレスを指すことになります。routerで時間を使う前に、FastDDNSモバイルアプリでCGNATチェッカーを実行してください。
- 到達したい任意のものへのポートフォワーディング。 DDNSは名前を正しいアドレスに向け続けるだけです。router上で対応するファイアウォールとNATルールも必要です。後でポートチェックで確認できます。
routerが実際に保持している情報を確認するには、アドレスを一覧表示し、インターフェースがWANリンクになっている行を確認します。デフォルトルートを通すインターフェースです。
/ip address print
/ip route print where dst-address=0.0.0.0/0そのWANアドレスが10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、または100.64.0.0/10に該当する場合、routerはパブリックIPを持っておらず、上流の何かがNATを行っています。100.64.0.0/10の範囲はキャリアグレードNAT用に予約されています。
方法1 — 1行の自動インストールスクリプト
ステップ1 — ホスト名パネルから行をコピーする
ホスト名を開き、ページ下部のDDNS Configuration Parametersページ下部のセクションまでスクロールしてください。サポートされているすべてのデバイスファミリーにパネルがあり、目的のものはMikroTik Routersです。

開いて「メソッド1」のボックスをコピーしてください。これは、アカウントに紐付いたtokenで終わる長い1行です。

:do { /tool fetch check-certificate=no url="https://fastddns.net/ja/member/download/YOUR-DOWNLOAD-TOKEN" dst-path=fastddns.txt; import fastddns.txt} on-error={ [:terminal style error]; :put "ERROR"; }この行を再入力するのではなく、パネルから本物の行をコピーしてください — トークンがあなたのホスト名を識別するものです。
ステップ2 — ターミナルに貼り付ける
WinBoxでNew Terminalを開くか、SSHで接続し、その行を貼り付けてEnterキーを押します。/tool fetchを開くか、SSH経由で接続し、その行を貼り付けてEnterキーを押します。 Filesリストにfastddns.txtリストにimportとして、
check-certificate=noが実行します。noをデフォルトにしており、パネルにも明示されているため、証明書ストアが空のrouterや、まだ時計が同期していないrouterでもダウンロードできます。証明書を検証したい場合は、これをcheck-certificate=yesに切り替えてください。これは、routerにCAストアがインポートされ、時計が正確な場合にのみ成功します。このスイッチが適用される範囲に注意してください。これは、この1回限りのダウンロードにのみ適用されます。check-certificate=noその後routerにインストールされるスクリプトには、更新のたびに使用する独自の
ステップ3 — スクリプトが作成するもの
インポートされたファイルはブラックボックスではありません。hostname、ユーザー名、キーを出力した後、次の4つの処理を行います。
- 既存のFastDDNS.netなので、再実行しても重複が残りません。
- 更新コマンドを含む/system scriptという名前のFastDDNS.netを追加します。
interval=120sとstart-time=startupという名前の/system schedulerを追加し、FastDDNS.netと- 最初のスケジュールされた実行を待つのではなく、スクリプトをすぐに一度実行します。
インストールが完了した状態は、ターミナルで次のように表示されます。
ADD new Script: Complete.
ADD new Scheduler: Complete.
Complete add FastDDNS.この3行は、そのままの意味に受け取ってください。スクリプトとスケジューラが作成されたことを示しています。hostnameが更新されたことを証明するものではありません — 最初の実行が拒否されても、インストーラは Complete add FastDDNS. 最初の実行が拒否された場合も同様です。更新が実際に行われたことは、後述のチェックで確認してください。
ステップ4 — ダウンロードリンクは1時間で期限切れになります
その行のtokenは、パネルページの表示時に生成され、3600秒後に使えなくなります。古いコピーを貼り付けると、routerは ERROR と表示します。サーバーが410 # Download token expired.スクリプトではなく応答したためです。hostnameのページを再読み込みし、行をもう一度コピーすれば解決します。
以下の手順は古い録画です。その後パネルが再設計されたため、上のスクリーンショットとは一致しませんが、手順とコマンド自体は変わっていません。
方法2 — スケジューラを手動で設定する
方法1と同じ結果になりますが、自分で入力するため、routerには何もダウンロードされません。
ステップ1 — スケジューラのエントリを作成する
WinBoxでSystem > Schedulerに移動し、次の3つの値で新しいエントリを追加します。これらの値は、パネルがスクリプトの横に表示し、各スクリプトにコピー用ボタンが付いています:

| フィールド | 値 | 内容 |
|---|---|---|
| Name | fastddns |
名前は何でも構いません。この名前ならリスト内でわかりやすくなります。 |
| Start Time | startup |
時刻ではなく起動時を基準にスケジュールを開始します — 詳しくはこの表の下の注記をご覧ください。 |
| Interval | 00:02:00 |
2分ごとに繰り返します |
知っておくべきRouterOSの詳細の1つ:start-time=startupは、コンソールが立ち上がってから3秒後に開始時間が設定されたかのように動作しますが、MikroTikのドキュメントによると、非ゼロ間隔のエントリは起動時には実行されません。したがって、最初の実行はブート直後ではなく、ブート後の1間隔後に行われます。再起動後、ホスト名は即時ではなく、およそ2分後に更新されます。
ステップ2 — 更新コマンドをOn Eventに貼り付ける
パネルから On Event ボックスをコピーします。形式は次のとおりです。
:do {/tool fetch check-certificate=no url="https://client.fastddns.net/?hostname=myhome.fastddns.net&user_name=YOUR-USERNAME&user_pass=YOUR-UPDATE-PASSWORD" dst-path=fastddns.ip; :local statusip [:pick [/file get fastddns.ip contents] 0 3]; if ($statusip = "noc" || $statusip = "goo") do={[/terminal style ambiguous];:put "Updated IP address";}; } on-error={[:terminal style error];:put "Can not connect to server FastDDNS.net.";:error "exit";};手動で何も置き換えないでください — パネルはすでにあなたのホスト名、ユーザー名、更新パスワードを入力しています。上の3つのプレースホルダーは、あなたのアカウントに固有の値を表すだけです。
ステップ3 — スクリプトが更新の成功を確認する方法
fetchはサーバーの応答をfastddns.ipに保存し、:pick … 0 3はその最初の3文字を読み取ります。FastDDNSは標準のDynDNS語彙で応答するため、その3文字を見るだけで結果を判別できます:
| 応答 | 最初の3文字 | 意味 |
|---|---|---|
good |
goo |
ホスト名は新しいアドレスに更新されました |
nochg |
noc |
アドレスは変更されていない — 処理は不要 |
badauth |
bad |
ユーザー名または更新パスワードが間違っている |
スクリプトは goo と noc のみをテストし、どちらの場合も Updated IP address を出力します。それ以外のもの — badauth を含む — はそのまま無視されます。fetchは成功しているため、on-error は実行されず、何も出力されません。 何も出力されないからといって、成功とは限りません。 不明な場合は fastddns.ip をお読みください。プロトコル自体のドキュメントは FastDDNS クライアント API ページ に掲載されています。自分でスクリプトを書く場合は、こちらを参照してください。
マニュアルでのルートの映像 — 同じ 4 つの値を示す以前のパネル録画です。
ホスト名が本当に更新されているか確認してください
ルーター上で3つ、ルーター外で1つ確認します。ルーター上では:
/system scheduler print
/file print
:put [/file get fastddns.ip contents]スケジューラーの一覧には run-count 列があり、2分ごとに増加します。それはエントリーが実行されていることを示しますが、実際には更新が成功したことを示すものではありません。失敗するコマンドを実行しているスケジューラーでもカウントアップされるためです。証拠となるのはファイルです。fastddns.ipが存在し、その内容が で始まり
good または nochg — サーバーが記録したアドレスを追加する場合があります。
ルーターの外部から、任意のマシンでhostnameを解決し、現在のパブリックアドレスと比較します。
nslookup myhome.fastddns.netあなたのホスト名パネルには、最終更新のタイムスタンプも表示され、これはNot yet updatedルーターが初めて報告した時点から変化します。FastDDNSは60秒以内に新しいアドレスを適用しますが、ローカルDNSキャッシュに古いアドレスがもう少し長く残る場合があります。
MikroTik DDNSのトラブルシューティング
| 表示される内容 | 原因 | 対処方法 |
|---|---|---|
ERROR 方法1の行を貼り付けた直後 |
ダウンロードtokenの有効期限が切れているか、routerがサイトに接続できませんでした | ホスト名ページを再読み込みし、行をもう一度コピーして1時間以内に貼り付けてください |
| Can not connect to server FastDDNS.net. | routerが更新URLを解決できない、または接続できません | 何も変更する前に診断します: /ip dns print、次に:put [:resolve client.fastddns.net]router自体から名前解決をテストします。リストが空の場合にのみパブリックリゾルバを追加してください — 動作中の内部リゾルバを上書きすると、ローカルの名前解決が機能しなくなります |
fastddns.ip には badauth が含まれています |
パネルのOn Eventボックスをもう一度コピーしてください。別のプロバイダーから移行した場合は、ガイドを参照してください。 | パネルから再度オンイベントボックスをコピーしてください; 他のプロバイダから移行した場合は、No-IP または DynDNS サーバーアドレスを置き換えるDDNSは機能していますが、ネットワーク内への経路に問題があります |
| NATとファイアウォールのルールを追加してから、外部からportをテストします。 | hostnameが、パブリックIPとは異なるアドレスに解決されます | NATおよびファイアウォールルールを追加してから、ポートチェック と |
| 現在のアドレスをパブリックIP検索で報告されたアドレスと比較してください。異なる場合は、ISPにパブリックIPを依頼してください | すべて正常に動作していたのに、数か月後に停止しました | /ip address print をパブリックIPの検索結果と比較してください。異なる場合は、ISPにパブリックIPを依頼してください |
| アカウントから更新するか、hostnameの有効期限が切れないプランに変更してください | 無料のホスト名は1年ごとに更新され、一時的なものは30日間有効です | アカウントから更新するか、ホスト名が期限切れにならないプランに変更してください |
更新スクリプトは非公開にしてください
どちらの方法でも、hostname、ユーザー名、更新パスワードがルーターに平文で保存されます — スケジューラーの On Event フィールド、または /system script スクリプト内です。設定を読み取れる人なら誰でもこれらの値を確認できるため、完全な RouterOS エクスポートはパスワードファイルと同じように扱ってください。すでにフォーラムへの投稿やサポートチケットに貼り付けてしまった場合は、アカウントで更新パスワードを変更し、スクリプトを再インストールしてください。
ダウンロードした fastddns.txt はインストール時にのみ必要です。スケジューラーに影響を与えずに、後から Files から削除できます。
よくある質問
DDNSの更新自体のためにポートを開く必要はありますか?
いいえ。ルーターはFastDDNSへのアウトバウンドHTTPS接続を開くため、更新にインバウンドルールは必要ありません。ただし、hostname経由でアクセスしたいサービス(RTSPの554番ポートやカメラのウェブポートなど)にはport forwardingが必要です。
MikroTikはどのくらいの頻度で更新を送信し、hostnameはどれくらいの速さで変わりますか?
スケジューラーは両方の方法で2分ごとに実行されます。アドレスが実際に変更された場合、FastDDNSは60秒以内に適用するので、IP変更後の最悪の場合でもスケジューラーの待機時間約2分に伝播時間を加えた程度になります。
ISPがCGNATを使用している場合でも機能しますか?
いいえ。Carrier-Grade NATの背後では、ルーター自体にパブリックIPがないため、hostnameが有効に指し示せるアドレスがなく、ISPによって着信接続もブロックされます。Dynamic DNSはアドレスの変化を解決するものであり、アドレスが存在しない問題を解決するものではありません。ISPにパブリックIPアドレスを依頼するか、アウトバウンド接続をトンネリングするサービスを利用してください。
ホスト名は期限切れになりますか?
無料の永久ホスト名はアカウントから毎年更新され、臨時のホスト名は30日間有効です。有料プランのホスト名は期限切れになりません。詳細は料金ページに記載されています。
別のrouterを使用していますか?同じ更新URLは、スケジュールされたHTTPSリクエストを実行できる場所ならどこでも機能します。これには ここで紹介されているDrayTekの設定も含まれます。





