cloudflared パッケージのインストール
# Cloudflare GPG キー追加 curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg > /dev/null # リポジトリ追加 echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list # インストール sudo apt update && sudo apt install cloudflared -y
• URL: https://one.dash.cloudflare.com/
• Networks → Tunnels → Create a tunnel
• Cloudflared を選択 → トークンが表示される
トークンは次の cloudflared.service の ExecStart に使用する、再表示できないため必ずメモ
• Networks → Tunnels → Create a tunnel
• Cloudflared を選択 → トークンが表示される
トークンは次の cloudflared.service の ExecStart に使用する、再表示できないため必ずメモ
systemd サービスのインストール
sudo cloudflared service install <取得したトークン>
サービス起動・自動起動設定
sudo systemctl enable cloudflared sudo systemctl start cloudflared sudo systemctl status cloudflared
設定ファイル cloudflared.service に記述
sudo nano /etc/systemd/system/cloudflared.service
[Unit] Description=cloudflared After=network-online.target Wants=network-online.target [Service] TimeoutStartSec=15 Type=notify ExecStart=/usr/bin/cloudflared --no-autoupdate tunnel run --token <トークン> Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
DNS エラー対策として追加する設定 override.conf ファイルに記述
sudo nano /etc/systemd/system/cloudflared.service.d/override.conf
[Service] Environment=TUNNEL_DNS_UPSTREAM=https://1.1.1.1/dns-query,https://1.0.0.1/dns-query
設定反映
sudo systemctl daemon-reload sudo systemctl restart cloudflared sudo systemctl status cloudflared
Cloudflare Tunnel の「Quick Tunnel」(トークンなしの一時URL)を使用して Web公開に成功したが、この URL はサービス再起動のたびに変わってしまうので、使い物にはならなかった。
トークンを取得してトンネルを固定化することで URL は固定された、長いURLを MyDNS.jp へと試みたが、無料のダイナミック DNS サービスであるため、ネームサーバー(NS レコード)を Cloudflare に変更することができなかった。
Cloudflare Tunnel の CNAME レコード(cfargotunnel.com)を有効にするには、Cloudflare がそのドメインの権威 DNS サーバーである必要がある。しかし MyDNS のサブドメイン(vafee.mydns.jp)は MyDNS が NS を管理しているため、Cloudflare の Zone は「Pending」のまま有効にならなかった。