0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

独自のP2P技術でEnd-to-End暗号化。完全NAT超えでAndroidからPCに安全にRDP接続するツールを作った【デモ動画あり】

0
Last updated at Posted at 2026-05-25

はじめに

外出先から自宅のPCや会社のサーバーにリモートデスクトップ(RDP)やSSHで接続したいとき、以下のような課題に直面したことはありませんか?

  • ルーターのポート開放や固定IPの設定が面倒、またはセキュリティ的にやりたくない
  • マンションの共同回線やキャリア回線(4G/5G)など、ネットワーク環境の都合でNAT超えが難しい
  • 各種VPNサービスはユーザー登録や初期設定の手間がかかる

これらの課題をすべて解決するために、ユーザー登録不要・完全無料で使えるP2P通信環境構築ツール 「トンネルアプリ」 を開発・リリースしました!

この記事では、実際のデモ動画を交えながら、AndroidスマホからWindows PCへ「完全NAT超え」で簡単・安全にリモートデスクトップ接続する手順を紹介します。


トンネルアプリとは?(3つの大きな特徴)

「トンネルアプリ」は、スマホやPCなどの端末間に、安全なプライベートトンネルを簡単に構築するアプリです。異なるネットワークにあるアプリ同士であっても、まるで同じローカルネットワークにいるかのようなデータ通信を可能にします。

公式ページ:トンネルアプリ - P2Pで簡単プライベートアクセス!

主な特徴は以下の3つです。

1. ユーザー登録不要・完全無料

利用にあたってメールアドレスや個人情報の登録は一切不要です。アプリをインストールして規約に同意すれば、すぐに無償で利用できます。

2. QRコードを撮るだけの圧倒的な手軽さ

PC側で発行されたQRコードをスマホのカメラで撮影するだけで、端末間のトンネル環境のセットアップが完了します。

3. P2P基盤によるEnd-to-End暗号化

端末間の通信データは、独自のP2P技術によりEnd-to-Endで暗号化されます。通信データがクラウドに保存されたり、第三者に覗かれたりする心配はありません。

採用しているセキュリティ技術

「トンネルアプリ」におけるデータ通信は、公開鍵暗号方式(ECDHE)やHMACベース鍵導出関数(HKDF)、認証付き暗号方式(AEAD)といった暗号技術を採用し、TLSv1.3相当のセキュリティを担保しています。


トンネルアプリを使ったRDP接続手順

設定は非常にシンプルです。実際の操作の流れは、以下のデモ動画(約30秒)からも確認できます。

実際の動作デモ動画はこちら(YouTube Shorts)


アクセス環境の概要

トンネルアプリは、2つの端末にインストールして使用し、一方のアプリでクライアントアプリからのアクセスを代理ポートで受け付け、一方のアプリでサーバーアプリへのアクセスを行います。
20240223_01_android-windows-rdp_image01.png

ステップ1:Windows PC側(接続先)のセットアップ

Windows PCでは、リモートデスクトップ環境を有効にした上で「トンネルアプリ(Windows版)」をインスールして起動します。 すると、以下のコマンドプロンプトとブラウザ画面が表示されます。なお、これでWindows PC側の設定は完了で、この例では、トンネルアプリの端末の番号が「000001」となっています。
20240223_01_android-windows-rdp_image02_ja.png

💡 ポイント
面倒なルーターのポート開放や、固定IP、VPNの設定は一切不要です。起動するだけで完全NAT超えの通信環境が整います。

Windows版トンネルアプリについて、Microsoft Storeからダウンロードできます(推奨)。信頼されたアプリとしてインストールされますので、以下に示す警告メッセージは表示されません。

警告
ZIPファイルをダウンロードしてアプリを起動した時に「WindowsによってPCが保護されました。」のメッセージが表示された場合は、初回のみ「詳細情報」を押下してから実行してください。「このファイルを開きますか?」のメッセージが表示された場合は、「開く」を押下してください。
windows_error_screen_ja.png

ステップ2:Androidスマホ側(接続元)のセットアップ

Android側スマホにも「トンネルアプリ(Android版)」をインストールして起動します。 この例では、トンネルアプリの端末の番号が「000002」となっています。
20240223_01_android-windows-rdp_image03_ja.png

先ほどインストールしたWindows PC側のトンネルアプリのQRコードを表示し、Android側スマホのQRコードリーダーでそれを読み取ります。
20240223_01_android-windows-rdp_image04_ja.png

すると、Windows PC側のトンネルアプリがサーバー側端末として登録されます。
20240223_01_android-windows-rdp_image05_ja.png

続いて、トンネル通信設定を登録します。
「クライアント側端末」では、「端末内のアプリのみ」を選択して「127.0.0.1(ローカルホスト)」からのアクセスに制限し、
リモートデスクトップクライアントからアクセスを受け付けるための代理ポートとして「23389」を設定します。
「サーバー側端末」には、Windows PC側のトンネルアプリ「000001」を選択し、リモートデスクトップ環境へアクセスするIPアドレスとポートとして「127.0.0.1」と「3389」を設定して保存します。
20240223_01_android-windows-rdp_image06_ja.png

20240223_01_android-windows-rdp_image07_ja.png

これで、スマホとPCの間にEnd-to-Endで暗号化された安全なP2Pプライベートトンネルが開通します。

💡 ポイント
この例では、リモートデスクトップ先のPCにトンネルアプリをインストールするので、サーバーアプリのIPアドレスは、ローカルホストになりますが、このPCを踏み台端末として使用し、別PCのIPアドレスを設定することもできます。踏み台端末としては、トンネルアプリのインストールができればWindows以外のAndroidやLinuxでも可能です。

💡 ポイント
トンネル通信は、TCP/UDPプロトコルのレイヤーで中継しますので、RDPだけでなくSSHやHTTP/HTTPSなどの各アプリケーションプロトコルにも対応可能です。

ステップ3:リモートデスクトップクライアントのセットアップ・接続

リモートデスクトップクライアントは、「Microsoft Windows App」をインストールします。

メニューから「PCを追加」を選択し、「PC名」には同じ端末内のトンネルアプリの代理ポートへアクセスするため「127.0.0.1:23389」を設定します。 「ユーザーアカウント」には、Windows PCにリモートデスクトップでログインする時のアカウントとパスワードを設定して保存します。

20240223_01_android-windows-rdp_image08_ja.png

20240223_01_android-windows-rdp_image09_ja.png

20240223_01_android-windows-rdp_image10_ja.png

登録されたPCを選択すると、リモートデスクトップのアクセスが開始されログインができました!
20240223_01_android-windows-rdp_image11.png

技術的な裏話:なぜ完全NAT超え&安全な通信ができるのか?

「トンネルアプリ」の開発にあたり、特にこだわった技術的なポイントを2つ紹介します。

1. P2P穴あけとアーキテクチャーの工夫

一般的なVPNや中継サービスとは異なり、本アプリは端末側でデータ通信を担う「プロキシーサーバー層」と、それらを繋ぐ「中継サーバー層」の2層構成をとっています。
トンネルアプリのアーキテクチャー
これにより、キャリア回線や厳密なファイアウォール内にある端末同士であっても、ポート開放なしでP2P穴あけを実現しています。通信のオーバーヘッドを極限まで削ることで、リモートデスクトップの操作でもストレスを抑える低遅延なデータ送信を可能にしました。
トンネルアプリのパフォーマンス

2. 暗号化キーの安全な生成プロセス

プロキシーサーバーと中継サーバー間の接続には、必ず 公開鍵暗号方式(ECDHE) を使用し、通信の暗号化に使用するキーは、ECDHEで共有したシークレットキーをベースに、 HMACベース鍵導出関数(HKDF) を用いて都度動的に生成しています。さらに、各端末間のデータ通信においても、中継サーバーを介した公開鍵交換とHKDFによって都度動的な暗号キー生成を行うとともに、認証付き暗号方式(AEAD) を使用することでEnd-to-Endでの暗号化を実現し、より安全なセキュリティを担保するようにしました。
トンネルアプリのセキュリティ
中継サーバーを運用している当方を含め、第三者が通信内容を復号して閲覧することは理論上不可能です。

おわりに(まとめ)

「外出先から自宅や会社の環境に、もっと手軽に、安全にアクセスしたい」という思いからこのトンネルアプリを開発しました。

今回はAndroidからWindowsへのリモートデスクトップ接続を紹介しましたが、本アプリは、Javaベースなので、Linuxにも対応しています(Windows/Linux版にはJREバンドル済み)。また、JREバンドル無し版アプリと別途JREをインストールしていただければMacでも稼働します。なお、本アプリでの同時接続は最大5件まで可能となっています。
公式ページ:トンネルアプリ - P2Pで簡単プライベートアクセス!

ユーザー登録不要・完全無料で今すぐお試しいただけますので、ぜひ触ってみていただけると嬉しいです!
もし「ここが使いやすかった」「こんな機能が欲しい」といったご意見やフィードバックがあれば、コメント欄やお問い合わせからお気軽にお寄せください。

最後までお読みいただき、ありがとうございました!

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?