xiaomi Router AC2100 设置静态路由
本文永久链接: https://www.xtplayer.cn/xiaomi-router-ac2100-sets-up-static-routes/
结合上一篇文章 https://www.xtplayer.cn/raspberry-pi-is-configured-as-an-openvpn-client-to-set-up-an-external-route/ ,当配置好旁路由之后,可以在每个 pc 添加静态路由来实习正常访问 vpn 网络。但是有的设备可能不支持配置静态路由,这种情况下将无法访问 vpn 网络。
为了满足所有设备都可以访问 vpn 网络,我们可以在主路由器上添加一条静态路由,把 vpn 网络的下一跳地址设置为旁路由器 ip。
以下以小米路由器 AC2100 为例,因为 AC2100 通过 UI 界面不支持配置静态路由功能,因此我们需要先破解 ssh 登录,然后通过命令行添加静态路由。
获取 stok
浏览器访问路由器管理 ip 并登录,然后在浏览器地址栏中可以看到 stok 代码,stok= 之后 /web 之前的那一段。
⚠️ STOK 在每次登录时都会变化,拿到后尽快使用,不要关闭浏览器。
开启 SSH
将上面获取的 STOK 替换到下面链接中的 <STOK> 位置,然后完整复制到浏览器地址栏中打开。
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B |
打开后,浏览器页面应返回 {"code":0},表示命令执行成功
修改 root 密码
将上面获取的 STOK 替换到下面链接中的 <STOK> 位置,然后完整复制到浏览器地址栏中打开。
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B |
返回 {"code":0} 即成功,此时 SSH 密码已被设置为 admin
验证并连接 SSH
路由器自动重启:建议手动拔电重启一次,确保 SSH 服务完全启动
使用 SSH 客户端连接
Windows:推荐 PuTTY、MobaXterm、或直接用 PowerShell
Mac/Linux:终端直接执行
连接参数:
地址:192.168.31.1 |
测试命令 ssh root@192.168.31.1,输入密码后看到如下提示说明成功:
BusyBox v1.25.1 () built-in shell (ash) |
修改 root 用户密码
登录之后建议执行 passwd 命令修改 root 用户密码,输入 passwd 命令后,两次输入密码即可。
常见问题
| 问题 | 解决方法 |
|---|---|
返回 {"code":401} 或 {"code":1523} |
STOK 过期或无效,重新登录获取新的 STOK;也可能是固件版本不兼容,尝试降级 |
返回 404 |
链接复制不完整,检查是否有缺失 |
| 执行后 22 端口仍不通 | 重启路由器后再试;部分固件可能需要降级到 2.0.7 |
| 忘记密码 | 重新执行第三步的密码修改链接即可覆盖 |
操作提醒
- 整个过程不会清除已有配置,WiFi 名称和密码会保留
- 路由器重启后 SSH 权限不会丢失,可以长期使用
添加静态路由
执行 vi /etc/rc.local,添加如下配置
/sbin/route add -net <vpn-net> netmask <vpn-subnet> gw <gw-ip> |
修改防火墙配置
执行 vi /etc/config/firewall ,在最开始的 config defaults 中,将 REJECT 改为 ACCEPT,并且把 option drop_invalid 地址为 0,修改完成后重启路由器。
config defaults |

