macOS 내부에서 가상머신으로 실행하는 서비스를 외부에 공개해야 할 일이 있을 수 있다. 그럴 때에는 가상머신으로 포트 포워딩을 해야 하는데, /Library/Preferences/VMware Fusion/vmnet8/nat.conf 파일을 root 권한으로 편집하고, vmnet-cli 명령으로 가상머신 네트워크를 재구동해주면 된다.
VMWare Workstations을 사용하는 Windows 10, Linux에서도 다음 파일을 편집하면 된다.
- Windows: C:\ProgramData\VMware\vmnetnat.conf
- Linux: /etc/vmware/vmnet8/nat/nat.conf
# VMware NAT configuration file
# Manual editing of this file is not recommended. Using UI is preferred.
[host]
# Use MacOS network virtualization API
useMacosVmnetVirtApi = 1
# NAT gateway address
ip = 172.16.193.1
netmask = 255.255.255.0
# Last DHCP address
lastDhcpAddress = 172.16.193.127
# VMnet device if not specified on command line
device = vmnet8
# Allow PORT/EPRT FTP commands (they need incoming TCP stream ...)
activeFTP = 1
# Allows the source to have any OUI. Turn this on if you change the OUI
# in the MAC address of your virtual machines.
allowAnyOUI = 1
# Controls if (TCP) connections should be reset when the adapter they are
# bound to goes down
resetConnectionOnLinkDown = 1
# Controls if (TCP) connection should be reset when guest packet's destination
# is NAT's IP address
resetConnectionOnDestLocalHost = 1
# Controls if enable nat ipv6
natIp6Enable = 0
# Controls if enable nat ipv6
natIp6Prefix = fd15:4ba5:5a2b:1008::/64
[tcp]
# Value of timeout in TCP TIME_WAIT state, in seconds
timeWaitTimeout = 30
[udp]
# Timeout in seconds. Dynamically-created UDP mappings will purged if
# idle for this duration of time 0 = no timeout, default = 60; real
# value might be up to 100% longer
timeout = 60
[netbios]
# Timeout for NBNS queries.
nbnsTimeout = 2
# Number of retries for each NBNS query.
nbnsRetries = 3
# Timeout for NBDS queries.
nbdsTimeout = 3
[incomingtcp]
# Use these with care - anyone can enter into your VM through these...
# The format and example are as follows:
#<external port number> = <VM's IP address>:<VM's port number>
#8080 = 172.16.3.128:80
443 = 172.16.193.239:443
[incomingudp]
# UDP port forwarding example
#6000 = 172.16.3.0:6001
162 = 172.16.193.239:162
514 = 172.16.193.239:514
Shell
복사
나의 nat.conf 파일
파일을 수정하고 난 뒤에 다음 명령을 실행한다.
sudo vmnet-cli --stop
sudo vmnet-cli --start
Shell
복사
참고로, VMWare Fusion을 설치하고 나면 /etc/path.d 디렉터리에 com.vmware.fusion.public 파일이 생긴다. 이 파일은 달랑 /Applications/VMware Fusion.app/Contents/Public 이 한줄만 담고 있는데, 이 디렉터리에 있는 파일에 저장된 경로가 환경 변수 PATH에 등록되므로 vmrun, vmnet-cli같은 명령어를 사용할 수 있다. 지정되는 순서는 /etc/path.d에 저장된 파일의 알파벳 순이다.
joshua ~ (:|✔) % echo $PATH
/usr/local/Cellar/pyenv-virtualenv/1.1.5/shims:/Users/joshua/.pyenv/bin:/Users/joshua/.pyenv/shims:/usr/local/opt/openjdk@11/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/MacGPG2/bin:/Applications/Keybase.app/Contents/SharedSupport/bin:/Applications/Wireshark.app/Contents/MacOS
Shell
복사