Cloudflare Tunnelトンネルを使うとプライベートIPアドレスしか持たないような環境でも外部からアクセスが可能になります。
HTTP/HTTPSの場合は簡単で、Cloudflaredでドメインの設定(ネームサーバー等。たくさん記事があるので省略)を終えたら、Cloudflaredのダッシュボードから次を開きます。
- Access
- Tunnels
- Create a tunnel
- Tunnels
これで割り当てたドメイン名でアクセスできるようになります。
HTTPSも自動で設定されているのでとても楽です。
SSHの場合はもうひと手間必要です。
- [Connect with SSH through Cloudflare Tunnel]()
詳しくは上記の記事の「Connect to SSH server with cloudflared access」の通りですが、クライアント側にもcloudflaredを入れる必要があります。
WindowsでPuTTYを使っている場合は、次を参考にしました。
user7633
'22 年 2月Simply in putty, go to proxy settings, select local, and configure the commandline to be
cloudflared.exe access ssh --hostname %host
(no \n at the end) and save the session as normal. works for me
まずWindows用のfloudflaredをインストールします。
なぜか64bitインストーラーが起動しても進まないので、手っ取り早くインストールするならコマンドプロンプトで次のようにする。
> winget install --id Cloudflare.cloudflared
見つかりました cloudflared [Cloudflare.cloudflared] バージョン 2023.10.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/cloudflare/cloudflared/releases/download/2023.10.0/cloudflared-windows-amd64.msi
██████████████████████████████ 17.1 MB / 17.1 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
AMD64版なのになぜかインストールされたのは C:\Program Files (x86)\cloudflared\cloudflared.exe
です。
このパスを残しておきます。
PuTTYの接続画面で次の項目を設定します。
Connection
- Proxy
Proxy type: Local(run a subprogram to connect)
Command to send to proxy(for some types): "cloudflared.exeへのパス" access ssh --hostname %host`
PuTTYはホスト名だけCloudflare Tunnelで設定したものにして、他の設定はローカルで接続するのと同等でOK
公開鍵認証で接続できました。