1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【連載 4/4】ポート開放不要!最強の自宅クラウド構築術:Cloudflare Tunnel 疎通確認編

1
Posted at

1. はじめに

前回は、PVE 上に Nextcloud AIO を構築し、管理者ユーザーで Nextcloud Talk の文字メッセージ送受信 を確認しました。

第4回となる今回は、Cloudflare Tunnel 側の設定と、実際にハマった接続設定を整理します。

この記事では、Cloudflare Tunnel の Public Hostname 設定と、Nextcloud AIO への疎通確認を扱います。


2. 今回の構成

第3回で構築した Nextcloud AIO に対して、Cloudflare Tunnel で外部からアクセスできるようにします。

構成は以下です。

[外部ブラウザ]
      ↓
[Cloudflare Tunnel]
      ↓
[Nextcloud 用 LXC]
      ↓
[Nextcloud AIO Mastercontainer : 8080]

ポイントは、Cloudflare Tunnel の接続先です。

実際の構築では、Nextcloud AIO マスターコンテナの 8080 番ポート に対してルーティングしました。


3. 記事公開時に伏せる情報

Cloudflare 周りの記事は、特に機密情報の扱いに注意します。

種類 記事内の表記例
ドメイン cloud.example.com
Nextcloud LXC の IP <NEXTCLOUD_LXC_IP>
Cloudflare Tunnel Token <CLOUDFLARE_TUNNEL_TOKEN>
管理者ユーザー <ADMIN_USER>

スクリーンショットを掲載する場合、以下は必ずマスクします。

  • 実ドメイン
  • グローバル IP
  • プライベート IP
  • メールアドレス
  • Cloudflare Tunnel Token
  • Tunnel ID
  • 管理者ユーザー名
  • QR コード

Cloudflare Tunnel Token は漏らしてはいけません。
記事・GitHub・スクリーンショットのいずれにも、そのまま載せないようにします。


4. Cloudflare Tunnel を作成する

Cloudflare Zero Trust の管理画面で Tunnel を作成します。

Networks -> Tunnels -> Create a tunnel

Tunnel 名は任意です。
記事中では、実際の名前ではなく以下のように表記します。

nextcloud-tunnel

Cloudflare が提示する cloudflared の起動手順に従って、自宅側の環境から Tunnel を接続します。

Token を使う場合、記事中では以下のように伏せます。

<CLOUDFLARE_TUNNEL_TOKEN>

5. Public Hostname の設定

Tunnel 作成後、Public Hostname を追加します。

今回の実構築で重要だった設定は以下です。

項目 設定値
Subdomain cloud
Domain example.com
Type HTTPS
URL https://<NEXTCLOUD_LXC_IP>:8080
No TLS Verify Enabled

公開 URL は以下になります。

https://cloud.example.com

5.1 Type は HTTPS

Nextcloud AIO の初期画面は、自己署名証明書を使った HTTPS で待ち受けています。

そのため、Cloudflare 側の Type は HTTP ではなく HTTPS にしました。

Type: HTTPS

5.2 URL は 8080 番ポート

実際の構築では、Cloudflare Tunnel の接続先を Nextcloud AIO マスターコンテナの 8080 番に向けました。

URL: https://<NEXTCLOUD_LXC_IP>:8080

5.3 No TLS Verify を有効化

AIO の初期画面は自己署名証明書で待ち受けているため、Cloudflare 側で証明書検証に失敗します。

そのため、Cloudflare 側で以下を有効化しました。

No TLS Verify: Enabled

これにより、Cloudflare Tunnel 経由で AIO 初期画面へ到達できるようになりました。


6. Cloudflare Tunnel 経由で AIO 初期画面を確認する

Public Hostname を設定したあと、ブラウザで以下へアクセスします。

https://cloud.example.com

Nextcloud AIO の初期画面が表示されれば、Tunnel 経由の疎通は成功です。

この時点で確認できたことは以下です。

  • 自宅ルーターのポート開放なしでアクセスできる
  • Cloudflare Tunnel 経由で AIO 初期画面に到達できる
  • https://<NEXTCLOUD_LXC_IP>:8080 へ Tunnel 経由で到達できる

7. AIO の初期設定を進める

AIO 初期画面に表示されたパスフレーズを使い、AIO 管理画面へログインします。

その後、画面の案内に従って Nextcloud の初期設定を進めます。

ドメイン入力欄には、Cloudflare 側で設定した公開ホスト名を入力します。

cloud.example.com

記事では、実際のドメインをそのまま出さない場合、cloud.example.com のようなサンプル表記に置き換えます。


8. AIO のコンテナ選択

AIO のコンテナ選択画面では、今回使う範囲に合わせて必要なものを選択します。

今回の目的は Talk の文字チャットなので、以下のように整理しました。

機能 扱い
Nextcloud 本体 使用
Database 使用
Redis 使用
Talk 使用
Collabora 使用しない
OnlyOffice 使用しない
Fulltextsearch 使用しない
Imaginary 使用しない
Talk High Performance Backend 使用しない
TURN Server 使用しない

ここでは、AIO の GUI で必要なものだけを選択します。


9. Nextcloud へログインする

AIO の初期設定とコンテナ起動が完了したら、公開 URL へアクセスします。

https://cloud.example.com

管理者ユーザーでログインします。

記事中では、管理者ユーザー名は以下のように伏せます。

<ADMIN_USER>

この段階で確認したことは以下です。

  • Cloudflare Tunnel 経由で Nextcloud へアクセスできる
  • 管理者ユーザーでログインできる
  • Nextcloud の画面を表示できる

10. Talk の文字メッセージ確認

Nextcloud にログイン後、Talk を開きます。

確認したことは以下です。

  • Talk を開ける
  • 会話を作成できる
  • 文字メッセージを送信できる
  • メッセージが表示される

この確認により、Cloudflare Tunnel 経由でアクセスした Nextcloud 上で、Talk の文字チャットが動作することを確認しました。


11. ハマりどころ

11.1 Cloudflare Tunnel の接続先

Cloudflare Tunnel の接続先で重要だったのは、プロトコルとポートです。

実際に使った設定は以下です。

Type: HTTPS
URL: https://<NEXTCLOUD_LXC_IP>:8080
No TLS Verify: Enabled

11.2 8080 番は AIO マスターコンテナの初期画面

AIO の初期設定では、AIO マスターコンテナの 8080 番へアクセスします。

https://<NEXTCLOUD_LXC_IP>:8080

この画面は自己署名証明書で待ち受けるため、Cloudflare 側では No TLS Verify が必要でした。

11.3 AIO 管理画面と Nextcloud 本体を混同しない

AIO 管理画面と Nextcloud 本体は役割が異なります。

AIO 管理画面:
https://<NEXTCLOUD_LXC_IP>:8080

公開 URL:
https://cloud.example.com

構築中は、どの画面に接続しているのかを意識しておく必要があります。


12. 実施結果

今回、記事として扱った内容は以下です。

[Cloudflare Tunnel]
  - Public Hostname を設定
  - Type: HTTPS
  - URL: https://<NEXTCLOUD_LXC_IP>:8080
  - No TLS Verify: Enabled
  - AIO 初期画面へ疎通

[Nextcloud AIO]
  - AIO 初期設定を実施
  - GUI で必要なコンテナを選択
  - Nextcloud を起動

[Nextcloud Talk]
  - 管理者ユーザーでログイン
  - Talk の文字メッセージ送受信を確認

13. まとめ

今回は、Cloudflare Tunnel の Public Hostname 設定と、Nextcloud AIO への疎通確認を整理しました。

重要だったのは、Cloudflare Tunnel の接続先です。

今回の環境では、以下の設定で AIO 初期画面へ到達できました。

Type: HTTPS
URL: https://<NEXTCLOUD_LXC_IP>:8080
No TLS Verify: Enabled

その後、AIO の GUI で必要なコンテナを選択し、Nextcloud を起動しました。

最終的に、Cloudflare Tunnel 経由で Nextcloud にログインし、管理者ユーザーで Talk の文字メッセージ送受信を確認できました。

これで、ポート開放なしで Nextcloud Talk の文字チャットを動かすところまで確認できました。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?