需要先开启SSH。

开启SSH、刷breed等参考:

https://github.com/AXFOX/openwrt-AC2100

关闭ipv6防火墙

重启后防火墙恢复。

ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD ACCEPT

安装mixbox工具箱

(对红米AC2100很鸡肋,没有USB和其他存储没啥用,空间也不够干什么。)

参考:https://www.wifilu.com/33.html

sh -c "$(curl -kfsSl https://cdn.jsdelivr.net/gh/monlor/mbfiles/install_ghcdn.sh)" && source /etc/profile &> /dev/null

解决ipv6防火墙重启后自启动的问题

编辑/etc/rc.local

vim /etc/rc.local

加入以下命令 (注意写在exit 0之前)

ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD ACCEPT

ipv6流量频频被阻2022年1月8日夜 更新

虽然理论上按照这么做ipv6流量应该没有受阻的理由了,但是实际上还是隔段时间时不时的发现防火墙又挡住了流量。(恩山的大佬也提到过这点,哪怕不重启,防火墙也会莫名其妙的恢复。)
于是我又想起来Linux的计划任务。可事实证明,我虽然control -e 加了一行十分钟执行一次指定脚本,问题依旧,甚至这两天手动执行都无法从外部通过ipv6访问内部的我家云设备。
我不明白为什么这样,忍了两天之后,今天又连上红米AC2100看了看。
先放几张截图和不同环境下访问的报错吧。
首先是手机开启LTE 网络使用via浏览器访问home.xfox.fun:88 ,报错:
ERR_CONNECTION_ABORTED
然后是直接访问[IPv6 address]:88 ,报错:
ERR_CONNECTION_REFUSED
前者我觉得没什么价值,但是后者明显是因为路由器防火墙把ipv6流量挡住了

开始认真检查路由器ipv6防火墙问题

先进/etc执行chmod 777 MyControl.sh一遍确保脚本权限没问题(因为我ls看的时候文件名是白色的,这权限貌似就不太对了吧?改过权限再ls看文件名已经变成绿色了。)
路由器shell截图_2022-01-08_23-33-40.png
然后我尝试手动执行了我自己写的脚本,然后发现有报错,这就很尴尬了。之前编写的时候,我还真的没测试一下能否运行,也许是宝塔用惯了,没有形成手动加上变量环境的习惯,所以,赶紧查了一下。通过env输出当前的变量环境信息(因为我手动直接执行命令就没报错)然后在文件顶部加上了:

#!/bin/ash                                                                        
PATH=/usr/sbin:/usr/bin:/sbin:/bin                                                
export PATH                                                                       

小米路由器可能为了节约硬件资源开销没用常见的sh,用的是ash。
修改后再次执行,依然是那个报错,那到底为啥报错呢?
看意思是太多连接,但是这个连接指什么?另外,看上去我还复制错了命令,开头少了个字母i,真是巨丢人。
ip6tables: Too many links.
我猜意思是环境变量太多了,所以我去手动翻腾目录看了看(没有whereis),这个命令的文件在/usr/sbin 所以我试着简单修改一下,删除:/sbin:/bin ,现在MyControl文件如下

#!/bin/ash
PATH=/usr/sbin:/usr/bin
export PATH
#Turn off ipv6 firewall
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD ACCEPT

修改后ECS 切到命令模式输入:wq 按下Enter保存。
再次运行,终于没报错了!
那么确定ipv6防火墙是有问题的,但是现在应该解决了
不过,我的笔记本连上家里的WIFI访问home.xfox.fun:88依旧:ERR_CONNECTION_TIMED_OUT,手机流量访问也还是ERR_CONNECTION_ABORTED 一定是还有其他问题!
截图_2022-01-09_00-22-03.png
此外,我发现ipv6测试站显示DNS有问题。
截图_2022-01-08_23-47-25.png
看上去路由器IPv6 DNS可能有问题所以,既然DNS有问题,那就试试不用DNS什么样。
直接通过IP:port访问设备,先是笔记本在内网通过公网ipv6地址访问。
访问成功,页面正常加载,手机LTE测试页面也正常加载。
再次尝试在手机端 domain:port访问,无论是LTE还是WLAN,结局一样ERR_CONNECTION_TIMED_OUT
我的手机已经开启了DOT,通过Termux ping6 无论是LTE还是WLAN都解析到了正确的ipv6地址,那么我的DDNS显然依旧正常工作,但是不论网络上前者还是后者ping 都没有收到回复。通过笔记本(Linux Mint20.4未开启DOT) ping6 也解析到了正确地址,但是也没有收到回复。
本地客户端设备不开ipv6 DNS解析正常,排除运营商DNS污染影响解析结果的情况,也排除路由器ipv6DNS异常
那为什么通过域名就无法访问呢?难道是GFW为了限制ipv6 web服务,直接把用域名访问的包抛掉了?

你的 DNS 服务器(可能由运营商提供)没有接入或没有配置 IPv6,将来这可能会妨碍你访问纯 IPv6 网站。

我忽然发现,无论我用本地宽带开启WLAN还是手机用LTE,你的 DNS 服务器(可能由运营商提供)没有接入或没有配置 IPv6,将来这可能会妨碍你访问纯 IPv6 网站。
这段文字在测试页面始终出现,而我很清楚记得之前我刚回家测试的时候结果是10项测试全部通过,根本就没报DNS的问题。
这么说本地运营商的ipv6 DNS现在真的有点问题?

奇怪的追踪记录

xfox@xfox-ThinkPad-E14-Gen-3~$ traceroute6 home.xfox.fun
traceroute to home.xfox.fun (2409:8a44:975:2360:a454:4bff:fecb:77f6) from 2409:8a44:976:9ac0::c4e, 30 hops max, 24 byte packets
 1  2409:8a44:976:9ac0::1 (2409:8a44:976:9ac0::1)  2.8312 ms  2.6231 ms  2.0860 ms
 2  2409:8088:0:801::2813 (2409:8088:0:801::2813)  5.0714 ms  11.4826 ms  9.7456 ms
 3  * * *
 4  * * *
 5  * * *
 6  * * *

下面就没有了,全都是*,我不理解这怎么回事。

连续两次重启我家云,手动执行DDNS脚本后web服务恢复正常了!2022年1月9日17:33:05补充

我刚才手动测试了一下,和昨天晚上结果一样不能访问。索性重启大法再试试。
SSH连上,ifconfig,我发现有三个长的很像的ipv6长ip,但是只有访问第一个才能访问到web页面。看上去是昨天晚上两次重启路由器造成的,不过这没关系,既然没有刷新,那把armbian也重启一下好了。(由于习惯性打开SSH执行最后一次执行的命令,所以重启了两次)然后ifconfig看看,这次是一短一长两个公网ipv6地址和一个fe80的内网地址了。然后手动执行一次DDNS脚本以确保解析到新的ip地址。
有意思的事情出现了!当我直接访问home.xfox.fun时,竟然打开了宝塔没有找到站点的默认页面,访问成功了?!(之前我在不同时间做过两次测试,最终认定不能使用domain直接访问,也就是80端口不能用,连接会被掐,但是这次莫名其妙的就又能用了?!)
不管怎么样,既然现在使用域名访问80端口的链接也不会被阻断,我就修改了宝塔配置默认使用80。

标签: none

添加新评论