软件开发

随着IPV4的资源枯竭和IPV6的普及,通过IPV6在公网上暴露自家NAS成为更为更好的方式。
但是自家购买的 小米AX3000 官方固件固件 IPV6 相关的功能十分简陋,只有一个防火墙开关。如果单纯的关闭防火墙,势必会让局域网所有设备都暴露到公网中,十分危险。又不像高端型号(如小米AX9000)提供的 SSH 功能,引出了此文

本文使用 小米路由官方固件 实现自定义IPV6防火墙的高级功能

1.开启路由器的 SSH 服务

首先到 https://github.com/openwrt-xiaomi/xmir-patcher 下载最新的脚本,Windows 用户直接运行 run.bat 即可

确认 IP 设置正确后,选择 2 后按提示开始安装并设置密码

安装完成后即可通过命令 ssh -o HostKeyAlgorithms=+ssh-rsa root@miwifi.com 连接

2.放行特定设备的端口

SSH 进入小米官方固件,可以看到系统是由 OpenWRT 修改而来,所以放行端口的方式类似原版 OpenWRT, 打开配置文件 /etc/config/firewall 并添加如下内容

config rule
    option name 'Allow-NAS'
    list proto 'tcp'
    option src '*'
    option dest 'lan'
    list dest_ip '::设备的后缀/::ffff:ffff:ffff:ffff'
    option dest_port '端口号'
    option target 'ACCEPT'
    option family 'ipv6'
路由器下级设备某个IPV6后四位IP固定不变的设备,例如::11aa:22bb:33cc:44dd/::ffff:ffff:ffff:ffff,该设备11aa:22bb:33cc:44dd固定不变)

保存后运行 /etc/init.d/firewall restart 即可生效

3.动态设置 DNS 解析

这里使用了 docker 启动 DDNS 服务

docker run --restart always --name aliyun-ddns --network host \
  -e AKID -e AKSCT -e DOMAIN=域名 -e IPV6=1 -d chenhw2/aliyun-ddns-cli

4. 其他 SSH 管理

  • 自定义 hosts 配置

官方的自定义 hosts 功能通过修改文件 /etc/custom_hosts 实现

  • 配置 Dnsmasq 实现 DNS 泛解析

修改 /etc/dnsmasq.d/custom.conf 为如下内容

address=/hismarttv.com/127.0.0.1

保存后运行 /etc/init.d/dnsmasq restart 即可生效

  • 停用访客 WiFi
ifconfig wl3 down

评论

  1. sdutwsl sdutwsl
    Chrome 122 Windows

    默认密码是root

  2. akiboni akiboni
    Safari 17 IPhone

    非常感谢,找了好久ax3000开ssh

  3. Murasame Murasame
    Chrome 120 Windows

    感谢感谢

  4. kk kk
    Chrome 120 Windows

    有用~感谢

  5. muki muki
    QQ 6 Windows

    不明觉厉,哈哈\(^▽^)/!

This is just a placeholder img.