Ngrokの代替 Cloudflare Tunnelが有能すぎる件。

ツール・サービス
この記事は約5分で読めます。

皆さん、快適なインターネットライフをお送りでしょうか?

筆者のネット回線はwell-knownポートの開放ができず、苦戦していました。

この記事では、そういった環境下でWEBサイトを開設する方法を解説していきます。

この記事が向いている人

  • プライベートIPしか割り当てられていない人
  • 主要なポート(0~1023)がプロバイダの制限などにより開けない人
  • ローカルサーバーを公開したい人
  • 何らかのレジストラでドメインを取得している人

NgrokとCloudflare Tunnelの違い

  • Ngrokは、カスタムドメインを使うために有料プランにする必要あり(5$/month?)
  • カスタムドメインを使わない場合、任意のアドレスが割り当てられるが起動するたびに変わる。

今回必要なもの

  • Cloudflareアカウント(ドメイン登録済み)
  • 公開したいサーバー(今回の解説はUbuntu, Debian向け)

ネームサーバーの設定

Cloudflareにアクセスし、自分のドメインを登録します。

Registerのドメインの設定から、表示された2つのネームサーバーを登録します。

注意

hostzoneのNSレコードを編集しても意味がないのでお気を付けください(1敗)

ネームサーバーの更新には最大24時間ほどかかる場合もあるため気長に待ちましょう。(筆者の場合は5分もかからないうちに更新されていました)

設定方法(オススメの方)

Zero Trust→Access→Tunnelを起動

Cloudlareにログイン後、Zero Trustを起動します。

その項目の中にAccessがあるので、それをクリック。

またまたその項目の中のTunnelをクリック。

開けたら以下のような画面になります。

対象機器にCloudflare Tunnelをインストール

以下の画像の、Create Tunnelというところをクリック

トンネルの名前を決めろと言われるので、適当に決めます(今回はtestに)

すると以下のようにディストリビューションの選択画面が出てきます。

自分にあったものを選んでください。

このスクリプトを実行するとCloudflare Tunnelが開通します。

Hostnameの設定

トンネルが開通すると、ステータスの表示がHealthyになります。

それから、ホストネームを設定するなどしてください。

設定方法(めんどい方)

Cloudflare Tunnelのインストール&設定

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

sudo apt install -y ./cloudflared-linux-amd64.deb

以下のコードでログインを行います。

cloudflared tunnel login

URLが表示されるため、そこにアクセスして設定したドメインへの許可を与えましょう。

cloudflared tunnel create sample
tunnel: <UUID> #上記コマンドで出力されたUUID
credentials-file: ~/.cloudflared/<UUID>.json

ingress:
  - hostname: sample1.example.com
    service: http://localhost:80
  - hostname: sample2.example.com
    service: http://localhost:8080
  - service: http_status:404

以下コマンドでトンネルを追加します。

cloudflared tunnel route dns example1 example1.example.com
cloudflared tunnel route dns example2 example2.example.com

そして実行します。

cloudflared tunnel --config ~/.cloudflared/config.yml run example1
cloudflared tunnel --config ~/.cloudflared/config.yml run example2

ここまですべて完了すると、実際にアクセスできるようになります。

ただ、Webサーバーの場合、nginxやapacheなどをインストールしておかないと確認ができないため、しっかり準備しておきましょう。

自動起動の設定

再起動後などいちいち上記コマンドを実行するのはめんどくさいため、自動起動の設定をします。

sudo cloudflared --config ~/.cloudflared/config.yaml service install
sudo systemctl enable cloudflared

これですべて完了となります。

おわりに

今回は、Cloudflare Tunnelを使いローカルサーバーを公開する方法を紹介しました。

筆者自身もこのような便利なサービスがあると知らなかったため驚きました。

ちなみにですが、このサイトもCloudflare Tunnelを使って運営しています。

この記事がどなたかの役に立てばと思います。

それでは!

コメント

  1. PESTENIS より:

    `この記事が向いている人`の部分などに「何らかのRegisterでドメインを取得している人」と書いていますが、Registerは登録するという意味の動詞なので間違っています。おそらくレジストラと記述するのが正しいかと思います。

タイトルとURLをコピーしました