VMware上ゲストOSのIPアドレスを固定化する
とある事情で、有線LANでインターネットとつながったWindows10上で
動作しているゲストOSにおいて、
DHCPで動的に割り当てたIPアドレスではなく、固定のアドレスを設定する必要が
生じました。本記事はその備忘録的なまとめです。
作業環境
- Windows10 (ホストOS)
- VMware Workstation 16 Player
- Ubuntu 18.04(ゲストOS)
- まったりできる部屋(/・ω・)/
用意するもの
- グローバルIPアドレス
- 休憩用のおやつ(300円まで)
設定前に:動的割り当て範囲・固定IPの確認
WindowsでC:/ProgramData/VMware/vmnetdhcp.conf を開きます。
(※C:/ProgramDataフォルダは隠しファイルの表示を有効にしていないと表示されません!)
vmnetdhcp.confではDHCPによるIP動的割り当てについての設定が以下のように記述されています。
# Virtual ethernet segment 8
subnet 192.168.65.0 netmask 255.255.255.0 {
range 192.168.65.128 192.168.65.254; # default allows up to 125 VM's
option broadcast-address 192.168.65.255;
option domain-name-servers 192.168.65.2;
option domain-name "localdomain";
option netbios-name-servers 192.168.65.2;
option routers 192.168.65.2;
default-lease-time 1800;
max-lease-time 6500;
}
host VMnet8 {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.65.1;
}
# End
上から3行目、range で始まる行が、DHCPによって動的に割り当てられる
IPアドレスの範囲です。
そして下部 host VMnet8 {..} の中にある fixed-address が固定的なプライベートIPアドレスです。
今回はこのプライベートIP⇔グローバルIPのNAT関係をつくって、
ネットワーク接続できるように設定します。
Windows側設定
- 「Windowsキー + R」でncpa.cplと入力し、コントロールパネルの「ネットワーク接続」を開きます。
- 「VMware Network Adapter VMnet8」のような項目があるかと思いますので、ダブルクリックで開きます。
- 表示されたダイアログの左下にある「プロパティ」ボタンをクリックします。
- 表示されたプロパティの中央部分、「この接続は次の項目を使用します」から、
「インターネットプロトコルバージョン4(TCP/IPv4)」をダブルクリックします。 - 「次のIPアドレスを使う」を選択し、プライベートIP、サブネットマスク、デフォルトゲートウェイ、DNSアドレス(8.8.8.8など)を入力します。
ゲストOS側設定
- ゲストOS側のネットワーク設定を開きます。Ubuntu18.04なら右上のボタンから開けます。
- 「有線」の項目にある設定ボタン(歯車マーク)を押し、IPv4タブを選択します。
- 「IPv4メソッド」から「手動」を選択し、下部にアドレス、ネットマスク、ゲートウェイを記述します
- 「適用」をクリックし、ゲストOSを再起動します。
これで最後!NAT設定
先ほどDHCP設定を確認するために訪れたC:/ProgramData/VMware配下の
vmnetnat.confを開きます。
いろいろ書いてありますが、途中に[incomingtcp]という記述があると思います。
この下に「特定のポートにTCPセグメントが飛んできたときの設定」を書いていきます。
例えばこんな感じ。
[incomingtcp]
# Use these with care - anyone can enter into your virtual machine through these...
3300 = 192.168.65.1:3300
上のように書くと、「ホストOSの3300番ポートにやってきたTCPセグメント」が、
「ゲストOS(192.168.65.1)の3300番ポート」に転送されます。
vmnetnat.confを保存したら、VMwareのNATサービスを再起動するため
管理者権限で開いたpowershellで以下の2つのコマンドを打ち込みます。
$ net stop "VMWare NAT Service"
$ net start "VMWare NAT Service"
設定はこれで終了です!
ホストOS側から「localhost:3300」でアクセスできるようになります。
参考
- https://akng-engineer.hatenablog.com/entry/2019/01/03/140549
- https://designare.jp/blog/noda/vmware%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A.html
追伸
今回、セキュリティ対策的な部分のことは省いています。
この記事を参考にしてもらえるのは嬉しいですが、例ではグローバルIPアドレスを使って
(インターネット全体から)アクセスできるようにしているので、試すときはその危険性を
認識した上、自己責任でお試しください。
なお、休憩用のおやつにはイオンに売っていた「香ばしく焼き上げたオーツ麦の
クッキー」を使用しました。さくさくして美味しかったです。