以下是文本的日语翻译:
ここでは、2 つの機能をまとめます。1 つは SSH 接続の実現、もう 1 つは外部ネットワークからの Web サービスへのアクセスです。
-
前提条件
ここでは詳細には触れませんが、独自のドメインを持っており、それが Cloudflare でホストされている必要があります。Cloudflare にログインし、左側のメニューから「Zero Trust」を選択し、グループ名を定義し、無料プランを選択してください。 -
SSH
Zero Trust の画面で、「Access」→「Tunnels」→「Create a tunnel」をクリックします。
名前は任意です。
Docker を使用することをお勧めします。便利で管理しやすいです。
ただし、Docker のコマンドを少し変更する必要があります。
docker run -d cloudflare/cloudflared:latest tunnel --protocol auto --no-autoupdate run --token xxxxxxxxx
「docker run」の後に「-d」を追加してバックグラウンドで実行し、ターミナルサービスが停止しないようにします。「tunnel」の後に「--protocol auto」を追加します。内部ネットワークサーバーで実行した後、「docker ps」で確認できます。「--token」の後には、現在のトンネルの専用トークンが入ります。
その後、Zero Trust ページに戻り、次へをクリックするか、作成したトンネルをクリックし、パブリックホスト名→パブリックホスト名の追加をクリックします。サブドメインにはサブドメインを入力し、ドメインにはトップレベルドメインを選択し、パスは空白のままにします。タイプは SSH を選択し、URL には内部ネットワークサーバーのローカル IP アドレスと SSH ポートを入力します。最後に、「Save hostname」をクリックします。
これで、内部ネットワークサーバーとウェブクライアントの設定が完了しましたが、クライアント側でも SSH を設定する必要があります。
vim ~/.ssh/config
# 追加
Host *.xxx.xxx
ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h
上記の「xxx.xxx」はトップレベルドメインを指します。「*.」は、複数のサーバーが内部ネットワークトンネルを必要とする場合に便利です。
ここまで来たら、クライアントは定義したサブドメインを使用して内部ネットワークサーバーに SSH 接続できるはずです。
- Web サービス
前の手順と同じですが、タイプ、URL、およびポートは必要に応じて選択します。最後に SSH の設定を変更する必要はありません。