[VMWare Fusion] VM으로 포트 포워딩

VM이 제공하는 서비스를 외부에 공개하기
1 more property
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 = netmask = # Last DHCP address lastDhcpAddress = # 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 = 443 = [incomingudp] # UDP port forwarding example #6000 = 162 = 514 =
나의 nat.conf 파일
파일을 수정하고 난 뒤에 다음 명령을 실행한다.
sudo vmnet-cli --stop sudo vmnet-cli --start
참고로, VMWare Fusion을 설치하고 나면 /etc/path.d 디렉터리에 com.vmware.fusion.public 파일이 생긴다. 이 파일은 달랑 /Applications/VMware 이 한줄만 담고 있는데, 이 디렉터리에 있는 파일에 저장된 경로가 환경 변수 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