OpenWRT On Mikrotik Metarouter
The idea of running a lite linux server on your Mikrotik router is quite appealing. I can think of many uses: Asterisk PBX, lite web server, haproxy load balancer.
Mikrotik was kind enough to compile and patch a version of OpenWRT, though there seems to be little documentation otherwise. I made a quick video on getting it loaded, changing the password and changing the IP/routing.
Configuration Files
Service Commands
I don’t have time for much these days, otherwise I would do some compiling and testing. If you guys have precompiled files you would like to send my way, or if you have a repository somewhere, please let me know!
4 Comments
Hi Greg, great video. I actually stumbled my way through that whole process about a year ago but this is a great resource for anyone just getting into the whole MetaRouter/OpenWRT thing. Quick question: I see how you set the root password in the OpenWRT console, what I’ve noticed is reopening the console through WinBox will still not prompt for the password. Only accessing externally through SSH will the password be prompted. Is there a way you know of to always require a password when opening the console in WinBox? thanks,
-erik
Leave a Comment
Donate
Blogroll
Contact Me
Contributors
Links
Categories
Pages
Archives
Search
Copyright © 2023 Your Name Here. All rights reserved.
Хостим персональный сайт на роутере
Пару недель назад я решил создать персональный сайт с несколькими страницами о себе, своих достижениях, целях и контактах. Разумеется, одним из этапов его создания стал вопрос выбора хостинга. Отдавать деньги за размещение сайта на чьём-то сервере мне не хотелось, да и оставлять свой домашний компьютер постоянно включенным тоже.
Поразмыслив, я вспомнил интересную статью о настройке сервера ip-телефонии Asterisk на маршрутизаторе Mikrotik. Так как у меня дома установлен роутер именно этого проиводителя, не раздумывая, я решил поднять на нём веб-сервер nginx.
Итак, мы имеем зарегистрированное доменное имя, «белый» статический ip-адрес и маршутизатор Mikrotik RB751G-2HnD c замечательной функцией MetaRouter. Начнём с выбора образа openwrt для нашего маршрутизатора. Зайдём на роутер через программу winbox и посмотрим на его архитектуру. У модели RB751G-2HnD архитектура mipbse:
Скачиваем с сайта последний образ openwrt для mipbse отсюда. Копируем на роутер в Files:
Импортируем образ openwrt в метароутер, и добавляем сетевой интерфейс для нашего виртуального образа:
/metarouter import-image file-name=openwrt-mr-mips-rootfs-31411-basic.tar.gz memory=24 enabled=yes /metarouter interface add virtual-machine=mr2 type=dynamic dynamic-bridge=bridge_local
Затем входим в консоль образа и первым делом устанавливаем пароль на пользователя root.
Редактируем настройки сети для получения сетевых реквизитов по dhcp от самого роутера:
vi /etc/config/network config interface lan option ifname eth0 option proto dhcp
/etc/init.d/network enable /etc/init.d/network restart
Мы получили сетевые реквизиты, и теперь у нас есть доступ к системе по ssh.
Редактируем конфигурационный файл пакет-менеджера для обновления репозитория и установки необходимых программ:
vi /etc/opkg.conf src/gz snapshots http://openwrt.wk.cz/trunk/mr-mips/packages dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay
opkg update opkg install nginx php5 php5-fastcgi
mv /etc/nginx/nginx.conf /etc/nginx/nginx_example.conf vi /etc/nginx/nginx.conf user nobody nogroup; worker_processes 1; error_log logs/error.log; events < worker_connections 1024; >http < include mime.types; index index.php index.html index.htm; default_type text/html; sendfile on; keepalive_timeout 65; gzip on; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_min_length 1k; server < listen 80; # слушающий порт server_name 172.16.0.12; # имя или ip-адрес сервера fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 32k; fastcgi_buffers 4 32k; fastcgi_busy_buffers_size 32k; fastcgi_temp_file_write_size 32k; client_body_timeout 10; client_header_timeout 10; send_timeout 60; output_buffers 1 32k; postpone_output 1460; root /srv/www; # Папка с файлами сайта location ~ \.php$ < fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; if (-f $request_filename) < fastcgi_pass 127.0.0.1:1026; >> > >
vi /etc/php.ini doc_root = "srv/www" cgi.force_redirect = 1 cgi.redirect_status_env = "yes";
И проверяем параметры fascgi:
vi /etc/nginx/fastcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;
/etc/init.d/nginx enable /etc/init.d/nginx start /etc/init.d/php5-fastcgi enable /etc/init.d/php5-fastcgi start
Копируем файлы сайта на сервер в указанную папку и проверяем работоспособность сайта внутри локальной сети.
Не забываем поменять http порт нашего роутера и пробросить 80 порт сервера во внешку:
/ip service set port=8080 2 disabled=yes # or no /ip firewall nat add chain=dstnat action=dst-nat dst-address=внешний_IP-адрес protocol=tcp dst-port=80 to-ports=80 to-addresses=172.16.0.12 in-interface=ether2 disabled=no # in-interface=WAN порт
На этом настройка закончена.
Заключение
Таким образом, мы получили условно (наличие роутера) беслпаный хостинг для персонального сайта с минимальным энергопотреблением и потреблением ресурсов роутера.
Linux on mikrotik metarouter
Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
Свежий образ для Metarouter
Доброго времени суток.
В наличии имеется RB2011UiAS-2HnD. Задача: используя функцию METARouter завести на вышеуказанной железке SoftEther VPN. Порывшись в гугле из рабочего нашел только вот эту сборку OpenWRT: http://openwrt.wk.cz/trunk/mr-mips/.
Проблема лишь в том, что последнее обновление там за 2015й год и многие внешние репозитории уже недоступны.
Вопрос: Есть ли что-то свежее найденного мной, что бы подходило для установки и запуска SoftEther?
Создание собственного образа OpenWRT
Если вас не устраивает наша готовая версия OpenWRT, вы можете создать и использовать свой собственный образ.
Первый шаг — установить svn и получить последний исходный код с openwrt.org.
.
c 742 строки сборки для микротиков
По той ссылке предлагает скачать какой-то elf — это скорее всего для замены самой RouterOS на OpenWRT.
Ссылка на SVN репозиторий на WIKI — битая.
Предполагаю, что моя цель — openwrt-imagebuilder-18.06.2-ar71xx-mikrotik.Linux-x86_64.tar.xz, верно?
Запускаю из папки билдера make menuconfig и получаю ошибку, что такой рулзы нет. Так же не совсем понятно почему отсутствует хоть какая-то документация по рулзам/таргетам в билдере.
Default:
Default Profile
Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport nand-utils
rb-nor-flash-16M:
MikroTik RouterBoard (16 MB SPI NOR)
Packages: rbcfg rssileds -nand-utils kmod-ledtrig-gpio
rb-nor-flash-16M-ac:
MikroTik RouterBoard (16 MB SPI NOR, 802.11ac)
Packages: rbcfg rssileds -nand-utils kmod-ledtrig-gpio kmod-ath10k ath10k-firmware-qca988x ath10k-firmware-qca9887 kmod-usb-ehci
nand-64m:
MikroTik RouterBoard (64 MB NAND)
Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
nand-large:
MikroTik RouterBoard (>= 128 MB NAND)
Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
nand-large-ac:
MikroTik RouterBoard (>= 128 MB NAND, 802.11ac)
Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
Linux on mikrotik metarouter
Im looking for a linux distro that can be run via metarouter, that is: a MetaRouter that give a standard linux prompt when connected to via SSH.
I need the ‘ping’ command to work on this metaRouter instance, nothing more. This may seem like an unusual request/question, however my goal is to use Paessler’s PRTG (snmp graphing/monitoring program) remote ping «sensor» FROM various routerboards i have on my WISP and otherwise Mikrotik network.
PRTG uses SSH to connect to a linux machine/server, then issues a ping command via that SSH connection and graphs/records the results of that ping command. The idea being, every 5 minutes or so, PRTG can ssh into one of my routerboards and PING a PtP mikrotik wireless link, and graph those results so i can monitor/graph the latency/PacketLoss of my WIFI links, among other things i can monitor/graph via this method.
When you run PING on routerOS the results can not be read by PRTG as its looking to parse the data in the normal linux PING format, IE:
~]# ping google.com . --- google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 1.123/1.283/1.444/0.164 ms
>ping google.com . sent=2 received=2 packet-loss=0% min-rtt=23ms avg-rtt=23ms max-rtt=24ms
which accomplishes my goal, however that requires the KVM / x86 virtualization of RouterOS which only runs on x86 hardware, not on RouterBoards.
Does anyone know of a «normal» Linux Distro that will run / can run on Routerboard hardware via metaROUTER («normal» meaning not a router linux like DD-wrt or openWRT or RouterOS ) ?
To be clear again my only goal is to SSH into a metaROUTER instance and have the ‘ping’ command work and return standard linux PING results such as below.