我が家では、写真やドキュメントの管理・保管に Synology NAS を利用しています。 これまでインターネットから自宅内のSynologyNASにアクセスするために、DDNS(Dynamic DNS)と呼ばれる仕組みを利用していましたが、セキュリティの向上を目的にCloudflare Tunnelを利用した仕組みに変更しました。
この記事ではCloudflare Tunnelを利用してインターネットから自宅内のSynologyNASにアクセスする方法を紹介します。
はじめに
Synology NASへのインターネットからのアクセス方法として、公式にはQuickConnectとDDNSを利用した方法が紹介されています( ドキュメント)。
ざっくりと、QuickConnectは設定は簡単だが低速、DDNSは設定が多少複雑だが高速という特徴があります。
我が家ではこれまでDDNSを利用していましたが、DDNSでは設定したドメイン名に自宅のIPアドレスが直接紐づくため、外部に自宅のIPアドレスが公開されている状況でした。 複数のサーバーを自宅内に持っていることもあり、IPアドレスが公開されていることにセキュリティ面で気になったので、自宅のIPアドレスを隠ぺいできるCloudflareTunnelを利用してみました。
Cloudflare Tunnelについて
Cloudflare Tunnelは、Cloudflare社のネットワークとcloudflared
デーモンを利用することで、自宅のIPアドレスを公開しない&インバウンドのポート開けをせずに、インターネットから自宅内のサーバーにセキュアに接続できる仕組みです。(下画像、公式サイトの概要図)

上画像のように、外部からのリクエストはまずCloudflare社のサーバーに届きます。そして、次にPrivateNetwork内のcloudflared
デーモンを起動しているサーバーに届き、最後に目的のサーバーにリクエストが届きます。
今回のSynology NASの例では、下記によってこの仕組みを実現します。
- Synology NASのDockerコンテナ上で
cloudflared
デーモンを起動 - 目的のサーバーをSynology NASのDSMに設定
Synology NAS + Cloudflare Tunnelの設定方法
まず、前提としてCloudflareのアカウント登録と、独自ドメインの取得が必要です。
Cloudflareの公式サイトを参考に、アカウントの作成と独自ドメインの登録/移管を行います。
Cloudflare Tunnelの作成
まず、Cloudflareのポータルサイトから、Tunnelの設定を行います。
Zero Trust > ネットワーク > Tunnels
に移動して、「トンネルを作成する」ボタンを押下します。
トンネルの種類で「Cloudflared」を選択し、トンネルに任意の名前を付けて「トンネルを保存」を押下します。
コネクタをインストールして実行する、という画面でDockerを選択し、コマンドをコピーします。

|
|
このTokenをSynology NASのDockerコンテナで起動するcloudflared
デーモンに引数として渡します。
※この画面を消さずに、次の「Synology NASでCloudflaredデーモンを起動」を実施してください。下記を実施すると、画面下部に認識されたデーモンが表示されます
Synology NASでCloudflaredデーモンを起動
Synology NASに移動して、Container Managerを起動してcloudflare/cloudflared:latest
イメージをダウンロードしましょう。(詳細は割愛)
コンテナを作成していきます。任意の名前を入力し、「自動再起動を有効にする」にチェックを入れます。(自動起動を有効にすると、NASの再起動時に自動で起動されます。)

次に、ネットワークを「ホスト」にして、実行コマンドに下記のコマンドを挿入します。
- 接続先のサーバーが、
cloudflared
デーモンを起動しているサーバーからアクセスできる必要があるので、ネットワークは「ホスト」を指定する - コマンドはCloudflareのサイトで保存したコマンドから取得すること
|
|

これでコンテナを起動します。
Cloudflare側でフォワーディングの設定
ここまでで、Cloudflare側の画面にSynology NASが認識されているはずです。
cloudflared
から、DSMにアクセスできるように設定していきます。
任意のホスト名(例えばsynology-nas.your-domain.com
)を入力し、宛先にSynology NASのプライベートIPを指定(例: https://192.168.1.10:5001)します。
cloudflared
デーモンが起動しているサーバーからアクセスするので、プライベートIPで問題なし- プライベートIPアドレスは事前に固定化しておくこと
- DSMのポート番号を変更している場合は要修正
これで、Tunnelの設定は完了です。先ほど指定したホスト名(https://synology-nas.your-domain.com)でアクセスできるか確認してください。
まとめ
Synology NAS + Cloudflare Tunnelの設定方法を紹介しました。Cloudflare Tunnelを利用することで、Synologyの推奨するDDNSに比べて以下の利点があると考えています。
- 自宅のネットワークのグローバルIPを公開する必要がない
- インバウンドの通信の穴あけが不要
- Cloudflare側でセキュリティ対策が実施済み
自分でドメイン登録する必要があるのが最大のデメリット(とはいえNASを立てる人ならドメインぐらい持っている?)と言えますが、ドメインさえ持っていればセキュリティの強化が可能かと思います。