VMware Workstation allows the creation and execution of multiple x86 virtual computers simultaneously. Setting up VMWARE workstation host computer can be tricky. Official VMWARE workstation document recommend of creating vmnet1 and vmnet2. However, you can use eth0 and vmnet1 to route all traffic from guest operating systems via Linux host. This is quite useful:
* If you don't want setup firewall for each operating system inside VMWARE
* Ease of IP accounting etc
Setup
VMWARE Workstation Running on P4 system with 4 GB RAM
OS: Red Hat Enterprise Linux 4.0
- eth0: 192.168.1.1
- vmnet1: 192.168.2.1 (hostonly networking)
Step # 1: Stop vmware and service
Shutdown all VM’s and stop vmware service: # /etc/init.d/vmware stop
Force Linux to act as a router:
echo 1 > /proc/sys/net/ipv4/ip_forward
Open /etc/sysctl.conf file and
# vi /etc/sysctl.conf
Make sure IP packet forwarding is set:
net.ipv4.ip_forward = 1
Save and close the file. Above line ensures that Linux as a router after rebooting system.
Step # 2: Configure hostonly networking
You need to configure interfaces on Linux Vmware host:
- eth0 (Bridge) : Static IP 192.168.1.1
- vmnet1 (hostonly) : Static IP 192.168.2.1
Type following command to configure vmware:
# /usr/bin/vmware-config.pl
At networking screen, add hostonly networking for vmnet1 Keep eth0 (bridge) as it is. Assign IP 192.168.2.1 to vmnet1.
Step # 3: Configure Linux Host to route traffic
Just add following IPtables rules to your iptables script so that you can route traffic between eth0 (Linux host) and vmnet1 (Guest OS):
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface vmnet1 -j ACCEPT
iptables -A INPUT -i vmnet1 -s 192.168.2.0/24 -d 192.168.1.1 -j ACCEPT
Step # 4 Configure Guest OS
- Start Vmware application.
- Select Virtual machine
- Click on VM
- Select Settings
- Select Ethernet1
- Select Network Connection: “Host-only: A private network shared with the host”
- Click ok to save
Power on virtual system and point router IP address to 192.168.2.1, here is sample FreeBSD rc.conf file:defaultrouter="192.168.2.1"Please note that you need to add appropriate iptables rules to allow incoming traffic to Guest os. Just add your rules to Linux host.
hostname="freebsd6.test.com"
ifconfig_lnc0="inet 192.168.2.5 netmask 255.255.255.0"
See also:
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins

- My 10 UNIX Command Line Mistakes
- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
Facebook it - Tweet it - Print it -
We're here to help you make the most of sysadmin work. So, subscribe!


{ 7 comments… read them below or add one }
can root disable the su command on a system
There are many ways to disable su. Simple and easy solution is remove su command or put it to /root directory.
Other solution would be remove executable permission for rest of the world.
I got this to work once I remembered:
echo 1 > /proc/sys/net/ipv4/ip_foward
P.
Peter,
You need to add 1 to /proc/sys/net/ipv4/ip_forward (file name is not correct)
Appreciate your post!
The above discussion is helpful if we are trying to set up windos as guest and Linux as host. But my requirement is Windos XP is host and linux is guest. Please let me know how do I establish a connection between the machines.
A quick reply would be really very helpful.
can you put example for virtualbox because i tried but didn’t success .
Great tutorial.
Note that the following commands are not strictly necessary:
iptables –append FORWARD –in-interface vmnet1 -j ACCEPT
iptables -A INPUT -i vmnet1 -s 192.168.2.0/24 -d 192.168.1.1 -j ACCEPT
There are just used if the box is secured and the default policy of the forward and input chains is not accept.