0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare経由で自宅サーバーを外部公開(ほぼ覚え書き)

Last updated at Posted at 2025-12-29

やりたいこと&方針

  • 自宅サーバー内で構築したサーバーを外部インターネットからでもアクセスできるようにしたい
  • でも極力手間はかけたくない(SSL証明書取得・管理とかセキュリティ対策とか)
  • お金も掛けたくない
  • Cloudflareを利用する

手順概要

  • 独自ドメインを取得する(取得済みならそれを流用)(仮にexample.comとする)
  • Cloudflareアカウントを作成する
  • Cloudflareにドメインを登録(ドメイン移管とは異なる)
  • ドメインレジストラのDNS設定に、Cloudflareのネームサーバーを指定する
  • Cloudflare Tunnelsの作成と起動
  • Cloudflare Tunnels経由で自宅サーバーを外部公開

独自ドメインを取得

省略(Cloudflare内でも取得可能)

Cloudflare設定

1. アカウント作成

2. ドメインを登録(移管ではない)

  • 左メニューよりDomain→Domain Management→Onboard a domain
  • ドメイン名を登録して完了
  • 既存のDNSレコードを自動でインポートしてくれる
  • CloudflareのNSを確認しておく
    • DNS→Records→Cloudflare Nameserver(画面一番下)
    • 例)laylah.ns.cloudflare.com、yichun.ns.cloudflare.com

3. ドメインレジストラにてネームサーバーを変更

  • ドメインレジストラにてDNSサーバーを先に確認したCloudflareのDNSに変更する
  • NSレコードはそのままでOK(Cloudflareに変更しなくても実質動作が上書きされる)

4. DNSサーバー変更の確認

暫く待ってCloudflareのDomain Manager画面にて
対象ドメインのStatusがActiveになったらOK
※暫くは最大24時間程度

5. Cloudflare Tunnelsを作成

  • 左メニューよりZero Trust→Networks→Connectors
  • タブが2つあるのでCloudflare Tunnels→Create a tunnelをクリックして登録
  • tunnel typeの選択肢は一般的にはCloudflared
    • Cloudflaredは自宅サーバーにて起動する(後で)
  • Tunnal nameは任意(ドメイン名がよいと思う)
  • 接続のためのtokenが表示されるのでコピっておく
    • 手順(コマンド)も表示されるのでコピっておく
      ※トンネル自体の作成はこれで完了

6. 自宅サーバーにてcloudflaredを起動する

  • 先ほどのCloudflareで表示された手順に従ってcloudflaredをインストールする
  • その際にtokenも指定する
  • 起動したら自動的にCloudflare tunnelに接続される
  • 接続に成功したらCloudflareのConnectorsのStausがHEALTHYになる

7. Cloudflare Tunnels経由で自宅サーバーを外部公開

  • Connectorsのトンネル一覧の右の三点リーダーをクリック
  • Configureを選択
  • Published application routesタブを選択
  • Add a published application routeをクリック
  • 下記を入力
    • Subdomain:wwwやsshなど(サービス毎に分けるのが吉)
      • 無料バージョンだと1段階まで
    • Domain:ルートドメイン(example.com)
      • これもサブドメインにするなら有料版が必要
    • Service:自宅サーバーのアクセス先(ローカルLAN視点でOK)
      • type:httpやsshなどサービスにあわせる
      • URL:LAN内のIP/ドメイン名とポート番号
        • LAN内で変動しないよう固定化しておく
        • localhostは結構罠なのでやめておく(個人談)

8. 接続確認

外部インターネットから登録したドメインにアクセスする(例:www.example.com)

追記:SSL/TLS設定

上記までの設定だと自宅WEBサーバーがSSL/TLSに非対応だとそのままになる
よって、自宅サーバーが非暗号化状態でもトンネルをSSL/TLS対応にする

  • トップ画面→Account Home→ドメイン名(example.com)をクリック
  • 左メニューからSSL/TLS→Edge Certificatesをクリック
  • Always Use HTTPSをON

これで自宅サーバー内で暗号化できてなくても外部アクセス時はHTTPSになる

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?