1.开启路由器SSH功能

路由登录网页版,在常用设置-系统状态-升级检测处。

登录路由器后台

按F12,切换到控制台,输入一下代码回车,会提示你设置root密码,记住自己设置的密码。

function getSTOK() {
    let match = location.href.match(/;stok=(.*?)\//);
    if (!match) {
        return null;
    }
    return match[1];
}

function execute(stok, command) {
    command = encodeURIComponent(command);
    let path = `/cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A`;
    console.log(path);
    return fetch(new Request(location.origin + path));
}

function enableSSH() {
    stok = getSTOK();
    if (!stok) {
        console.error('stok not found in URL');
        return;
    }
    console.log(`stok = "${stok}"`);

    password = prompt('Input new SSH password');
    if (!password) {
        console.error('You must input password');
        return;
    }

    execute(stok, 
`
nvram set ssh_en=1
nvram commit
sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear
/etc/init.d/dropbear start
`
    )
        .then((response) => response.text())
        .then((text) => console.log(text));
    console.log('New SSH password: ' + password);
    execute(stok, `echo -e "${password}\\n${password}" | passwd root`)
        .then((response) => response.text())
        .then((text) => console.log(text));
}

enableSSH();

2.修改防火墙配置文件

用任意ssh工具连接,用户名:root,密码为上一步设置的密码。

登录ssh

接着使用 Vim 修改防火墙配置文件:

vim /etc/config/firewall

将文件中defaults 闭包下 disable_ipv6 的值改为 0zone 闭包下 forward 的值改为 ACCEPT

同时,在原有的Rule 中添加一个闭包,允许IPv6外网访问路由器下游设备:

config rule
        option name 'Allow-IPv6'
        option target 'ACCEPT'
        option family 'ipv6'
        list proto 'all'
        option src '*'
        option dest '*'

修改配置

终端执行命令,重启路由器防火墙:

/etc/init.d/firewall restart

原文:Redmi AC2100 路由器 官方固件允许IPv6外网访问下游设备 - wx2020 - 博客园 (cnblogs.com)

最后修改:2024 年 07 月 24 日
如果觉得我的文章对你有用,请随意赞赏