外出先に高性能な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)は使わない方がいい
- 用途的に使われているポートは使わない方がいい
上の表に記述がない・もしくは未割り当てであれば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の場合
インストールが完了し、開いたら端っこの+からPCを追加を選択
PC名にIPアドレスとポート番号を入力します。
- IPアドレスは合っているか
- ポートは合っているか
- RDPの設定は行ったか(一番上)
- そもそも同じネットワークに接続しているか
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を取得できるようになる機能を設定しました。
詳しくは下の記事をご覧ください。
つなげなかった人
・外部のネットワークから接続しているか
追記
- 2022/11/16 セキュリティに関する記事のリンクを追加しました
- 2022/11/18 DDNSに関する記事のリンクを追加しました
- 白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81Amazon(アマゾン)高いだけあって、よく吸えます。スルーホール基板の吸い取りには必須レベルで使えます。
- 太洋電機産業(goot) 温調はんだこて PX-201 70Wハイパワー 鉛フリーはんだ対応 日本製Amazon(アマゾン)温度調整出来るタイプのハンダこてです。これさえあれば、チップ部品でもリード部品でもOK。使いやすいです。
- ENGINEER エンジニア ハンダ吸取器 SS-02Amazon(アマゾン)先端にシリコンチューブが付いており、スルーホールもめちゃ吸えます。電動吸い取り機よりも値段が安価なので是非!
- アネックス(ANEX) ピンセット ステンレス製 AAタイプ 125mm 2本組(直/先曲) ATW-S3Amazon(アマゾン)安いのに、先端の精度がそこそこ良いので、使いやすいです。チップ部品のはんだ付けなどにどうぞ。