Help us understand the problem. What is going on with this article?

続・インバウンドポートを全閉したAWSのサーバに接続する方法 〜P2P編〜

More than 1 year has passed since last update.

はじめに

この記事はremote.itについて私が書いた以下の内容の続編です。是非事前にご覧ください。

これは魔法か?! インバウンドポートを全閉したAWSのサーバに接続する方法

なぜP2Pか?

先の記事の最後に「実は、今回紹介した接続方法は、remote.itがクラウドにホストしているサーバ経由で接続しています。」と書きました。この記事に対して多くの好意的な反響をいただいた反面、remote.itがホストしているサーバを介して接続されることによる不安やリスクについてのコメントも寄せられました。
そこで今回は接続がremote.itのサーバを経由しない、P2P接続の方法をご紹介します。

remote.itのクライアントアプリケーションのインストール

今回は一番最新のMacOS用ベータアプリを使います。 ※2019.8.23編集:Windows版も公開されました。
まず、下記のremote.itのドキュメントサイトから、ソフトウェアをダウンロードします。

Using the Desktop App (Beta)

dmgファイルを展開し、アプリケーションをインストールして実行します。
(Windows版はexeファイルを実行してインストールします。)
スクリーンショット 2019-07-29 21.23.54.png

アプリケーションを実行すると、初回は必要なコマンドラインツールのインストール画面が表示されます。
「INSTALL NOW」をクリックします。
スクリーンショット 2019-09-09 14.34.08.png

続けてサインイン画面が表示されるので、remote.itアカウントでサインインします。(サインイン画面が表示されない場合は、タスクトレイのアイコンをクリックします。)

スクリーンショット 2019-07-29 21.25.22.png

P2P接続の実行

アプリケーションにサインインすると、アカウントに対して登録されているデバイスのリスト(Webポータルと同じもの)が表示されます。
前回登録した「test-ubuntu18-web」がありますね。
スクリーンショット 2019-07-29 21.26.05.png

デバイス名の右側のアイコンをクリックすると、登録されているサービス(アプリケーション)が展開されます。
スクリーンショット 2019-07-29 21.26.17.png

接続したいサービスをクリックします。接続に成功するとアイコンが水色のドーナツ型のものに変わります。
また、このサービスへの接続がlocalhostのポート33002で開始したことが分かります。
スクリーンショット 2019-07-30 9.03.42.png

もう一つのサービスにも接続しました。こちらはlocalhostのポート33000で開始しました。
スクリーンショット 2019-07-30 9.03.53.png

実際にローカルホスト(127.0.0.1)でLISTENしているポートを確認してみます。

$ netstat -an |grep 127.0.0.1 |grep LISTEN

確かに3300033002でそれぞれ待ち受けているようです。
スクリーンショット 2019-07-30 9.06.10.png

アプリケーションからP2P接続を使ってアクセスする

それでは実際にアプリケーションから接続します。
今回、localhost:33000はubuntuサーバのsshサービスでしたので、ターミナルからsshコマンドでlocalhost:33000に対して接続してみます。
スクリーンショット 2019-07-30 9.07.37.png

無事接続できました。よく見ると接続元が127.0.0.1になっていることが分かります。
スクリーンショット 2019-07-30 9.07.53.png

同様に、localhost:33002はubuntuサーバのWebサービスですので、ブラウザからlocalhost:33002に対してアクセスするとubuntuサーバのWebコンテンツ(今回はapacheのデフォルトページ)が表示されました。
スクリーンショット 2019-08-20 15.21.01.png

まとめ

接続元側にもremote.itのクライアントを用意することで、自分のアカウントに登録されている接続先デバイスに対して簡単にP2P接続を行うことができます。
今回はAWS上のHTTPとSSHの例を紹介しましたが、一般的なTCP/IPの作法に則ったアプリ(IPアドレスとポート番号で会話できるアプリ)であれば、プロトコルやターゲットのロケーション(回線の種別)は問いません。VPNのようにインターネットをプライベートなネットワークとして使える一方で、VPNのようにインターネットに対して入り口を用意する必要がありません。

前回の記事ではさも魔法かのように書きましたが、実際はもちろんカラクリがありremote.itはいわゆるNAT越えを実現するサービスです。そのため、双方のネットワーク環境によっては今回紹介したP2P接続が成功しない可能性があることにご注意ください。

tkhmhiroc
1978年産。17年働いた某F系SIerを辞め、USのスタートアップにジョイン。コーダーになりたかったセキュリティSE。シャレオツなアイテムが大好物。CISSP、WSDホルダー。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした