最近家里宽带提速到千兆,于是入手了小米的AX9000 WIFI6路由。
小米官方提供了ax9000的开发版.可以安装Docker了。
安装Docker能满足大家基本上所有的功能需求,且因为Docker本身类似沙盒,即便乱搞也不会让机器和小米的系统出现问题,所以强烈建议只是想给路由器增加功能的用户直接使用Docker而不是破解SSH.
准备工作
1.AX9000路由器一台,并升级到官方的开发版固件.
2.大于32GB可用空间的U盘或移动硬盘一个,这个需要长期插在路由器上.(你可以准备一个大的硬盘盒,直接用docker建一个nas系统,以前小米不支持的远程下载什么的,通通可以实现)
可能需要的工具:
固件miwifi_ra70_all_develop_1.0.140
分区工具DiskGenius
教程内均有下载地址,都是免费的
首先升级路由器到Ax9000的开发版本,固件下载地址:官方下载
下载好固件后,打开192.168.31.1 或者http://miwifi.com进入到路由器后台
在常用设置 系统状态里面 选择手动升级 然后选择miwifi_ra70_all_develop_1.0.140.bin这个固件,升级完成后,系统即变成开发者版本,版本号为1.0.140
接下来,把U盘或移动硬盘修改为linux的分区格式ext4
就是以ext4的格式,格式化U盘或移动硬盘,windows默认不支持ext4格式的格式化,所以我们需要下载一个分区工具,这里推荐使用DiskGenius的免费版,你有其它支持ext4的分区工具当然也行.
我们将U盘插入电脑,然后运行DiskGenius这个软件.右键点击磁盘,右键菜单弹出后,选择 格式化当前分区.然后如图所示,选择文件系统Ext4,然后点击格式化即可.
随后把ext4格式的U盘插入路由器,再次登录后台192.168.31.1,会发现高级设置里面多了一个DOCKER,点击它.
直接选择安装Docker即可,这时路由器会自己下载并安装好Docker,Docker会有独立的WEB后台.
提示安装成功后点确定即可.
然后点击安装第三方管理,因为小米没有提供ssh,所以如果不安装第三方管理的话,你实际上是用不了这个Docker的.即没有取得root的用户,只能通过第三方管理,也就是这个Portainer面板,来使用和管理.
安装好第三方管理后,点击管理Docker,或者访问192.168.31.1:9001
来登录Portainer管理Docker以及添加应用
默认账户密码是admin
进去后选择第一个 Mange the local Docker environment 即单机模式运行portainer,然后全部默认设置来到主界面.
通过+Add container 来添加功能
这里中文翻译是个坑,如果你用了中文翻译这里应该是叫 添加容器.
而图中所有的Image实际上是镜像的意思,你可以理解为一个封装好的Docker应用环境.
Docker本身是一个类似沙盒的系统,发明的目的就是为了将应用和环境直接打包,让用户复制镜像就直接可以使用,而不用再重新配置各种运行环境什么的.说人话就是解决,为什么有些电脑上可以用,有些电脑上不能用的问题.也因此Docker你即便乱搞,都不会对ax9000本身造成影响. 默认的portainer这个容器,是底层容器,每添加一个容器的话,新的容器环境,会基于之前的容器.比如portainer安装了golang这个环境,那么后续添加的所有容器,都会有golang这个环境.说人话就是层层套娃.
所以实际Docker玩起来很简单,so easy.就是点添加容器,就行了,如果你要用一些自己下载的镜像.
那么点击左边的Images,中文是翻译是图片(错误翻译),这里可以上传自定义镜像.然后再来通过+Add container 来添加容器运行它.
+Add container 添加容器界面如下
这里只有3处需要注意的
首先Name 你自己写就行了. 然后Image这里,需要填入镜像在http://hub.docker.com中的真实名字,大部分就是标题,少部分不一样.你可以点击Image这里最右边的Search,访问http://hub.docker.com查看全部的应用(镜像),也可以浏览器里面打开这个网址.
然后找到你要的镜像,比如广告拦截(我这里以直接用浏览器打开为例)
打开后 直接在红框这里随便输入内容就可以查看仓库,不需要注册.注册的好处就是每天可以无限次下载镜像.不注册的话每天100次也完全够用了.
我这里以广告拦截为例,就搜索adguard
然后需要记住 小米ax9000 系统是基于openwrt定制的系统,属于Linux,然后高通的CPU是arm64架构.
所以要有Linux和arm64这两个标签的应用(镜像),才能正常使用.
我们点击第一个 adguardhome,然后如下图
图中黄色框部分,就是其真实的名称. 也就是docker pull 后面的部分.
我们复制这个,然后粘贴到新建容器的 image中
因为是别人的图片,所以图片只供演示.
然后always pull the image这个选项(翻译的话叫总是拉取图片),如果你本地没有这个镜像的话请选中,他会自动从仓库里面拉取最新版本.如果你本地已经有这个镜像了,或者是你本地上传的镜像,那么就不要选中,这样就是使用本地的版本
重点来了,Pulish all exposed network prots to random host ports这个选择默认是关闭的,一定要启用.
因为小米AX9000不支持vlan,而安装的应用默认都是172.17.0.0/32的网段,所以必须通过这个将对外端口随机映射到本地端口,来实现其访问.
比如adguardhome 默认是打开3000端口来安装和管理它,而默认应用的IP端是172,所以它的管理地址会是172.17.0.5:3000,而AX9000的Docker的宿主IP是192.168.31.1.因此大家没办法访问172.17.0.5,所以需要这个功能,来给192.168.31.1随机分配一个端口,比如37111,然后访问192.168.31.1:37111就等于访问172.17.0.5:3000
其它设置一般情况下就不用管了(有部分应用需要分配挂载点什么的,类似磁盘位置,按照教程配置就行)
点击最下面的Deploy the container(创建镜像)等待就行了,它会自行下载,然后安装并运行.
随后,你的Container list(容器)界面就会多一个新的容器,现在running就是在运行(中文翻译是跑步)
我这里图片又是别人的.不过不影响讲解
红色框部分,显示的端口映射,格式是 本机端口:映射端口
你可以粗浅的理解为,可以通过访问192.168.31.1:本机端口 访问应用对应的映射端口 比如8001:8000
就是访问192.168.31.1:8001 实际是访问172.17.0.1:8000 访问192.168.31.1:9001实际上是访问172.17.0.1:9000
Docker里面的所有ip都是虚拟的172.17开头
所以你装了任何应用,都在可以这里看它从哪里进行管理.
如果他有一堆端口,那么你可以查看日志
点击这个图表就是查看日志.
如果是安装adguard,日志会是这样:
这里表示,他的管理后台是172.17.0.5:3000,所以我们只需要找到路由器 是用哪个端口映射的3000,然后访问就行了.
教程至此结束,祝大家玩机愉快.
因为政策原因,我知道大家好奇某些应用想去外面的世界看看,如果找不到应用的话,可以参考openwrt的服务名搜索一下,只要有linux arm64标签就可以用.
然后至于某C开头的科学类探索楼梯应用,百度也有专门的docker安装教程.
搜索"docker 安装 c的全名",即可.一般什么NAS的docker和别的路由器的docker和小米这个是兼容的.
如果同为高通处理器,更是可以直接用!
没想到博主也是个爱折腾的人
可以在 docker里安装博客,然后绑定域名 外网访问吗?
非常想知道这个 。。。
@老戴
固定ip可以
自己倒是在学校整了个工控机做软路由,现在一直用的还不错。
2023年新年快乐
我有个linksys的路由器,一直想折腾下,都下不了手。
看着不错,我去试试!
1G内存太小了吧