0%

使用 Nginx 搭建 RouterOS 升级服务器镜像,加速 ROS 在线升级

昨日家里网络故障,进排查发现是入户光纤损坏导致,今天师傅上门解决好后,登录主路由(RouterOS)检查拨号状态,发现有新版本可以升级,于是点击升级,可是由于某种不可描述的原因,升级下载缓慢,升级中断等等网络问题,于是使用 Nginx 反代了官方下载地址,升级体验嗖嗖的提升,冲冲冲!


修改 DNS 记录

  • 登录 ROS 管理页面,依次打开IP-DNS-Static-Add New,Name 填写upgrade.mikrotik.com,Address 填写服务器 IP,比如我的服务器 IP 是 1.1.1.1,这里的 Name 是升级服务器域名,Address 是我们自己的服务器,用来反代。

增加 DNS 记录.png

  • 这时候打开System-Packages-Check_For_Updates,点击更新会提示 ERROR: connection timed out,这是因为我们还没有配置服务端,只是完成了本地的工作

ERROR: connection timed out

配置服务端

  • 新增一个 Nginx 配置文件,upgrade.mikrotik.com.conf,配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
server_name upgrade.mikrotik.com;
location / {

proxy_redirect off;
proxy_pass http://upgrade.mikrotik.com/;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host upgrade.mikrotik.com;
}
}

保存文件,执行nginx -s reload.

至此,搭建完毕,就可以正常使用了。

简单说一下思路,由于官方并未提供自定义升级地址的选项,也就是说,默认的升级域名upgrade.mikrotik.com我们是没有办法修改的,按照常规的反代思路是行不通的,所以我们要将路由器的 DNS 解析劫持到我们自己的服务器,服务器收到请求后,判断 server_name,反代官方下载地址,这样就可以实现另类反代镜像搭建了,同样适用于其他需要镜像加速且没办法修改默认域名的情况。


验证效果

  • 再次点击更新,页面会显示 New version is available.证明我们这个服务搭建成功了。

New version is available

  • 然后点击 Download,下载速度嗖嗖提升,我们在服务端查看 Nginx 的 log,也可以看到请求日志,证明下载确实走了搭建的镜像服务器而不是官方默认服务器。

Nginx-log

Over~

Donate me a cup of coffee :)