# How to Set Up a Host-Only Internal Network in VMware Workstation

In the previous articles, we installed **Rocky Linux** and **Ubuntu Server** as a VM in VMware Workstation Pro in Windows 11.

Now it's time to connect them properly, similar to how servers are connected in real production environment.

In this article, we will create a similar network architecture.

For now

*   All machines will be connected internally
    
*   They will be able to communicate with each other
    
*   They won't have internet access. Later in the series, we will introduce a dedicated router/firewall VM that will control outbound internet access when required.
    

## Why Internal Network?

In a real production environment:

*   The application servers don't have direct internet access
    
*   Database servers are isolated
    
*   Internal communications are done via private IP addresses
    
*   Only bastion hosts have internet access
    

In VMware Workstation, this can be achieved using:

*   A **host-only network**, or
    
*   A custom **VMNet configured as host-only**
    

## Creating Custom Virtual Network

Let's create our Custom Virtual Network

1.  Open the Start Menu, search for `Virtual Network Editor`, and open it
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/093eac4c-8ab0-4c8c-8f9d-bdd0215c78d5.png align="center")
    
2.  Once opened, you will see two VMnets already present. If you recall, during VM creation, we selected **NAT** in the network setup step; we chose `NAT`. That NAT configuration is linked to the NAT adapter shown in this screen. You may notice that none of the settings are editable; click `Change Settings` button on the bottom right to enable modifications
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/e1ce4290-8bab-4b59-b218-3f351a327bc3.png align="center")
    
3.  You may also see `VMnet0` of type `Bridged`. We are not concerned with this as of now. Click `Add Network...`
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/a991dfa5-07a0-4ce9-bbd1-7e25b2fbb5b0.png align="center")
    
4.  Proceed with the default options and click OK
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/8bb160b1-6804-4338-b948-6e35c081e87c.png align="center")
    
5.  A new VMnet will be created with the following default configurations
    
    *   **NAME**: VMnet2
        
    *   **Type**: Host-only
        
    *   **Subnet Address**: 192.168.x.x
        
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/a81508ff-8f8d-4376-b12d-96f4709809ad.png align="center")
    
6.  Select the newly created `VMnet2`, and modify the following:
    
    *   **Subnet IP**: 172.29.10.0
        
    *   **Subnet mask**: 255.255.255.0 Optionally, click **Rename Network...** and set name to *devops*, this will be useful later
        
    
    Ensure the following options are selected
    
    *   Host-only
        
    *   Connect a host virtual adapter to this network
        
    *   Use local DHCP service to distribute IP address to VMs
        
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0ae355df-4d56-428c-9058-290b8b3f1736.png align="center")
    
7.  Next, modify the default NAT adapter:
    
    *   Select the adapter with the type **NAT** (typically `VMnet8`)
        
    *   Set the **Subnet IP** to `172.18.18.0` Ensure the `NAT` option remains selected; otherwise, the internet connectivity will break.
        
        ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/6d80ce47-4dd7-41bf-88aa-681db31df5f8.png align="center")
        
8.  Once configured, click⁣ `Apply` and then `OK`
    

## Why I Chose Those IP Ranges

Even in a home lab, proper IP planning prevents future conflicts and builds production-ready habits.

For this lab I chose:

*   `172.29.10.0/24` for Internal Network - devops (VMnet2)
    
*   `172.18.18.0/24` for Default NAT Network - VMnet8
    

Most enterprise networks commonly use `10.0.0.0/8` or subnets of `172.16.0.0/16`, while home routers typically operate within `192.168.0.0/16`. Choosing these ranges would increase the risk of conflicts when connected to the office networks via VPN or within the corporate environments.

I also avoided the `172.17.0.0/16` range because Docker uses it for its default bridge network (`docker0`). If we install Docker inside any of these VMs in the future, overlapping of subnets might introduce routing problems.

By selecting less commonly used private IP ranges, we are reducing the likelihood of future conflicts.

## Configuring New Network Adapter in Our VMs

Now, let's configure our VMs to use this network adapter instead of the default NAT adapter.

1.  Power off the VM (if it's running).
    
2.  Navigate to `VM > Settings` or press **Ctrl + D**
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0cafd5cf-9bab-434e-a38f-9f189ebd72ba.png align="center")
    
3.  Select `Network Adapter`, Choose `Custom`, and select `devops (Host-only)` from the dropdown. Click OK
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/1df9d268-fc21-4cf7-be13-b839844d8919.png align="center")
    
4.  Do the same for both the VMs we have created until now and start both the VMs.
    

## Verifying New Network Configuration and Connectivity

1.  Log in to each VM and note their IPs. You should now see that the IPs are now in range `172.29.10.x/24`.
    
    For example:
    
    *   Ubuntu: 172.29.10.130
        
    *   Rocky: 172.29.10.129
        
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/979aa927-b0eb-49d6-8ef8-d605e590a61a.png align="center")
    
    ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/5f1fce59-fba3-4009-83bf-ffe4f4445c6f.png align="center")
    
2.  Try pining `www.google.com` from either VM, - it will fail. However,
    
    *   The VMs should be able to ping each other
        
    *   The host machine should be able to ping both VMs
        
        ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/36b70415-4f81-4d25-8d1b-695ff496129f.png align="center")
        
        ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/09df1ebc-98a1-4581-8749-26837257bc31.png align="center")
        
        ![](https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/852719d0-9b5d-43b9-b92d-a9c8b691f924.png align="center")
        

## What's Next??

In the next article I will show you how to configure a static IP address in both Ubuntu and Rocky Linux.

## Series Roadmap

1.  [Download VMware Workstation Pro](https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026) ✅
    
2.  [Installation Guide](https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026) ✅
    
3.  [Creating Your First VM (Ubuntu Server 22.04)](https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026) ✅
    
4.  [Installing Rocky Linux on VMware](https://bash-sanka1p.hashnode.dev/install-rocky-linux-9-vmware-workstation-pro-2026) ✅
    
5.  Setting up Internal Networks ✅
    
6.  Configuring Static IP on Ubuntu and Rocky
    
7.  Building a Gateway VM for Multi-VM Lab Architecture
    
8.  Multi-VM DevOps Lab Architecture
