# Install MikroTik RouterOS (CHR) on a virtual server

Installation of Mikrotik CHR on our cloud infrastructure is possible for any virtual server tariff, including the minimum one with characteristics of 1 CPU / 2 RAM / 30 GB NVMe

*This article will cover an example of manual CHR RouterOS installation using a virtual server based on the SWEs-1 tariff*

To start installing MikroTik CHR, you will need to order a virtual server in our personal cabinet:

{% hint style="info" %}
We recommend to familiarize yourself with the possibilities of your personal account at <https://wiki.aeza.net/cp/videoznakomstvo-s-lichnym-kabinetom>
{% endhint %}

A SWEs-1 tariff server will be deployed as a test server in the location Sweden (Stockholm).

When ordering the service, it is also necessary to select the CentOS 7 operating system, in which the work on the further deployment of the CHR image will take place.

<figure><img src="/files/wSjBeFKR6oKi4P6oCmJ4" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/WDZzFEhp8skiS4QUamBi" alt=""><figcaption></figcaption></figure>

After ordering, the server will be activated within 120 seconds, then you can proceed to install MikroTik CHR according to the following instructions:

1. Connect to the server via SSH protocol using the connection data received by e-mail during activation or specified on the service page.

{% hint style="info" %}
We recommend reading the connection instructions

<https://wiki.aeza.net/instrukcii-dlya-novichkov-windows-linux/kak-podklyuchitsya-po-ssh-i-sftp>
{% endhint %}

2. Download the required version of MikroTik CHR to the server from the official website at the link <https://mikrotik.com/download> (in the example we will consider the latest currently stable version 7.8):

{% hint style="warning" %}
Caution: It is required to unload the CHR edition labeled as "Raw disk image"
{% endhint %}

* To do this, copy the link to the disk image from the site and get a direct link like <https://download.mikrotik.com/routeros/7.8/chr-7.8.img.zip>

<figure><img src="/files/Xq9OqpRTFM6K4xeRYnSZ" alt=""><figcaption></figcaption></figure>

* Next, upload the image to the server using the command (replace in the command with the copied link):

  ```bash
  curl <LINK> --output chr.img.zip
  ```

3. After downloading the archived image to the server, unpack it with the command:

   <pre class="language-bash"><code class="lang-bash"><strong>gunzip -c chr.img.zip > chr.img
   </strong></code></pre>
4. Then we will write the unpacked image to the virtual disk of the server using the "dd" utility:

   <pre class="language-bash"><code class="lang-bash"><strong>dd if=chr.img of=/dev/vda bs=4M oflag=sync
   </strong></code></pre>
5. The image has been successfully written to disk, all that remains is to reboot the server to initialize the MikroTik CHR with commands:

   ```bash
   echo 1 > /proc/sys/kernel/sysrq
   echo b > /proc/sysrq-trigger
   ```

After executing the above commands, the MikroTik CHR OS will start running on your server.

The system is almost ready to use out of the box, but still requires some customization, such as setting the administrator password and initial network configuration. These settings are discussed below:

1. To access the system before the network was configured, let's use the VMmanager control panel and VNC console:

<figure><img src="/files/n6H01mn1OmjXEP6ak5mm" alt=""><figcaption><p>Go to VMmanager from the page: https://my.aeza.net/services</p></figcaption></figure>

<figure><img src="/files/odw54R6zKXQFi7CXDfv6" alt=""><figcaption><p>Goto the VNC console from the VMmanager panel</p></figcaption></figure>

2. In the VNC console, we will be greeted with a login prompt:

   <figure><img src="/files/mmT7f60CFokBNZTeKHiQ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Let's use standard data for login:&#x20;

*Login: admin*&#x20;

*Password: no password (empty by default)*
{% endhint %}

After successful login, the system will offer to read the software license. You should accept the offer by pressing the "Y" key or refuse by pressing the "N" key.

Next, the system will ask you to change the default **admin** password:

<figure><img src="/files/grQLgMxLbf3I3TfJnFix" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
It is recommended to use randomly generated passwords of at least 8 characters to protect the server from unauthorized access.
{% endhint %}

3. After the superuser password has been changed, we can start configuring the network. All required network parameters (IP address, gateway and mask) are specified in the personal account on the service page (in the "IP Addresses" subsection), as well as in the VMmanager PU (in the "IP Addresses" section):

<figure><img src="/files/K6RWPpcgyB11rCvbs1Sc" alt=""><figcaption></figcaption></figure>

&#x20;We configure the network as follows:

```markup
/ip address add address=<IPv4>/32 network=<Gateway> broadcast=<IPv4> interface=ether1
/ip route add dst-address=0.0.0.0/0 gateway=<Gateway>
/ip dns set servers=1.1.1.1,8.8.8.8
```

{% hint style="info" %}
\<IPv4> - IPv4 address of your server

\<Gateway> - Server gateway (default is 10.0.0.1)
{% endhint %}

Let's check the correctness of the configuration using the ping utility:

<figure><img src="/files/m15Hf7mpTERZUarOLPA1" alt=""><figcaption></figcaption></figure>

Here we can see that access to the external network is present and the requested resource responds to echo-requests.

Done. The MikroTik CHR image is deployed on the virtual server and is fully ready for use.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aeza.gitbook.io/aezawiki/install-mikrotik-routeros-chr-on-a-virtual-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
