優れたソフトウェアと実用的なチュートリアル
Synology NASにネイティブのCloudFlare DDNS機能を追加するための詳細なガイド
シノロジー(シノロジーDSM)システムのネイティブDDNS機能はCloudFlareをサポートしていませんが、オープンソースのスクリプトを使用して簡単にCloudFlareをDDNSプロバイダーとして追加できるため、ダイナミックDNS(DDNS)を使用すると、パブリックIPが変更されたときにNASがドメイン名レコードを自動的に更新します。これはDSM 7.x以降に適用され、操作は簡単ですが、SSHアクセスこのプロセス全体はサードパーティ製のプラグインを必要とせず、DSM DDNSインターフェースで直接設定できます。以下は、信頼できるチュートリアルに基づいた完全な手順です。
前提条件
- CloudFlareアカウントとドメイン: CloudFlare に追加され、CloudFlare の NS サーバーを使用しているドメインがあることを確認してください。
- 得るゾーンID: CloudFlare ダッシュボードにログインし、ドメインの概要ページに移動して、「ゾーン ID」(Zoom ID とも呼ばれ、通常は 023e105f4ecef8ad9ca31a8372d0c353 などの 32 桁の 16 進文字列) をコピーします。
- 作成するAPIトークン:
- アクセス CloudFlare APIトークンページ。
- 「トークンの作成」をクリックし、「ゾーンの編集」DNS テンプレートを選択します。
- 権限をデフォルトに設定し (ゾーン: DNS > 編集)、「含める > 特定のゾーン」を選択します (ドメイン名を指定します)。
- 生成後、トークンをコピーします (注: トークンは「デプロイメント」セクションで取得できますが、「API キー」では取得できません)。
- Synology SSHを有効にする:
- DSM コントロール パネル > ターミナルと SNMP に移動し、「SSH サービスを有効にする」をチェックします (デフォルトのポートは 22 です)。
- Windows 用の PuTTY、Xshell、OpenSSH などの SSH ツールを準備します。
- 予防: NAS設定をバックアップします。APIトークンは秘密にしておく必要があります。DDNSのサブドメインを作成し、CloudFlare DNSにAレコードを追加することをお勧めします(プロキシのシャットダウン(オレンジ色のクラウドアイコンが灰色になっている状態)初期 IP アドレスは任意に入力できます。
ステップ1: SSH経由でスクリプトをインストールする
- SSH を使用して NAS に接続します。
- ホスト: NAS IP アドレス、ポート: 22。
- ユーザー名: DSM 管理者アカウント、パスワード: DSM ログイン パスワード。
- ログイン後、プロンプトは admin@NASName:~$ のようになります。
- ルートユーザーに切り替えます。
- sudo -i (または su root) と入力し、管理者パスワードを入力します (入力中は文字は表示されません)。
- 成功すると、プロンプトが root@NASName:~# に変わります。
- スクリプトをダウンロードしてインストールします。
- 次のコマンドを実行してスクリプトをダウンロードします(これはオープンソースです)クラウドフレアDDNSインストールスクリプト):
curl -L https://raw.githubusercontent.com/timothymiller/synology-cloudflare-ddns/master/cloudflare.sh -o /sbin/cloudflare
- ダウンロードが失敗するか、HTTP エラーが発生する場合は、スクリプトを変更してみてください (vi /sbin/cloudflare を使用して 6 行目を編集し、proxy="true" を proxy="false" に変更します)。
- 実行権限を付与します:
chmod +x /sbin/cloudflare
- スクリプトを実行して、CloudFlare を DDNS リストに追加します。
/sbin/クラウドフレア
スクリプトは自動的に CloudFlare を検出し、プロバイダーとして追加し、DDNS サービスを再起動します (有効になるまでに数分かかる場合があります)。
- 次のコマンドを実行してスクリプトをダウンロードします(これはオープンソースです)クラウドフレアDDNSインストールスクリプト):
- ルートを終了して SSH を実行します。
- root を終了したい場合は exit と入力し、SSH を終了したい場合は exit と入力します。
警告するスクリプトは実行中にシステムファイル(/etc.defaults/ddns_provider.conf など)を変更します。DSM のアップグレードによって上書きされる可能性があります。アップグレード前に /etc/ddns_provider.conf をバックアップすることをお勧めします。スクリプトでエラーが発生した場合は、ネットワーク接続を確認するか、スクリプトを手動でダウンロードして貼り付けてください。
ステップ2: DSMでDDNSを設定する
- DSMコントロールパネルを開く > 外部アクセス > DDNS。
- [追加]ボタンをクリックします。
- 設定を入力します:
- サービスプロバイダー:「CloudFlare」を選択します(スクリプトが追加された後に表示されます)。
- ホスト名: サブドメイン (例: nas.example.com) を入力し、対応する A レコードが CloudFlare DNS に追加されていることを確認します (プロキシはオフ)。
- ユーザー名/メールアドレス: ゾーンIDを貼り付けます。
- パスワード/キー: API トークンを貼り付けます。
- 外部アドレス:「現在の IP アドレスを使用する」または「自動」を選択します。
- 「接続テスト」をクリックして確認します(「接続成功」と表示されます)。
- 「適用」をクリックして保存し、有効にします。
ステップ3: 検証とテスト
- CloudFlare DNS ページで、サブドメインの A レコード IP がパブリック IP に更新されているかどうかを確認します (現在の IP を確認するには、curl ifconfig.me を使用します)。
- 外部アクセステスト:ブラウザを使用して http://nas.example.com:5000(DSM のデフォルトポート)にアクセスします。DSM のログインページが表示されます。
- IP 変更テスト: IP 変更をシミュレートし (またはオペレーターが再起動するまで待機し)、数分後にレコードが更新されるかどうかを確認します。
よくある質問と注意事項
- スクリプトの失敗: DSMバージョンのアップデートによりスクリプトが無効になった場合は、インストールコマンドを再実行するか、GitHubリポジトリを参照してください。 timothymiller/synology-cloudflare-ddns 更新します。
- プロキシ問題: CloudFlare プロキシ (Orange Cloud) は実際の IP を隠すため、DDNS には適していません。オフにする必要があります。
- 安全: APIトークンはDNS編集権限のみに制限されています。複数のドメイン名をお持ちの場合は、専用のトークンを作成してください。
- 代替方法スクリプトを使用したくない場合は、Docker を使用して CloudFlare DDNS コンテナを実行したり、DNS-O-Matic などのサードパーティ プロバイダーを使用したりできますが、ネイティブ スクリプトが最も簡単です。
上記の手順に従うことで、SynologyにネイティブのCloudFlare DDNSを実装し、無料で信頼性の高いダイナミックDNSを利用できます。特定のエラーが発生した場合は、DSMログ(コントロールパネル > ログセンター)を確認することをお勧めします。
使用シナリオ
外部ネットワークとドメイン名があり、CloudFlareでホストされています。DDNS解決が必要なのですが、ddns-goは使いたくありません。
使い方
Synologyの設定
- SynologyにSSHで接続し、ルートユーザーに切り替えて実行します。
wget https://mirror.czl.net/https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh
- スクリプトに権限を与える
chmod +x /sbin/cloudflareddns.sh
- まず、CloudflareのDDNSスクリプトをSynologyシステムに追加して貼り付けます。
猫 >> /etc.defaults/ddns_provider.conf << 終了
次に貼り付けます
[Cloudflare] モジュールパス=/sbin/cloudflareddns.sh クエリURL=https://www.cloudflare.com ウェブサイト=https://www.cloudflare.com
最後のペースト
終了
保存するだけ
Cloudflareパラメータを取得する
- リージョンIDを取得します。
- 編集可能DNSレコードAPIキー
DDNSの設定
- ホスト名は設定するセカンダリドメイン名です
- ユーザー名/メールセクション地域ID
- パスワード/キー入力APIキー
保存して有効にします。
