MikroTik Cloud Hosted Router (CHR) is a version of RouterOS designed to run as a virtual machine on hypervisors like Proxmox, VMware, or KVM. With CHR, you can run a full MikroTik router inside a VM without any physical hardware.

Prerequisites

  • Proxmox VE installed and accessible via web UI
  • Internet connection on the Proxmox host
  • Access to the Proxmox shell (via web console or SSH)
CHR License: CHR is free with a throughput limit of 1 Mbps per interface (free trial). For unlimited production use, a paid license from MikroTik is required.

Steps

  1. 1

    Download the CHR Image

    Download the CHR image in RAW format from the official MikroTik website. Open the Proxmox shell and run:

    # Download CHR image (replace version with the latest)
    cd /tmp
    wget https://download.mikrotik.com/routeros/7.15.3/chr-7.15.3.img.zip
    
    # Extract
    unzip chr-7.15.3.img.zip

    Check the latest version at mikrotik.com/download under the Cloud Hosted Router section.

  2. 2

    Create a New VM in Proxmox

    In the Proxmox web UI, click Create VM and fill in the following configuration:

    • General: Node, VM ID (e.g. 100), Name: CHR
    • OS: Do not use any media, Type: Linux, Version: 6.x - 2.6 Kernel
    • System: Leave as default (BIOS: SeaBIOS, SCSI Controller: VirtIO SCSI)
    • Disks: Delete the default disk (click the delete icon) — we'll import the disk from the CHR image
    • CPU: 1 socket, 1 core (can be increased as needed)
    • Memory: minimum 128 MB (recommended 256–512 MB)
    • Network: Bridge: vmbr0, Model: VirtIO (paravirtualized)

    Click Finish. Do not start the VM yet.

  3. 3

    Import the CHR Disk to the VM

    Back in the Proxmox shell, import the CHR image into Proxmox storage. Replace 100 with your VM ID and local-lvm with your storage name:

    qm importdisk 100 /tmp/chr-7.15.3.img local-lvm

    Wait for the import to complete. The disk will appear as an Unused Disk in the VM.

  4. 4

    Attach the Disk to the VM

    In the web UI, open the VM → Hardware. Double-click Unused Disk 0 and select:

    • Bus/Device: VirtIO Block → virtio0
    • Click Add
  5. 5

    Set Boot Order

    Go to VM → OptionsBoot Order. Enable virtio0 and make sure it's first in the boot order. Click OK.

  6. 6

    Start VM & Access Console

    Click Start on the VM, then open the Console. Wait for CHR to boot (usually 10–20 seconds).

    Login with:

    • Username: admin
    • Password: (empty, press Enter)
    Note: On first login, CHR will ask you to accept the End User License Agreement. Type y and press Enter.
  7. 7

    Basic IP Configuration

    Once logged into the RouterOS CLI, configure the IP address on the interface:

    # Check available interfaces
    /interface print
    
    # Set IP address (adjust to your network)
    /ip address add address=192.168.1.2/24 interface=ether1
    
    # Set default gateway
    /ip route add gateway=192.168.1.1
    
    # Set DNS
    /ip dns set servers=8.8.8.8,8.8.4.4
    
    # Test connectivity
    /ping 8.8.8.8 count=3
  8. 8

    Set Admin Password

    Change the default password immediately for security:

    /user set admin password=YourNewPassword123!
  9. 9

    Access via Winbox or Web UI

    Once the IP is configured, CHR can be accessed from the local network using:

    • Winbox: Download from mikrotik.com, connect to the CHR IP
    • Web UI: Open a browser to http://192.168.1.2
    • SSH: ssh admin@192.168.1.2

Additional Tips

Add a Network Interface (NIC) to the VM

To add a network interface, shut down the VM first, then go to Hardware → Add → Network Device. Each NIC added will appear as ether2, ether3, etc. in RouterOS.

Resize the CHR Disk

The default CHR disk is very small (~128 MB). To resize it (e.g. to 1 GB) from the Proxmox shell:

qm resize 100 virtio0 1G
Note: The CHR free license limits bandwidth to 1 Mbps. To activate the P1 trial (1 Gbps for 60 days), run /system license renew from inside CHR.