🌐

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> にアクセスすると、ローカルホストが一時的に公開されます

コメントを表示する