概要
自宅で動いているNextcloudサーバへIPv6アドレスを使って内部と外部から接続されるように構築していましたが、もちろんIPv4ではアクセスできないことをどうにかしようとして、いろいろと調べたところ、cloudflareという神サービスを見つけてそれを使ってみたときの試行錯誤です。
一晩で使えるようになるだろ…という甘い考えだった。
cloudflare利用前後の構成図
Cloudflareの設定
もろもろの作業
以下の作業については、ほかの方々がわかりやすい内容でまとめているので検索してください。
- Cloudflareの無料枠でアカウント作成
- DNS移管
- Cloudflare One(Access - Zero Trust)
- Cloudflared tunnel
- アプリケーションの作成
- パブリックホスト(セルフホスト)の設定
トンネルの設定
自分の環境ではマルチドメインで運用しているので、それぞれのドメイン毎のパブリックホストを作成しました。
- パブリックホストのホスト名
- 外部に公開するホスト名(URL)を設定する
- サービス
- タイプはHTTPS
- URLはWeb(nextcloud)サーバのプライベートIPアドレス
その他のアプリケーション設定(ここがキモ)
つまずいていた事
nextcloudのtrusted_domainにはじかれる
トンネルパブリックホストのサービスURLにIPアドレスを入れると、設定されていないホスト名でアクセスされているとエラー画面が出て使えなかった
trusted_domainをサービスURLに設定すると。。。
参照ループで大変なことに
サーバはHTTPにして、SSLはcloudflareでする
これだといくらトンネルとはいえHTTPで外と通信することになったり、自宅でのアクセス時にHTTPアクセスになるのでURLが変わってしまい、外出時と在宅時で使い分けは現実的ではない
Proxmoxに追加したDNSサーバについて
ローカルアクセスはcloudflareを経由しないように、unboundで自宅内完結するようにしています
これをしなくてもアクセスはできますが、大回りアクセスになってパフォーマンスが出ないことと、アップロード制限に引っ掛かりやすくなるのでこれに準じた構成がいいと思います。
謝辞
公式ドキュメント


