外出先に高性能なPCを持っていくのは面倒だなぁ。

と思い外出先からリモートデスクトップを使えるようにしたいと思います。

 

注意:

リモートデスクトップはPCをコントロールできるため、外部からアクセスできるようにすることは非常に危険です。

この記事では対策をとった上で行っていますが、不正アクセスされないような対策をとった上で行ってください。

またポート開放はセキュリティ低下を引き起こします。

自己責任で行ってください。

 

ちなみにリモートデスクトップを利用して配信する方を ホスト

配信を受け取る方はクライアントと呼ばれるそうです。

 

 

 

今回使用するOSは Windows10 Pro 21H1です。

また今回はIPv4を使用しています。

IPv6については解説していません。

 

 

なおリモートデスクトップを使用できる(ホストとしての)エディションは

Windows 10 Pro / Enterprise / Education のみです。

 

Windows10 Homeではリモートデスクトップは利用できません。

 

クライアントととして利用する場合は

Windows10 Homeも使用できます。(もちろん Proなども対象)

またAndroidも使用できます。

iOSも使用できるそうですが、持っていないので検証できません。

(サードパーティー製のソフトを使えばChrome bookとかでもできると思います

でもChrome bookはandroidアプリが使えるのでいらないような気も...)


なおここからはリモートデスクトップの事を RDP と略します。

 

 

 

 

 

 

  RDPを使えるようにする

RDPを使ったことがあれば、この作業は不要です。

 

Winキー + R で "ファイル名を指定して実行"を開き

"C:\WINDOWS\System32\control.exe system"と入力。OKを押します

 

関連項目にあるシステムの詳細設定を押します。

 

システムのプロパティが開くので、リモートをクリックし、

このコンピューターへのリモート接続を許可するにします。

またネットワークレベル認証での...のチェックは外します。

最後にOKを押せば、設定完了です。

 

 

  使用するポートを選ぶ

RDPの初期ポートは3389が使用されています。

しかし、初期ポートである3389でポート開放してしまうと、不正アクセスの温床になってしまいます。そこでRDPで使用するポートを変更します。

(ただ、この対策でも不確実です。そのあたりは下の方で対策をしています)

 

まず使用したいポートを選びます。

 

とりあえず使われていないポートを使った方がよいと思います。

 

またポートの条件として

  • システムポート(0~1023)は使わない方がいい
  • 用途的に使われているポートは使わない方がいい
システムポートは使っても大丈夫かもしれませんが、ほとんど埋まっているので、使わない方が良いと思います。
また他の用途で使われているポートもいろいろ問題がありそうなので、個人的に使っていません。
 
 
まあ適当に10000~60000くらいでポート番号を出します。
ちなみにポート番号の最大は65535です。
そこで、まずPCで使っているポートを検索します。
 
管理者権限のコマンドプロンプトで
>netstat -a >c:\users\[ユーザー名]\desktop\netstat.txt
と入力します。([ユーザー名]は打ち替えてください)
 
しばらく待つとデスクトップのnetstat.txtに結果が出力されます。
 
次にメモ帳(などのテキストエディタ)の検索機能で、使いたいポートを入力・検索します。
見つからなければそのポートは使用できます。
 
 
ただ、これだけでは不正確です。
もしかすると他の用途で使っているかもしれないので、念のためwikipediaで検索します。

 

 

上の表に記述がない・もしくは未割り当てであればOKです。(多分)

 

また非公式であまり、有名ではなければ使ってもいいかもしれません。

(ただ、未使用のポートはたくさんあるので別のポートを使った方が良い気もしますが)

 

ここで選んだポート番号は紙に書き記すなど覚えておいてください。

 

 

 

 

 

 

 

  ファイアウォールの設定

とりあえずまず、ファイアウォールの設定をします。

 

まずはWindows ファイアウォールを開きます。

 

Winキー + R で"ファイル名を指名して実行"を開きます。

 

そこに "firewall.cpl" と入力。実行します。

 

次に横にある詳細設定をクリックします。

 

 

"受信の規則"をクリック その後"新しい規則..."をクリック

 

 

ポートを選択します。

 

 

先ほど選んだポート番号を入力します。

 

 

接続を許可するをクリック

 

 

ここはお好みでどうぞ。

個人利用であればプライベートのみでOKかもしれません。

 

 

最後に分かりやすい名前をつけて設定終了です。

(例:RDP・RemoteDesktop・RemoteDesktopProtocol等)

 

 

受信の規則は追加する必要がありますが、送信の規則は追加する必要がありません。

ただ、通信できなかったら追加してみるといいかもしれません。

 

 

(送信の規則は禁止する規則以外はすべて送信許可されるようになっています。

そのため追加する必要はないはずです

)

 

 

 

 

 

 

  RDPのポート設定を変える

RDPのポートは3389を使用しています。

このポートを変更します。

 

注意:この作業はレジストリを操作します。

謝ったデータを書き換えたり削除したりするとWindowsが起動しなくなったり、動作がおかしくなる可能性があります。注意して作業するようにしてください。

 

 

まずレジストリエディタを開きます。

 

Win + Rで"プログラムを指定して実行"を開きます。

名前に "regedit" と入力。 OKを押します。

 

 

レジストリエディタが開いたら次のパスにアクセスします。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

 

そこからPortNumberを探し、ダブルクリックします。

 

"d3d"が現在のポート番号です。 (16進数なので10進数で3389)

 

この値を変更します。

おそらくほとんどの人は10進数の方が分かりやすいと思うので、10進数を選択して打ち込みます。打ち込む値は先ほど選んだポートを入れてください。(ファイアウォールで設定した値)

これでRDPのポート設定が変更されました。

 

 

 

 

 

  プライベートIPで接続できるか確かめる

プライベートIPで接続できなければ、グローバルIPでの接続は無理と考えた方が良いので、ここで一旦確かめます。

 

今回は

  • Windowsの場合
  • Androidの場合
を書きます。iOSは持っていないですが、操作はAndroidとほぼ同じだと思います。
 
まずはRDPに接続される方(ホスト)のPCのプライベートIPアドレスを調べます。
Windows + R で"ファイル名を指定して実行"を開き
cmdと入力。OKを押します。
 
青い線を引いているところがIPアドレスになります。
例: 192.168.1.3など
(緑色で隠れているところ)
この値で接続します。 どこかに書き記してください。
 
 
ここからはクライアント(接続する方)の操作になります。
・Windowsの場合
まずスタートボタンを押し、
Windowsアクセサリ -> リモートデスクトップ接続 を開きます。
 
IPアドレスと先ほど設定したポートを入力します。
(例:
IPアドレス: 192.168.1.3
ポート番号: 65532
だとしたら 192.168.1.3:65532 と入力する
)
 
接続ボタンを押して、ユーザー名とパスワードを入れてデスクトップ画面が表示されればOKです。
 
 
・Androidの場合
Microsoft公式のRDPソフトを使用します。
playストアからインストールできます。

 

インストールが完了し、開いたら端っこの+からPCを追加を選択

PC名にIPアドレスとポート番号を入力します。

(例:
IPアドレス: 192.168.1.3
ポート番号: 65532
だとしたら 192.168.1.3:65532 と入力する
)
 
後は特に設定せずに追加を押します。
追加すると、先ほどの入力したPC名で増えているので、それをタップし、接続します。
接続できたらOKです。
 
 
・接続できない場合
  • IPアドレスは合っているか
  • ポートは合っているか
  • RDPの設定は行ったか(一番上)
  • そもそも同じネットワークに接続しているか
などだと思います。
例えばスマホから接続している人だと
Wi-Fiに接続しないと同じネットワークには接続できません。

 

 

  PCのMACアドレスを調べる

今回使用するNICはEthernet用を使用します。

ただ、Wi-Fiでも可能です。

 

Win + R で”ファイル名を指定して実行”を開きます。

そこで control と入力 OKを押します。

 

"ネットワークとインターネット"を開きます

 

"ネットワークと共有センター"を開きます

 

横にある"アダプターの設定の変更"を押します

 

RDPで接続したいNICを開きます。(今回はイーサネット)

 

"詳細"を開きます。

 

本当はいろいろ出てきますが、今回は消してあります。

物理アドレスがMACアドレスです。この値をどこかに記録してください。

(緑で隠れているところを記録します)

 

これでMACアドレスは取得できました。

 

 

 

 

 

 

 

 

  ルーターのポート開放

この欄についてはルーターによって若干操作方法が変わります。

 

今回は、NTTのONU一体型ルーター PR-200NEを使用しています。

基本的に PR-200NEを基準にして書きます。

 

 

まずはルーターの設定画面に入ります。

 

NTTルーターは 192.168.1.1 (希に192.168.100.1)

バッファローは 192.168.11.1

 

など分かれているのでそれぞれのルーターで検索してください。

 

 

まずは静的IPマスカレード設定をします。

静的IPマスカレード設定とはグローバルIPとプライベートIPを結びつけてくれる機能の事です。

もうちょっと簡単に言うと外部のネットワークと内部のネットワークの道しるべみたいな物を設定してあげます。

 

詳細設定 -> 静的IPマスカレード設定

を開きます。

 

 

 

その後、登録されていないエントリを編集します。

 

 

プロトコルはTCP

変換対象ポートは先ほど覚えたポート番号(緑色のところ)

宛先アドレスは先ほどのMACアドレスを入力します。(オレンジのところ)

MACアドレスは 12:34:56:78:9a:bc みたいな感じで入力します。

Windowsだと 12-34-56… みたいな感じですが 12:34:56…に置き換えます。

(要は ハイフンをコロンに変更する)

 

最後に設定ボタンを忘れずに

 

設定したエントリ番号にチェックを入れ、下にある設定ボタンをクリックします。

 

 

最後に保存ボタンがオレンジ色になるのでクリックし、保存すれば終了です。

 

 

 

 

次にパケットフィルタ設定をします。

やらなくても通信できるようですが、一応やっておきます。

 

パケットフィルタ設定とはいわゆる簡易的なファイアウォールみたいな物らしいです。(これについてはよくわかりません。おそらくブラックリスト方式なのかなと思いますが)

多分設定しなくても動きます。(私の環境では動作しました)

 

ただ設定しておいた方が確実なので、今回は設定しておきます。

 

詳細設定 -> パケットフィルタ設定を開きます。

登録されていないエントリを編集します。

 

フィルタ種別は通過

送信元IPアドレスは*(アスタリスク 全てという意味)

宛先IPアドレスは*

プロトコル種別はTCP

送信元ポートと宛先ポートは先ほど使ったポート

方向は両方向

にします。

送信元IPアドレスはちょっと特定できないので、今回は*にしています。

宛先IPはわかるような気がするのですが、めんどくさいので*にしています。

セキュリティレベルをあげるのであればちゃんと打ってあげましょう。

 

 

最後に下の設定をクリックします。

 

 

最後にエントリにチェックをつけて下にある設定をクリックします

 

 

最後に保存を押して終了です。

 

 

これでルーターのポート開放は終了です。

 

 

 

 

 

 

 

 

 

  つなげてみよう!

これで設定は全て終了です。

試しにつなげてみましょう。

 

まずはホストのグローバルIPを取得します。

取得方法はいろいろありますが、今回はネット上のサービスを利用します。

上のサイトからグローバルIPを取得できます。

 

注意:グローバルIPはルーターの再起動などで変わる事があります。

 

ただ、固定グローバルIPアドレスを取得している場合は上の通りではありません。

 

この点に注意して作業すると、いろいろ楽かもしれません。

 

 

では早速接続してみましょう。

ここからは外部からつなげないと意味がありません。

スマホなどから接続する場合はWi-Fiを切ってモバイルデータ通信にしておいたり、どっかのWi-Fiスポットに行ったりして外部のネットワークから接続できるようにしておきます。

 

ただ、Wi-Fiスポットは接続が拒否される可能性があります。

(パケットフィルタによって拒否されるかもしれません。詳しくはやってないのでわかりません)

 

 

私はモバイルデータ通信で行いました。

 

やり方は先ほどテストでつなげた方法と同じです。

ただし、IPアドレスはグローバルIPとなります。

 

例: IP:482.182.309.293

ポート 65532

だったら PC名は482.182.309.293:65532

となります。

(ツッコミが来そうなので書いておきますが、上のIPアドレスはあり得ないです)

 

 

接続できたら完了です。

長かったですがお疲れ様でした!

 

 

下の記事でちょっとだけセキュリティを上げています。
是非ご覧ください

 

 

今、現状だとグローバルIPを自分で入力しなければいけませんが、DDNSを取得することにより、URLみたいな感じでIPを取得できるようになる機能を設定しました。

詳しくは下の記事をご覧ください。

 

 

 

つなげなかった人

 

・外部のネットワークから接続しているか

グローバルIPを使用して内部のネットワークからは接続できません。
 
・グローバルIP・ポート番号は合っているか
一文字でも間違っていると接続できません。合っているか確認しましょう。
 
・この記事の上から行ったか
一カ所でも抜かすと接続できません。
 
これ以外にも原因があるかもしれません。
 

 

 
 
 
文字数が6000文字以上… 長文失礼しました。
 
 

 

  追記

  • 2022/11/16 セキュリティに関する記事のリンクを追加しました
  • 2022/11/18 DDNSに関する記事のリンクを追加しました

 

Yukiのプロフィール
使いやすかったもの
Yuki