Managing networks in the cloud isn’t always simple — hardware routers don’t scale easily, VPN setups can be time-consuming, and a small misconfiguration can break connectivity across your entire infrastructure. That’s why more teams are switching to virtual routers: they’re faster to deploy, easier to manage remotely, and often far more cost-effective than physical equipment. According to Mordor Intelligence, the virtual router market is expected to exceed $1 billion by 2030, growing at a compound annual growth rate of over 20%.
In this step-by-step guide, you’ll learn how to install MikroTik CHR on a VPS and build a reliable virtual router for secure routing, traffic control, and VPN access in modern cloud environments.
MikroTik Cloud Hosted Router (CHR) is a virtualized version of MikroTik RouterOS that runs on virtual machines rather than physical hardware. It works with most popular hypervisors, such as VMWare, Hyper-V, VirtualBox, and KVM, and supports 64-bit x86 architecture. MikroTik CHR offers the same powerful features — routing, firewall, NAT, VPN, traffic management, and monitoring — but in a fully virtualized form.
Running MikroTik CHR on a VPS lets you create a flexible, scalable virtual router in the cloud. This approach eliminates hardware costs, ensures rapid deployment, and simplifies remote network management. It’s ideal for VPN gateways, cloud firewalls, multi-server routing, and modern software-defined networking environments.
Before installing MikroTik CHR on a VPS, make sure your environment meets the following technical requirements. Below are the prerequisites for providing a stable network connection and avoiding common configuration issues.
Before installing MikroTik CHR, check that your VPS meets these requirements:
Memory: 256 to 512 MB of RAM
Disk Space: 1–2 GB
Before launching MikroTik CHR, your VPS network must also meet the following requirements:
After verifying your network and VPS, you can proceed to install and configure the virtual router. Meeting these basic requirements will make setup easier and ensure reliable operation of MikroTik CHR on your VPS.
Once your VPS is ready, download and prepare the MikroTik CHR image. You can download the latest image versions directly from the official MikroTik website.
MikroTik VPS from is*hosting provides a ready-to-use solution with quick access to a reliable virtualized environment, enabling you to create, manage, and scale your network infrastructure quickly. To install MikroTik VPS from is*hosting, you only need the minimum Linux Lite plan. Select the MikroTik CHR OS when ordering, and you can proceed directly to setup.
Build, manage, and scale your network infrastructure quickly.
Let's start with logging in and setting up basic security. This step is crucial to set up MikroTik CHR on a VPS, as a new CHR installation may include default settings and services that are unsafe for public internet access.
Immediately after creating the MikroTik CHR virtual machine, log in to the console through your provider's control panel. Upon first boot, you'll see the console login page. The default username is admin, and there’s no password.
Set a strong password:
/user set admin password=YourStrongPassword
To reduce your attack surface, turn off services you won't use (telnet, ftp, etc.):
/ip service print
/ip service disable [find name=telnet]
To maintain MikroTik RouterOS CHR stability and address security vulnerabilities, it’s essential to keep RouterOS up to date.
Update RouterOS via the CLI:
//system package update
check-for-updates
install
Reboot the system if necessary.
Replace the hostname with a descriptive one for easier identification:
/system identity set name="CHR-VPS"
Set the time zone according to your region:
/system clock set time-zone-name=Europe/Warsaw
/system ntp client enable
Your MikroTik CHR VPS is now ready for further network and firewall configuration.
After the initial setup, the next step is to configure the network and IP addresses.
CHR interfaces are typically named ether1, ether2, etc. Assign your public IP address to the corresponding interface:
/ip address add address=YOUR_PUBLIC_IP/32 interface=ether1
Replace YOUR_PUBLIC_IP with the IP address provided by your VPS host.
Define a default route to ensure traffic exits your router correctly:
/ip route add gateway=YOUR_GATEWAY_IP
Replace YOUR_GATEWAY_IP with the gateway IP address provided by your VPS host.
Rename the interfaces for clarity:
/interface ethernet set ether1 name=WAN
/interface ethernet set ether2 name=LAN
Configure a LAN with an internal subnet. For example:
/ip address add address=192.168.1.1/24 interface=LAN
To enable internet access, you need to allow devices on your local network to access the internet:
Enable Source NAT (masquerade):
/ip firewall nat add chain=srcnat out-interface=WAN action=masquerade
This helps hide local network addresses behind a public IP address.
To test the connection directly to the router, run the following command:
/ping 8.8.8.8
Positive responses confirm that internet access is working.
To configure and secure your router, you’ll need to do the following:
Add simple rules to secure your router:
/ip firewall filter add chain=input connection-state=invalid action=drop
/ip firewall filter add chain=input connection-state=established,related action=accept
/ip firewall filter add chain=input in-interface=WAN protocol=tcp dst-port=22 action=drop
This configuration drops invalid packets, allows established sessions, and blocks SSH on the WAN by default. Configure this only if you need remote SSH access.
To protect access to the router, you can allow management from specific IP addresses by using an allow rule before denying all others:
/ip firewall filter add chain=input src-address=YOUR_ADMIN_IP action=accept
/ip firewall filter add chain=input in-interface=WAN action=drop
Replace YOUR_ADMIN_IP with your trusted IP address.
Once your CHR network is up and running, setting up a VPN is a logical next step.
A VPN provides secure access to your network for remote users or offices.
Common VPN use cases include:
Two popular VPN protocols for RouterOS:
An example of a minimal WireGuard configuration is shown below:
/interface wireguard add name=wg0 listen-port=13231
/ip address add address=10.10.10.1/24 interface=wg0
Using a ready-made MikroTik VPS server from is*hosting simplifies many of these steps, as the VPS comes pre-configured for MikroTik CHR, is quickly deployed, and includes technical support. With basic networking and security settings in place, your MikroTik cloud-hosted router is ready for real-world use.
When using MikroTik CHR on a VPS, MikroTik CHR licensing is a crucial aspect. Understanding how MikroTik CHR licenses work is essential for maximizing performance and avoiding unexpected limitations.
MikroTik CHR uses a software-based licensing model that limits the virtual router's maximum throughput, which directly affects performance. Licenses range from a free entry-level license to higher-performance, more expensive options.
MikroTik CHR has its own licensing levels, which include free and paid licenses:
Free license (free forever) – allows CHR to operate indefinitely with an interface limitation of 1 Mbps. All other features operate normally.
|
License |
Speed Limits |
Price |
|
Free |
1 Mb |
Free |
|
P1 |
1 Gb |
$45 |
|
P10 |
10 Gb |
$95 |
|
P-Unlimited |
Unlimited |
$250 |
All MikroTik CHR licenses are available in a 60-day trial mode, and you can use the trial before you buy to test higher license tiers.
Unlike RouterBOARD and x86, where license levels remove functional limitations, MikroTik CHR licenses differ primarily in throughput limits. All RouterOS features are available; the license you choose depends on your network load.
If you purchased a RouterOS device, the license is already pre-installed, and you don't need to do anything further.
For x86 systems, a license key linked to a unique Software ID is required. You can copy the key from your mikrotik.com account or email and paste it into the router.
To purchase a RouterOS license key, follow these steps:
Just contact us — we will quickly find a solution for your tasks.
In this section, you'll find helpful tips to optimize the performance and security of your MikroTik CHR router, so your VPS router remains fast, stable, and easily recoverable in the event of issues.
Recommendations for a VPS environment:
General optimization settings:
Backup and Maintenance:
/system backup save
/export file=config-backup
/system package update check-for-updates
/system package update install
Here are examples of common issues when working with MikroTik CHR on a VPS, and how to troubleshoot them.
|
Problem |
Troubleshooting |
|
No Internet access |
|
|
Loss of access to the router |
|
|
VPS network issues |
/system license generate-new-id |
We hope this article provides a helpful step-by-step guide for quickly and confidently launching your own virtual router. By running MikroTik CHR on a VPS, you get a powerful virtual router with the full range of RouterOS features.