Mac上の仮想Windows11でIISを動かし、iPhoneから接続する方法
背景
仕事の関係でWindows環境が必要になったんですが、
デスク上に物理マシンが増える事に抵抗があり、macだけでも完結する方法を模索しました。
また、開発で利用するので、以下要件を満たす必要も有りました。
Windows11でIISを構築し、iPhoneからIISのサイトを直接閲覧できる
今回は、Macの仮想環境でWindowsを動かせる「Parallels Desktop」を利用して、
物理PCを増やさず、かつ上記要件を満たす環境構築を実現した手順を紹介します。
同じような事でお困りの方の参考になれば幸いです。
なお、Parallels Desktopは有料サービスですが、
試用期間が14日間あるので、私も試用期間中で引き続き模索している最中になります。
物理端末を増やしたくない理由
理由は色々ありますが、以下が大きな理由です
- デスク上にMacとWinを2台配置する圧迫感
- トラックパッドが利用できないのでマウスに切り替える必要がある
- AlfredやBetterTouchToolが使えない
※以前MacとWindowsを2台置いて、マウス/キーボードは、
BluetoothでPCを切り替えていたので、マウスキーボードは1セットで稼働できていました。
環境
MacBook Air M2 16GB
Parallels Desktop 19 for Mac Pro(14日間の試用期間中)
iPhone15
※MacとiPhoneは同一ネットワークです
接続手順の概要
- MacにParallels Desktopを導入しWindows11 & IIS を構築
- Parallels Desktopでポート転送の設定
- iPhoneからMacの「コンピュータ名.local」に接続
対応不要だったこと
試行錯誤する中で以下も実施しましたが、最終的にいずれも実施せずにIISへの接続はできました。利用するアプリケーションによってはFireWallでポート開放をする必要が出てくるかもしれません。
- Windows11のFireWallでポート80開放
- Macのインターネット共有設定
- iPhoneのプロキシ設定
手順
1. MacにParallels Desktopを導入しWindows11 & IIS を構築
導入からIISの構築に゙関しては、参考サイトを確認してみてください。
- 以下サイトから無料トライアルから進んでインストールとWindows11をセットアップ
Parallels: Mac & Windows Virtualization, Remote Application Server, Mac Management Solutions
- IISを設定
2. Parallels Desktopでポート転送の設定
この操作を行うことで、iPhoneからMacに対してhttpで接続をすると、
Mac上のParallels Desktopで稼働しているWindows11に通信を転送してくれます。
※Macのローカルホストの80番ポートにリクエストがあれば、Parallels Desktop内のWindowsの80番ポートにリクエストを転送してくれる設定になります。
- Parallels Desktopの環境設定("cmd” + ",”」)のネットワークタブを開く
- サイドバーで「Shared」を選択した状態で、ポートフォワーディングルールの「+」をクリック
- ポップアップされる画面で以下設定する
プロトコル | TCP | |
---|---|---|
ソースポート | 80 | Mac側のどのポートにリクエストがあったらという視点 ※利用するアプリケーションに応じて適宜ポート番号は変更してください |
転送先 | Windows11 | ソースポートで指定したポート番号にリクエストがあったらParallelsDesktop上で動いているどの環境にリクエストを転送するかという視点 ※私はWin11環境しかなかったのでWindous11を選択していますが、IPアドレスの指定でもOKです |
宛先ポート | 80 | 転送先で指定した環境の、どのポート番号にリクエストを転送するかという視点 ※利用するアプリケーションに応じて適宜ポート番号は変更してください |
3. iPhoneからMacの「コンピュータ名.local」に接続
iPhoneとMacを同一ネットワークに繋いでいる状態で、Macのにhttpリクエストをして、
実際にIISのページが確認できるか確認します。
- Macの「システム設定 → 一般 → 共有」を開き、ローカルホスト名を確認
- iPhoneのブラウザで「1.」で確認した「http://ローカルホスト名.local」に接続
※httpはポート80番を利用するので、実際には「http://ローカルホスト名.local:80」で接続されていると思います。
もちろん、IISに配置した任意のアプリケーションにも接続する事ができます。
※http://ローカルホスト名.local/任意のファイル名」
※以下はChat-GPTで適当に作成したPortfolioのページに接続していますが、内容に意味は有りません。
注意点
Parallels Desktopでポート転送の設定ですが、
もしかしたらParallels DesktopのProEditionでないと使えないのかもしれないです。
このあたりは内容分かり次第追記したいと思います。
参考記事
iPhoneでMacのlocalhostを開く方法【実機でテストする】 - Qiita
https://download.parallels.com/desktop/v19/docs/ja_JP/Parallels Desktop User's Guide/33341.htm
Discussion