小米路由器3G硬件配置强于小米路由器4。路由3G的RAM是256MB(而路由4是128MB),而且多一个USB3.0。 也许是因为不支持USB,路由4根本不提供开发版。所以路由3G性价比和可玩性最高。
开发版为何使用?ROM小米路由器Web管理界面非常简单,基本上只有核心功能(但对大多数用户来说已经足够了)。爱折腾的用户略显不足。例如,我想添加一个启动脚本,或者我想在路由器上使用它tcpdump抓包,默认ROM无法实现。
而开发版ROM可以ssh登录路由器就像进入一个小路由器Linux系统,可控性不能同日而语。
当然,OpenWRT也是灵活强大的,3G也可以在上面刷。一方面,官方开发版之所以不选择,是因为它足够强大,两者相似(官方)ROM也是改自OpenWRT);另一方面是官方ROM支持手机管理,多了一个选择。例如,有一次我的动态域名更新失败,我通过手机界面远程找到了路由器IP。
下载开发版ROM从小米官网(http://www1.miwifi.com/miwifi_download.html)下载开发版ROM。
路由网2018年10月,开发版似乎低于稳定版。
刷机很多人都是用U盘刷机,其实这是不必要的。可以在网页的管理界面上刷机。点击右上角的系统升级,选择下载ROM,然后点击手动升级。
获取初始root密码下载开启ssh的工具(https://d.miwifi.com/rom/ssh)。这个页面也是获取的root密码界面。但前提是登录小米账号(通过手机客户端小米WiFi绑定/管理相应的路由器。
开启ssh则需要USB的支持了。根据官方说明,主要流程是:miwifi_ssh.bin复制到U盘根目录,关闭路由器插入U盘,按下reset键上电,黄灯闪烁后松开reset。
开启ssh路由器重启后,可以用这个密码登录路由器。
可在登录后使用passwd命令修改root的密码。路由知识
用密钥登录用ssh-copy-id建立密钥的信任关系可能会失败,因为dropbear和openssh密钥存储位置不同。所以需要手动添加。
PC端运行
scp ~/.ssh/id_rsa.pub root@10.7.3.1:/etc/dropbear/authorized_keys
下面的命令在路由器上重启ssh服务。
/etc/init.d/dropbear restart
再次登录。
文件系统登录路由器后,先看文件系统,合理使用。
可以看到:
/extdisks/sda1 对应于USB存储。因为我有NAS,再加上使用USB有可能影响2.4G WiFi,所以我不打算用路由器USB存储。/tmp它是一个内存虚拟文件系统,因此内容关闭/重启后会丢失;此外,/var是/tmp所以符号链接不会永久保存。/etc, /data, /userdisk 是同一块Flash,内容将永久保存。结合目录内容,/etc, /userdisk其实是/data的子目录。如果我们想保存永久性的话log,不像普通人Linux系统保存/系统保存/var/log里了,而/userdisk它看起来像小米路由器App我不想用它,所以,保存在/data/usr/log可能是合理的选择。
启动脚本/etc/rc.local可以使用,所以可以作为启动脚本的入口。脚本本身可以保存/etc目录或/data/usr/bin目录。
下面是我的//etc/rc.local。调用/路由网data/usr/bin我加了脚本。
# restore phy configspeed=$(uci -q get xiaoqiang.common.WAN_SPEED)[ -n \\"$speed\\" ]&& /usr/sbin/phyhelper swan \\"$speed\\"/data/usr/bin/log-ip.sh /data/usr/bin/ddns.shexit 0
log-ip.sh 用于记录每次启动拔号的记录IP地址,内容如下:
#!/bin/shlogdir=/data/usr/logtest -d $logdir || mkdir -p $logdir || exit 1addr=$(ip addr show pppoe-wan | grep -w inet | awk ' rint $2;}')echo \\"$(date ' %Y/%m/%d %a %H:%M:%S') - $addr\\" | tee -a $logdir/wanip.logdnsmasq本地名称分析
dnsmasq是小网络的全家桶。既是路由器DHCP服务器也可用于本地域名分析,甚至支持tftp。既是路由器DHCP服务器也可用于本地域名分析,甚至支持tftp。具体支持/不支持的特点可以通过版本信息看到。
它不支持DNS安全扩展暗示着它支持普通人DNS解析。当我想用名字访问局域网中的主机时,我需要使用本地域名服务器。
有些路由器,DHCP设定的名称将自动用于DNS解析。比如,
把pc1的IP设定为10.9.8.11pc2的IP自动分配为10.9.8.102在同一个网络中,通过名称pc1即可以访问10.9.8.主机11,通名pc2即可以访问10.9.8.102这台主机。
这个过程可以(部分)自动化。但是小米路由器里没有这样做。所以找个解决办法。
dnsmasq配置文件为/tmp/etc/dnsmasq.conf,位于/tmp目录表明它是一个动态生成的文件,配置文件内部也表明了这一点。
# auto-generated config file from /etc/config/dhcpconf-dir=/tmp/etc/dnsmasq.d/dhcp-authoritativeaddn-hosts=/tmp/hosts...
所以,源配置文件为/etc/config/dhcp。通过修改此文件,我们可以添加静态地址配置页配置界面也会同步更新)。我们可以此文件,我们可以添加静态地址配置(网页配置界面也将同步更新)。因为我需要在华硕路由器中加入几十个路由器DHCP静态配置重新设置在小米路由器中,然后用脚本进行格式转换,然后写入文件。
这个配置文件也可以看到/tmp/hosts域名分析将使用内部主机名。因此,解决方案是分析需要分析的主机名称及其IP添加此目录的地址。类似以下:
10.7.3.1 router10.7.3.2 nas10.7.3.3 nuc10.7.3.4 kodi10.7.3.6 3dprint10.7.3.7 printer10.7.3.8 radio
由于/tmp目录中的内容不是永久保存的,因此,有必要将主机列表放在/data/usr/etc目录在启动脚本中复制到/tmp/hosts目录。
小米路由器3G更完美。
小米路由器3G更完美。华硕路由器基本上超过了我以前使用的千元级别。