Using a static IP address makes it a hell of a lot easier to ssh into your vm.
Let's say you have a guest machine with the name foobar
and you keep your guest machine images in ~/Documents/Virtual\ Machines/
. To determine the MAC address for this VM, you can run:
cat ~/Documents/Virtual\ Machines/foobar.vmwarevm/foobar.vmx | grep ethernet0.generatedAddress
If more than one line is returned, you're looking for the one with the value like 00:0c:29:9d:2a:38
.
Open /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf
. vmnet8
is the virtual interface for NAT networking in VMWare the guest machines. In this file, you'll see a subnet clause that looks something like this:
subnet 172.16.179.0 netmask 255.255.255.0 {
range 172.16.179.128 172.16.179.254;
option broadcast-address 172.16.179.255;
option domain-name-servers 172.16.179.2;
option domain-name localdomain;
default-lease-time 1800; # default is 30 minutes
max-lease-time 7200; # default is 2 hours
option routers 172.16.179.2;
}
Take note of the line starting with range
. The IP addresses you will assign your guest machines will need to fall outside that range. Find the line that looks like this:
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
Below that line, add a clause for your guest machine. It should look like this:
host foobar {
hardware ethernet 00:0c:29:9d:2a:38;
fixed-address 172.16.179.102;
}
Make sure the hardware ethernet
value matches the MAC address you found in step one, and the fixed-address
is an IP outside the range listed in the subnet
clause.
If you want to assign a fancy local hostname that refers to your guest machine, you can do so by editing your /etc/hosts
file. For instance, to assign the hostname ubuntu.local
to the guest machine we just setup, we could add the following line to our /etc/hosts
file:
172.16.179.102 ubuntu.local
Last thing to do is restart your VMWare daemons:
sudo "/Applications/VMware Fusion.app/Contents/Library/vmnet-cli" --stop
sudo "/Applications/VMware Fusion.app/Contents/Library/vmnet-cli" --start
Note: Not sure if the above works to reload the config.
- original source: http://crshlv.ly/rjlXdS (dead link)
- note: These instructions have been tested on High Sierra with VMWare Fusion 10.1.3.