🌐

Cloudflare Tunnel を利用してローカルホストを一時的に公開する

に公開

この記事は備忘録です

  1. Cloudflare Tunnel をインストールする

この部分は省略

  1. Cloudflare Tunnel にログインする
cloudflared tunnel login

ログインが成功すると、認証情報が ~/.cloudflared/cert.pem に保存されます

  1. トンネルを作成する
cloudflared tunnel create <TUNNEL_NAME>

これを実行すると、トンネルのUUIDが生成され、対応するJSONファイルが ~/.cloudflared/ に保存されます

  1. ドメインの DNS に CNAME レコードを追加する
cloudflared tunnel route dns <TUNNEL_NAME> <YOUR_DOMAIN>
  1. 設定ファイルの作成
touch ~/.cloudflared/config.yml
tunnel: <TUNNEL_UUID>
credentials-file: /root/.cloudflared/<TUNNEL_UUID>.json
ingress:
  - hostname: <YOUR_DOMAIN>
    service: http://localhost:80
  - service: http_status:404

hostname には先ほど設定したドメインを、service にはローカルで公開したいサービスのアドレスとポートを指定します

ここで私的のポイント ~/.zshrc に次のコードを追加します

# Cloudflare Tunnel
alias tunnel="_tunnel"
function _tunnel()
{
    if [ -z "$1" ]; then
        echo "Please provide a port number (80 or 3000)."
        return 1
    fi

    case $1 in
        80)
            cloudflared tunnel --config ~/.cloudflared/config_80.yml run MacBook-Pro
            ;;
        3000)
            cloudflared tunnel --config ~/.cloudflared/config_3000.yml run MacBook-Pro
            ;;
        *)
            echo "Invalid port number. Only 80 and 3000 are allowed."
            return 1
            ;;
    esac
}

またこれに応じて、~/.cloudflared/config_80.yml~/.cloudflared/config_3000.yml を作成します

  1. トンネルを起動する
tunnel 80

これで、https://<YOUR_DOMAIN> にアクセスすると、ローカルホストが一時的に公開されます