redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

Hyper-V上のWebサイト(Redmine, Jira)にホストPCのブラウザからアクセスする

Hyper-V上の仮想マシンRedmineやJiraを構築したが、仮想マシン内のブラウザでは画面が狭いとか、コピー&ペースト出来ない等の課題があったので、Hyper-V上のWebサイトにホストPCのブラウザからアクセスする方法を調べました。

目的

Hyper-V上のWebサイトにホストPCのブラウザからアクセスする

環境

ホストPC:Windows 10 Pro 1803(April 2018 Update)*1

仮想マシンCentOS 7

仮想マシンIPアドレスを調べる

仮想マシン上で端末を開いてip addr showを実行し、仮想ネットワーク上のIPアドレスを確認します。

このIPアドレスは、ホストPCの「既定のスイッチ」に割り当てられたアドレスと同じネットワークになります。

参考:
Windows 10 1709(Fall Creators Update/RS3) Hyper-V の NAPT 仮想スイッチ

ポートフォワーディングの設定を行う

Windowsのnetshコマンドを使用して、ホストPCへのアクセスを仮想マシンに転送する設定をします。

以下は、ホストPCの8080番ポートにアクセスすると、仮想マシンの80番ポートにつながる設定です。

listenaddressに「0.0.0.0」を指定しているため、ホストPCと同じLAN上にある他のPCからも「http://ホストPCのIPアドレス:8080/」でアクセスできます。

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=仮想マシンのIPアドレス

参考:
WindowsでVMへポート転送するときのメモ | hasegawayosuke's blog

仮想マシン上のファイアウォールを停止する

80番ポートのみを通すようにファイアウォールを設定すれば良いのですが、検証用途なのでファイアウォールが起動している場合は停止して、OS起動時にも起動しないようにします。

起動しているかどうか確認する

systemctl status firewalld

ファイアウォールを停止する

systemctl stop firewalld

OS起動時に起動しないようにする

systemctl disable firewalld

これでホストPCのブラウザのURLに「http://localhost:8080/」と打つことで、仮想マシン上のWebサイトにアクセスできるようになりました。

以上

*1:1709(Fall Creators Update)ならばOK