This article aims to explain how to configure a static IP address on a CentOS 7 virtual machine using VirtualBox.
We will go step by step, and at the end of this blog, you will be able to ssh into your virtual machine using a never-changing IP.
What is a static IP?
Every computer has a random local IP address unless you have specified the contrary. These addresses are not fixed. It means that they could change.
In most cases, you don’t care about the IP address, but you usually do with virtual machines.
If you have a MySQL service running on a virtual machine, you would want to save the connection configuration once and re-use it every time. If the IP address changes, you have to modify the connection settings.
Another approach is to use port-forwarding. This approach is okay until you have 3 or more virtual machines with multiple services and ports to keep track of.
The following image shows the ideal local development environment with static IP addresses.
Configure VirtualBox Networking
The app VirtualBox has some networking settings we have to set before changing the VM Linux configuration.
We want our VM to have the following:
- Access to the internet
- Access to our host computer
And we also want to be able to access the VM by IP.
Step 1: Stop the VM
You have to stop the VM before doing the following steps.
Step 2: Create Ethernet Adapter
Click on Tools - Networks and make sure you have an ethernet adapter created. Write down the IPv4 Prefix, because the static IP will be in this range.
In the image above:
- The gateway is 192.168.56.1
- The network mask is 255.255.255.0 (24 bits)
The static IP of my VM will be in the 192.168.56.xx range.
Step 3: Change adapters
Right-click on the virtual machine and choose the “Network” tab.
We are going to add 2 adapters:
- The first one is going to be a NAT. This way the VM will have internet access.
- The second one has to be a “Host-only Adapter” with the ethernet adapter of the previous step. This is the adapter that will have the static IP assigned.
Configure VM Centos 7
Now that we have configured the VirtualBox networking, we will configure the inner VM networking settings.
Step 1: Start the VM
Double-click on the VM or right-click and start.
Step 2: Get the connection name
We know the static IP will be assigned to the second adapter, the Host-only Adapter.
Let’s check the vm networking using ip addr | head -n 20
:
- loopback
- enp0s3: NAT Adapter
- enp0s8: Host-Only Adapter
Now we know we have to assign an IP to the enp0s8 device. To get its connection name, you have to execute the following statement:
nmcli -p device
The connection name is “Ethernet connection 1”.
Step 3: Configure connection IP
There are two ways of doing it:
- Graphically with
nmtui
- With bash statements and
nmcli
In our case, we will execute some statements in the console.
connection_name="Ethernet connection 1"
ip=192.168.56.2
gateway=192.168.56.1
bits=24
nmcli con mod "$connection_name" ipv4.addresses $ip/$bits
nmcli con mod "$connection_name" ipv4.gateway $gateway
nmcli con mod "$connection_name" ipv4.method manual
nmcli con up "$connection_name"
If we execute ip addr | head -n 20
again, we will see the previous IP address.
Step 4: Reboot
The last step is to reboot the VM
Test the connection
Now we can connect to the VM using the command ssh user@192.168.56.2
Top comments (0)