Table of Contents
There are various types of Network Mode available with Oracle VirtualBox and VMware Workstation Player. These two are the most used Virtualization Software by end users for performing R&D and testing.
Before we jump into out main topic on how to connect virtual machine to internet connection, you must have Oracle VirtualBox installed on your environment Server and also you must be familiar with the different types of Network Modes and which one would help us connect to internet using our Linux or Windows OS from the Virtual Machine.
I have written another article with detailed explanation of different network mode available with Oracle VirtualBox and VMware Workstation Player. So in this article I will be very brief and touching only those areas to cover our primary agenda to enable and connect virtual machine to internet connection.
Below are the Network Modes using which you must use to enable and connect virtual machine to internet connection
- Bridged Network
- NAT (Network Address Translation)
How Bridged Network Works?
With bridged networking, Oracle VM VirtualBox uses a device driver on your host system that filters data from your physical network adapter. This driver is therefore called a net filter driver. This enables Oracle VM VirtualBox to intercept data from the physical network and inject data into it, effectively creating a new network interface in software.
When a guest is using such a new software interface, it looks to the host system as though the guest were physically connected to the interface using a network cable. The host can send data to the guest through that interface and receive data from it. This means that you can set up routing or bridging between the guest and the rest of your network.
How NAT Networking works?
Network Address Translation (NAT) is the simplest way of accessing an external network from a virtual machine. Usually, it does not require any configuration on the host network and guest system.
A virtual machine with NAT enabled acts much like a real computer that connects to the Internet through a router. The router, in this case, is the Oracle VM VirtualBox networking engine, which maps traffic from and to the virtual machine transparently.
How to select/change Network Mode in Oracle Virtual Box?
- Assuming you already have a running virtual machine with you, select the virtual machine.
- Click on Machine from the top panel menu of Oracle Virtual Box and select Settings
- Next select Network from the left panel menu
- Choose the Adapter using which you wish to connect virtual machine to internet connection
- Next from the drop down menu select either Bridged Adapter or NAT
- Click on Ok and save the settings.
How to select/change Network Mode in VMware Workstation Player?
- Again assuming that you already have a running virtual machine
- Click on Player on the top menu, from the drop down menu select Manage and click on Virtual Machine Settings. Alternatively you can also press "Ctrl + D" to open the virtual machine settings
- Choose the Network Adapter using which you wish to connect virtual machine to internet connection
- Next select the Network Mode as NAT or Bridged
- Click on Ok and save the settings.
Connect Virtual Machine to Internet Connection using NAT
I would assume that you have selected NAT as the Network mode for your VM's Adapter already.
For NAT it is important that you leave your network settings to use DHCP. There are no manual changes required from the end user here for default settings.
On RHEL/CentOS environment verify your network configuration. Verify the BOOTPROTO
directive of your interface configuration file
# egrep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-Ethernet_connection_1 BOOTPROTO=dhcp
Also you can verify the same using nmcli
, to list the available network connections
# nmcli con show
NAME UUID TYPE DEVICE
Ethernet connection 1 30cb1359-cb34-4dae-b994-f4b3b39542d7 ethernet enp0s3
Here we have a single connection "Ethernet connection 1
", so verify the BOOTPROTO
for this connection
# nmcli -p con show "Ethernet connection 1" | grep -i "ipv4.method"
ipv4.method: auto
As you see our IPv4 connection is set to auto
, for a static ip this will be set to manual
My /etc/resolv.conf
file
# cat /etc/resolv.conf # Generated by NetworkManager search golinuxcloud.com nameserver 192.168.43.1
On Oracle VirtualBox
List the available interface and identify the interface for which you have configured NAT as Network Mode in the Settings
# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:d5:cb:b6 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3 valid_lft 86385sec preferred_lft 86385sec
In NAT mode, the guest network interface is assigned to the IPv4 range 10.0.x.0/24 by default where x
corresponds to the instance of the NAT interface +2. So x is 2 when there is only one NAT instance active. In that case the guest is assigned to the address 10.0.2.15, the gateway is set to 10.0.2.2 and the name server can be found at 10.0.2.3.
You can change the default NAT network for individual virtual machine using below command on your Windows Machine under the home directory of VirtualBox
C:Program FilesOracleVirtualBox>VBoxManage modifyvm "VM name" --natnet1 "192.168.100.0/24"
This command would reserve the network addresses from 192.168.100.0
to 192.168.100.254
for the first NAT network instance of "VM name
". The guest IP would be assigned to 192.168.100.15
and the default gateway could be found at 192.168.100.2
.
# ip addr show dev enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d5:cb:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.15/24 brd 192.168.100.255 scope global dynamic noprefixroute enp0s3
valid_lft 86138sec preferred_lft 86138sec
inet6 fe80::a00:27ff:fed5:cbb6/64 scope link
valid_lft forever preferred_lft forever
To remove your custom changes for NAT Network
C:Program FilesOracleVirtualBox>VBoxManage modifyvm "VM name" --natnet1 default
Now try to connect virtual machine to internet connection
# ping google.com
PING google.com (216.58.196.174) 56(84) bytes of data.
64 bytes from maa03s31-in-f14.1e100.net (216.58.196.174): icmp_seq=1 ttl=52 time=37.8 ms
64 bytes from maa03s31-in-f14.1e100.net (216.58.196.174): icmp_seq=2 ttl=52 time=35.0 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 35.036/36.428/37.821/1.405 ms
How to change Adapter Type in VirtualBox?
- To change Adapter Type you must power off the respective VM.
- Next open the Settings of the VM.
- Navigate to Network and select the Adapter for which you wish to change Adapter Type
- From the drop down menu of Adapter Type select the preferred type. For me I have used Paravirtualized Network (virtio-net) as
IntelPRO/1000 T Server(82543GC)
was unable to connect to internet connection.
On VMware Workstation Player
Here my VM on VMware Player is on DHCP and is configured as NAT in the VM Settings and I am able to connect to the Virtual Machine from my Windows host laptop.
# ip addr show dev ens33 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:23:13:e0 brd ff:ff:ff:ff:ff:ff inet 192.168.118.128/24 brd 192.168.118.255 scope global dynamic noprefixroute ens33 valid_lft 1472sec preferred_lft 1472sec inet6 fe80::20c:29ff:fe23:13e0/64 scope link valid_lft forever preferred_lft forever
My /etc/resolv.conf
which gets automatically populated by NetworkManager
# cat /etc/resolv.conf # Generated by NetworkManager search localdomain golinuxcloud.com nameserver 192.168.118.2
My default gateway
# ip route show
default via 192.168.118.2 dev ens33 proto dhcp metric 100
Check if you are able to connect virtual machine to internet connection
# ping google.com
PING google.com (172.217.26.206) 56(84) bytes of data.
64 bytes from maa03s23-in-f206.1e100.net (172.217.26.206): icmp_seq=1 ttl=128 time=38.9 ms
64 bytes from maa03s23-in-f206.1e100.net (172.217.26.206): icmp_seq=2 ttl=128 time=45.6 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 38.940/42.278/45.616/3.338 ms
Connect Virtual Machine to Internet Connection using Bridged network
For Bridged Network Mode, you can use both DHCP or static IP for your Virtual Machine. I hope you have already changed the network Mode of your Virtual Machine Adapter to Bridged to be able to connect virtual machine to internet connection.
The steps to use Bridged Network is same for both Oracle VirtualBox and VMware Workstation Player
We will continue to use DHCP for demonstrating this article so verify your network configuration as explained earlier in this article
My new IP Address is now
# ip addr show dev enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d5:cb:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.38/24 brd 192.168.43.255 scope global dynamic noprefixroute enp0s3
valid_lft 3486sec preferred_lft 3486sec
inet6 fe80::a00:27ff:fed5:cbb6/64 scope link
valid_lft forever preferred_lft forever
# ip route
default via 192.168.43.1 dev enp0s3 proto dhcp metric 100
As you see the IP Address has changed, now I am getting the IP Address directly from the router which should be in the same subnet as from where my laptop is getting the IP as we are using the same router.
Below is the IP Address from my laptop using ipconfig
command
Wireless LAN adapter WiFi: Connection-specific DNS Suffix . : IPv6 Address. . . . . . . . . . . : 2401:4900:273c:d7cf:979:d5f9:4b34:4958 Temporary IPv6 Address. . . . . . : 2401:4900:273c:d7cf:6cf5:88f5:2444:dadf Link-local IPv6 Address . . . . . : fe80::979:d5f9:4b34:4958%2 IPv4 Address. . . . . . . . . . . : 192.168.43.168 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : fe80::72dd:a8ff:fe0a:8b6f%2 192.168.43.1
So my laptop and virtual machine, both are using 192.168.0.1 as the default gateway.
Check if you are able to connect virtual machine to internet connection
# ping google.com
PING google.com (216.58.196.174) 56(84) bytes of data.
64 bytes from maa03s31-in-f14.1e100.net (216.58.196.174): icmp_seq=1 ttl=53 time=48.3 ms
64 bytes from maa03s31-in-f14.1e100.net (216.58.196.174): icmp_seq=2 ttl=53 time=46.7 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 46.668/47.499/48.330/0.831 ms
systemctl restart network
" to get new address if you were using NAT or any other Network Mode.
Lastly I hope the steps from the article to connect virtual machine to internet connection on Oracle VirtualBox and VMware Workstation Player using Linux was helpful. So, let me know your suggestions and feedback using the comment section.
Thank you so much it works good, thanks a lot….
this article was really sweet
This blog is so concentrated and nice!
Great blog. Thanks for posting.