|
楼主 |
发表于 2021-6-23 01:10
|
显示全部楼层
本帖最后由 aojie654 于 2023-1-11 10:12 编辑
搞定了,记录一下我踩的坑。
0. 最基础的,当然是要开启ssh访问了…… 这个论坛里面蛮多的,有能力的同学可以看看 @ae18791955 的帖子: 小米AX1800永久开启SSH,telnet,之后哪怕升级到 385都没问题,我就是这么干的。如果嫌麻烦,可以参考 @LonGDikE 的帖子:AX3600/AX1800/AX5/AC2100官方固件开启SSH方法[原创] 降级获取 ssh,之后在 /etc/hosts 屏蔽 api.miwifi.com,避免自动更新(来源:小米AX1800开ssh成功,但总自动升级,能固化ssh吗?):
然后运行这个命令,重启dns服务:
- /etc/init.d/dnsmasq restart
复制代码 后续修改hosts都可以直接在这个里面改,因为屏蔽了 api.miwifi.com 以后手机app也上不去了,而且也没电脑方便。重启完路由器 DNS 或许有些设备不会立即更新解析,断开网络重连就行。
1. 参考了 @waitingyyy 在帖子 AX1800 ipv6如何外网访问nas?求助 里面 #2 的回答,在 /etc/config/dhcp 文件里面, 找到以下内容:
- config dhcp 'lan'
- ...
- option dhcpv6 'server'
- ...
复制代码 修改成:
- config dhcp 'lan'
- ...
- option dhcpv6 'relay'
- ...
复制代码 "..."是被省略掉的,完全不用去看的内容,所以只用修改那一行内容就可以了。这个编辑动作是把 dhcpv6 修改成 relay 模式(中继模式),完成后重启路由器。重启完成后,浏览器访问 https://v6.ipv6-test.com/api/myip.php 看看有没有 ipv6地址,如果长时间没响应,访问失败了就是没配置好。这里一定要重启,我看到的现象是从UI开了ipv6以后如果不重启,防火墙里面不会有 "forwarding_rule" 这个配置;
2. 参考 @丰花 的帖子: ax1800设置ipv6,使下面的设置获得公网ipv6地址并能正常联网 , 在shell里面直接跑下面的命令,设置防火墙(ip6tables) 允许 22,80,443访问:
- ip6tables -I forwarding_rule -p tcp --dport 22 -j ACCEPT
- ip6tables -I forwarding_rule -p tcp --dport 80 -j ACCEPT
- ip6tables -I forwarding_rule -p tcp --dport 443 -j ACCEPT
复制代码 这几行命令的意思是,设置 "forwarding_rule" 这个规则允许 22, 80, 443 端口的外网访问并转发,所以如果要开放其他的端口改掉 --dport 后面的数字就行。类似,如果要允许udp流量,那就在 -p之后的 tcp 改成 udp。修改完成后,可以用下面的命令看一下效果:
- ip6tables --list forwarding_rule
复制代码 这个是没有设置允许规则的:
- Chain forwarding_rule (1 references)
- target prot opt source destination
复制代码 这个是设置了允许规则的:
- Chain forwarding_rule (1 references)
- target prot opt source destination
- ACCEPT tcp anywhere anywhere tcp dpt:21622
- ACCEPT tcp anywhere anywhere tcp dpt:3389
- ACCEPT tcp anywhere anywhere tcp dpt:https
- ACCEPT tcp anywhere anywhere tcp dpt:www
复制代码
3. 测试一下从外网能不能使用ipv6访问;w后面的1指的是1秒,可以调整,我觉得1秒够了。ipv6地址不用加方括号,直接帖进去就行。
4. 如果访问没问题的话,可以把上面的防火墙内容写到一个脚本里,比如 /bin/ia (ip6tables allow,名字自己起,别和系统命令重复就行):
- #!/bin/ash
- ip6tables -I forwarding_rule -p tcp --dport 22 -j ACCEPT
- ip6tables -I forwarding_rule -p tcp --dport 80 -j ACCEPT
- ip6tables -I forwarding_rule -p tcp --dport 443 -j ACCEPT
复制代码
5. 用 chmod 给脚本增加执行权限:
执行完以后,就可以运行 ia 手动配置防火墙了
6. 当然,最好的办法还是添加开机启动。在 /etc/rc.local 里面添加执行脚本的命令,实现开机启动:
7. 额外啰嗦一些。有时候可能会发现,哎呀,不小心端口加错了怎么办?很简单,删掉咯~ 用下面的命令:
- ip6tables -D forwarding_rule -p tcp --dport 80 -j ACCEPT
复制代码 有没有发现,无非就是吧 ip6tables -I 换成了 ip6tables -D, 就这么简单。同样,也可以用步骤 4 - 5 的办法写成脚本;
不知道论坛里会不会跟我一样基础不太好的同学在研究同样的东西,所以啰嗦了一些,不过对于这些内容我也是一知半解,只能说在我力所能及范围之内尽量说的详细一些,希望可以帮到其他同学,有错误的地方还希望各位大佬们指正。
最后,极其不建议开放非必要的端口,即使指定的端口没有提供服务!祝各位搞机顺利!
|
|