Перед созданием контейнера необходимо включить поддержку контейнеров на MikroTik.
Процедура активации подробно описана в данной статье.
Создание виртуального интерфейса
/interface/veth/add name=xray address=10.10.4.2/24 gateway=10.10.4.1 /interface/bridge/port/add bridge=container-bridge interface=xray
Создание контейнера
/container/add remote-image=ruiiru/xray-server:latest interface=xray
Запускаем контейнер:
/container/start number=0
Подключаемся к shell контейнера:
/container/shell 0
Генерация идентификаторов и ключей
Генерируем UUID (идентификатор пользователя):
/usr/bin/xray uuid
Генерируем приватный и публичный ключи сервера:
/usr/bin/xray x25519
PrivateKey → приватный ключ сервера (reality privateKey)
Password → публичный ключ клиента

Создание конфигурационного файла (на ПК)
config.json
- "id" — ранее сгенерированный UUID
- "dest" — домен маскировки с указанием порта
:443 - "serverNames" — тот же домен маскировки
- "privateKey" — приватный ключ сервера
{
"log": {
"loglevel": "info"
},
"inbounds": [
{
"port": 443,
"protocol": "vless",
"tag": "reality-in",
"settings": {
"clients": [
{
"id": "ваш_UUID",
"email": "user1",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "домен_маскировки:443",
"xver": 0,
"serverNames": [
"домен_маскировки"
],
"privateKey": "ваш_приватный_ключ",
"shortIds": [""]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
],
"routing": {
"rules": [
{
"type": "field",
"protocol": "bittorrent",
"outboundTag": "block"
}
],
"domainStrategy": "IPIfNonMatch"
}
}
Загрузка конфигурации на MikroTik
/file/add type=directory name=xray_mnt
Перемещаем файл config.json в созданный каталог:

Монтирование конфигурации
Создаём точку монтирования:
/container/mounts/add src=/xray_mnt/config.json dst=/etc/xray/config.json name=config.json
Останавливаем контейнер:
/container/stop number=0
Монтируем файл конфигурации:
/container/set mounts=config.json numbers=0
Включаем автозапуск контейнера:
/container/set start-on-boot=yes numbers=0
Запускаем контейнер:
/container/start number=0

Настройка сетевых правил
Создаём список интерфейсов WAN:
/interface/list/add name=wan /interface/list/member/add interface=ether1 list=wan
Настройка проброса порта и NAT:
/ip/firewall/nat/add action=dst-nat chain=dstnat comment=xray dst-address-type=local dst-port=443 in-interface-list=wan protocol=tcp to-addresses=10.10.4.2 /ip/firewall/nat/add action=masquerade chain=srcnat out-interface-list=wan src-address=10.10.4.0/24
Создание ссылки для подключения клиента
vless://ваш_UUID@IP_адрес_вашего_сервера:443/?encryption=none&type=tcp&sni=домен_маскировки&fp=chrome&security=reality&alpn=h2&flow=xtls-rprx-vision&pbk=Password_публичный_ключ&packetEncoding=xudp#My_Vless
Ссылку можно передать пользователю и импортировать в клиентское приложение из буфера обмена.
Рекомендуемое клиентское ПО
Happ
https://www.happ.su/
Hiddify-Next
https://github.com/hiddify/hiddify-app/releases
NekoBox (альтернатива)
https://github.com/MatsuriDayo/NekoBoxForAndroid/releases
Внимание: версия в Google Play является поддельной.
TAGS: установка, настройка Xray, VLESS, Reality, MikroTik, CHR, контейнеры, Docker