2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Tunnel 経由で自宅の PC にリモートデスクトップ接続する(RDP)

Posted at

Cloudflare Tunnel により、rdp.example.com などの Cloudflare に登録済みのドメインを通じてトンネルして自宅の PC にリモートデスクトップ接続できるようにするのがゴール。

https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/rdp/#connect-to-rdp-server-with-cloudflared-access
に書かれている手順を実施すればOK

サーバー側の設定

トンネル作成

SnapCrab_NoName_2024-9-7_16-49-56_No-00.png

Create a tunnel より適当な名前でトンネルを作ればよい。

Cloudflared インストール

SnapCrab_NoName_2024-9-7_18-57-30_No-00.png

コマンドプロンプトを管理者権限で実行し、赤枠のコマンドをペーストして実行する事でインストールできる。
次回から自動起動するサービスとしてインストールされる。

cloudflared tunnel login

を実行して一度ログインしておく事で、証明書が作成される。

ちなみにサーバー側は

cloudflared tunnel --hostname rdp.example.com --url rdp://localhost:3389

のようなコマンドを手動で実行する必要はなく、上記のインストールを行うだけでよい。

Public hostname

SnapCrab_NoName_2024-9-7_19-12-57_No-00.png

Add a public hostname より、Public Hostname の設定を追加する。

SnapCrab_NoName_2024-9-7_19-16-53_No-00.png

RDP と localhost:3389 の部分は、今回はローカルの RDP に接続するのでこうしているが、ssh やリバプロなどやりたい事が別であるのであればそれにあわせる事。

Private Network

Public Hostname タブの右横に設定があるが、今回やりたい事では設定が不要。

Split Tunnels

デフォルトでは、Manage Split Tunnels によりプライベートIPが WARP から除去されているので、WARP を経由するよう設定する手順が書かれている記事があるが、今回やりたい事では設定が不要。

SSL/TLS

SnapCrab_NoName_2024-9-7_19-36-45_No-00.png

上記の設定画面で、フレキシブルやフルを選択すること(どちらでもよい)。
「オフ (保護なし)」では「websocket: bad handshake」が発生する

WebSocket

SnapCrab_NoName_2024-9-7_19-40-37_No-00.png

大前提として、WebSocket を有効化しておかないと動作しない。

WAF

その他 WAF などで接続元の ASN をブロックしてしまったりしていないよう確認する事。

クライアント側の設定

Cloudflared インストール

サーバー側と同じ手順で Cloudflared をインストールする事。

トンネリング

残念ながら、rdp.example.com は 80(HTTP), 443(HTTPS) でしか動作しない。
RDP に rdp.example.com や rdp.example.com:3389 を登録して接続できれば便利だが、それはできない。
RDP は TCP の 3389 で接続する必要があるため、クライアント側でも cloudflared による TCP(RDP) のトンネリングが必要になる。

cloudflared access rdp --hostname rdp.example.com --url rdp://localhost:9833

これによりクライアントの localhost:9833 -> rdp.example.com -> サーバー側の 3389 ポートに接続できるようになる。
クライアント側の RDP には localhost:9833 を登録すればよい。
9833 ポートが他のプログラムに利用されている場合、変更する事。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?