外出先から自宅のPCへリモート接続する方法

## はじめに

外出先から自宅にあるPCへ接続して操作したかったのでそのやり方を紹介していきます。
今回はリモート接続する手段を2つ紹介します。

PCがリモート接続の許可がされている前提で進めます。

https://docs.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/clients/remote-desktop-allow-access

## 共通準備

環境は以下のとおりです。

ホストPC：Windows 10
クライアントPC：macOS Big Sur
ルータ：ASUS RT-AX3000
アプリ：Microsoft Remote Desktop

図1のような環境を想定しています。

![RD1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/afcd642c-0279-7fd8-4246-77bb84ae86f6.png)
図1

### ホストPCのIPアドレスを固定

通常はPCのIPアドレスは自動的に割り当てられます。

リモート接続する際はホストPCのIPアドレスを指定するので、IPアドレスが変わってしまうとそのたびに確認しなくてはならないので困ります。そのため、ホストPCに固定のIPアドレスを割り当てます。

今回はルータの設定画面から固定IPアドレスを割り振ります。

![RD2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/e4544b00-641b-eb5a-5480-88bae580f7ea.png)
図2

1. 192.168.1.1（192.168.50.1）をブラウザのアドレスバーに入力しEnterを押します
（ASUSは製品によってIPアドレスが異なります。）
2. 詳細設定の「LAN」＞「DHCPサーバー」をクリック
3. 固定割当設定を有効にします（図2）
4. クライアント名とIPアドレスを入力し ⊕ をクリック
5. ページ下部にある「適用」をクリック

ここまで設定できたらPCを起動して入力したIPアドレスが割り当てられているか確認します。
設定かコマンドプロンプトから確認することができます。

補足として、IPアドレスは192.168.1.2~192.168.1.254の範囲の中から選びましょう。今回は192.168.1.100で設定します。

### DDNS

PCにIPアドレスが割り当てられているようにルータにもIPアドレスが割り当てられています。ルータは2つ以上の異なるネットワーク間の中継を行う通信機器です。そのためルータは2つ以上のIPアドレスを持っています。

私の環境では自宅のネットワーク（LAN側）と自宅の外のネットワーク（WAN側）の2つのIPアドレスがあります。LAN側のIPアドレスは192.168.1.1（192.168.50.1）が割り当てられ、WAN側のIPアドレスは契約しているプロバイダが割り当てます。

WAN側のIPアドレスはIPアドレスを効率的に運用するため別のIPアドレスに変わることがあります。これではリモート接続が困難なので、WAN側IPアドレスとドメインを動的に紐付けしてくれるDDNSを利用します。

![RD3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/ce85e844-7ba0-a5a9-a76d-61e3cf6e73b3.png)
図3

1. ルータの設定画面から「WAN」＞「DDNS」をクリック
2. DDNS クライアントを有効にします（図3）
3. ホスト名を入力します（今回は「test」にします）
4. 「適用」をクリック

これでDDNSの設定は完了です。

## ①ルータでポートフォワーディングを設定して接続

まず1つ目のポートフォワーディングを使ってリモート接続する方法を紹介します。

通常は外部から自宅のPCへの接続はできません。しかし、ポートフォワーディングを設定することによってLAN側の機器に接続することができます。

![RD4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/ff75d208-ac46-1835-beff-98250735cca9.png)
図4
![RD5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/87a6d182-12f8-f62b-73a2-75a16e679074.png)
図5

1. ルータの設定画面から「WAN」＞「ポートフォワーディング」をクリック
2. ポートフォワーディングを有効にし、「プロファイルを追加」をクリック（図4）
3. 外部ポートを3389、内部IPアドレスをホストPC（192.168.1.100）に設定（図5）
4. 「OK」をクリック

これでポートフォワーディングの設定は完了です。

次にMicrosoft Remote Desktopを使って接続します。

![RD6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/5eab7837-c102-85b1-55b4-23575959817f.png)
図6

1. Microsoft Remote Desktopを起動
2. 「PCs」を選択肢、「+」から「Add PC」をクリック（図6）
3. 「PC name」に DDNSで設定したドメイン（test.asuscomm.com）を入力し「add」をクリック
4. 追加されたものをダブルクリックし、UsernameとPasswordを入力して接続

これで外出先から自宅PCに接続できます。

## ②VPNを利用して接続（推奨）

①の方法ではセキュリティに不安があります。インターネットは常に通信の傍受や不正アクセス、ウイルス感染のリスクあります。そのリスクを大幅に減らすことができるのがVPNです。

今回はアプリやソフトのインストールがいらないIPSec VPNを使います。

![RD7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/5c16e48b-0fc6-9795-4547-d118f7a7bb28.png)
図7

1. ルータの設定画面から「VPN」＞「VPNサーバー」＞「IPSec VPN」をクリック
2. IPSec VPN サーバーを有効にします
3. 「事前共通鍵」に任意の文字列を入力します
4. ユーザー名とパスワードを入力し、⊕をクリック（図7）
5. 「適用」をクリック

事前共通鍵とパスワードはなるべく複雑なものにしましょう。

VPNサーバーの設定が完了したらクライアントPC側の設定をします。

![RD8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/0c14c99b-c94b-834f-f38b-0b3282cd4dc0.png)
図8
![RD9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156166/41dc769a-14e7-d280-b0ee-cf072c697c4b.png)
図9

1. 「システム環境設定」の「ネットワーク」を開きます
2. 左下の「＋」をクリック
3. 「インターフェース」をVPN、「VPNタイプ」をCisco IPSec、「サービス名」をVPN（Cisco IPSec）にし、作成（図8）
4. 「サーバアドレス」にDDNSで設定したドメイン（test.asuscomm.com）を入力（図9）
5. 「アカウント名」と「パスワード」はVPNで設定したユーザー名とパスワードを入力
6. 「認証設定」をクリック
7. 「共有シークレット」にVPNで設定した事前共通鍵を入力し「OK」をクリック
8. 「適用」をクリックして「接続」をクリック

これでVPN接続は完了です。

次にMicrosoft Remote Desktopを使って接続します。

1. Microsoft Remote Desktopを起動
2. 「PCs」を選択肢、「+」から「Add PC」をクリック
3. 「PC name」に ホストPCのIPアドレス（192.168.1.100）を入力し「add」をクリック
4. 追加されたものをダブルクリックし、UsernameとPasswordを入力して接続

これで外出先から自宅PCに接続できます。

接続はできましたがVPN接続でもセキュリティが完璧ではないのでリモートデスクトップのリッスンポートを変更します。

1. ホストPCで「レジストリエディター」を起動します
2. HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp まで展開します
3. 「PortNumber」をダブルクリック
4. 表記を「10進数」に変更し、変更したいポート番号（今回は50000）を入力して「OK」をクリック
5. パソコンを再起動
6. 「設定」＞「システム」＞「リモートデスクトップ」＞「詳細設定」をクリックし、現在のリモートデスクトップのリッスンポートが50000になっているか確認

次に変更したポート番号に接続を許可するためにファイアウォールの設定をします。

1. 「セキュリティが強化されたWindows Defender ファイアウォール」を起動
2. 「受信の規則」をクリックし、「新しい規則」をクリック
3. 「ポート」を選択して「次へ」をクリック
4. 「TCP」を選択、「特定のローカルポート」を選択し変更したポート番号（50000）を入力して「次へ」をクリック
5. 「接続を許可する」を選択して「次へ」をクリック
6. 「プライベート」を選択して「次へ」をクリック
7. 「名前」と「説明」をわかりやすくつけて「完了」をクリック

これで完了です。

ポート番号を変更した状態でリモート接続する際は、Microsoft Remote Desktopの「PC name」にはホストPCのIPアドレスの後にコロンとポート番号を入力します。（192.168.1.100:50000）

この方法がセキュリティ面を意識したリモート接続になります。

ぜひこちらの方法でお試しください。

## おわりに

今回この設定を行ってネットワークの知識がある程度必要だなと思いました。

この設定をすれば自宅のPCを簡単に操作できます。VPNやポート変更をしてセキュリティを高めましたが、DDNSサービスの利用や普段閉じているポートを開けていて多少なりともリスクが生じています。リモート接続をしないのであれば、この設定をした以前の状態に戻すことを忘れないようにしましょう。

## 参考文献
https://docs.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/clients/remote-desktop-allow-outside-access

https://docs.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/clients/change-listening-port

https://www.asus.com/jp/support/FAQ/1033575