【2021 最新版】VMwareのサーバーをホストネットワークに公開する方法(意外と簡単)

 仕事をしている傍ら、開発環境であるVMwareの仮想マシン(以降VM)にてDjangoサーバーを立ててrunserver実行下にて作っているWebページのデバッグやら開発やらをやっていた。

このホストマシンが社内ネットワークにつながっており、持ち出すことができないのだが在宅で仕事をしようとしたときにわざわざリモートデスクトップをつかってホストマシンにログインしたうえでVMを触るというのはいかんせん作業効率が悪いなと思い、直接VMのサーバーにhttpで接続出来たら回線速度も圧迫せず快適にデバッグできるなと思いいろいろ調べてみたらたくさん記事が出てきたのでその備忘録。

やりたいこと

  • ・VM上のサーバーにホストマシン以外のネットワークから接続する。

やること

  • ・VMのポートフォワーディング
  • ・ホストのポート開放

ポート開放したいマシンの環境

  • OS: Windows 10 Home 64bit
  • VMwareのバージョン:15
  • VMwareのネットワーク設定:NAT
  • Django(VM上)にて使用するポート:8090
  • ホストの開放するポート: 8080

念のために、簡易サーバー起動のコマンド(VM上で実行しております)

python manage.py runserver 0.0.0.0:8090

自分の場合はPyCharmで開発していたので、起動用のコマンドに上の命令を指定してF5だったり再生マークをぽちっと押して実行している

VMのポートフォワーディング手順

手順

・vmnetnat.confの中身を書き換える

以上。

 基本的にはめちゃくちゃ簡単なのだが、自分の場合は設定ファイルであるvmnetnat.confを見つけるのに手間がかかった。

 参考ページと違うのが設定ファイルの場所だが、これは自分がインストールの時に指定したディレクトリのせいなのだろうか、、、(記憶があいまい)

 私の場合はC:\ProgramData\VMware\vmnetnat.conf の中にある[incomingtcp]の下に

 8080 = 192.168.xxx.xxx:8090

 のように書くことで、ホスト上のIPアドレスの8080番ポートにきたアクセスをVMのIPアドレス:8090番ポートに静的マスカレード(ポート変換)してアクセスできるようになった。

 xxx.xxxの部分は実際にVMにどのIPが割り振られているかで変わるので、IPアドレスを調べてから入力する。

 実際の中身はこんな感じ(私の場合)

 
[incomingtcp]
8080 = 192.168.111.23:8090

!!注意点!!

[incomingtcp]と似ている[incomingudp]という設定項目があるので気を付けてください。UDPではありません、TCPです


ホストのポート番号 = VMのアドレス:VMの解放済みポート
という設定になっています。ご自身の設定に合わせていろいろ変えてみてください。

設定を書き込んで保存したら、サービス一覧よりVMware NAT Service を再起動する(※地味に重要)

サービス一覧を表示する方法は、Windows+R をおして[ファイル名を指定して実行]をひらき、

services.msc

と入力して開いてあげることができる。(Windowsのメニューから”サービス”を探して起動してもOK)

ホストマシンのポート開放

 次に、ホストマシンのポートを外部に公開する必要がある。

 ポートを開放する設定はWindowsのファイアウォール設定にて行う。

 コントロールパネル>システムとセキュリティ>Windows Defender ファイアウォールより[詳細設定]を開きます

[受信の規則] > [新しい規則…]にて設定を追加する

今回の場合、8080ポートを開放するので、次のように設定する

ポート(O)を選択
TCPを選択し、特定のローカルポートに開放したいポート番号を入力
”接続を許可する”を選択
ここは必要に応じてチェックを入れよう。一番安全なのはプライベートだけにチェックを入れるのだと思う。

わかりやすく名前と説明をつけておくとよいだろう

これで、ホストマシン側のポート開放も完了。

送信の規則は不要です。

ルーターやゲートウェイのファイアウォールに引っかからなければこれで問題なく外部からVMサーバーに接続できるはず。

接続するときは、ブラウザなどから

https://[ホストマシンのIPアドレス]:[開放したポート]

のような形でアドレスを指定してあげればいいだろう。

今回の場合だとホストマシンのアドレスが192.168.12.56だとすると

https://192.168.12.56:8080

となる

※注意

指定するアドレスはホストマシンのアドレスです

うまくいかないときはもう一度設定を見直してみましょう。それでも無理な場合はゲートウェイなどではじかれていると思います。pingなどで確認してみましょう。

参考にしたサイト

VMwareのゲストOSのポートをホストネットワークに公開する(NAPT設定) - Qiita
概要VMwareの各ゲストOSに別PCからSSH接続する設定のメモ。VMwareのネットワーク設定を行う事により、ゲストOSのポートをホストネットワークに公開できる。イメージ図環境メモホス…

コメント

  1. あきのأكينو より:

    初めて知った!ありがとうー

タイトルとURLをコピーしました