saber酱的抱枕

生于忧患,死于安乐

02/28
14:41
软件

某硬改路由器(QCA9533)IPv6 NAT折腾记录

是的,给自己宿舍买了个硬改的路由器(QCA9533,16M+64M),虽然觉得买贵了,算了

(硬改就是给路由器换了更大的闪存什么的)

 

还是要搞IPv6 NAT(不然花这么多心思买这种路由器干嘛……)

 

OpenWrt搞起,不提。(参见https://saber.love/mt7628an折腾记录.html

不对还是要提一句,要更改默认固件大小上限,其实网上很多地方都有。比如我这次就是在

image builder 的target\linux\ar71xx\image里面找到我对应的型号(文件夹里有很多文件,找。),然后把  $(Device/tplink-4mlzma)改成  $(Device/tplink-8mlzma)就是从4M改成了8M。(都是预定义的东西其实……无所谓了)

 

进行到添加网关这一步时却发现命令报错!说什么

ip: either "to" is duplicate, or "default" is garbage

感觉是参数过多?什么鬼???

 

首先是解决方案:将

ip -6 route add `ip -6 route show default|sed -e 's/from [^ ]* //'`

改为

ip -6 route add `ip -6 route show default|sed -e 's/from [^ ]* //'|sed '2,$d'`

 

即可。

 

原理:

 

首先看到``(英文状态下的顿号,即反引号)这里意思是将包住的部分的输出作为外面部分的命令的参数。意思就是把ip -6 route show default|sed -e 's/from [^ ]* //'这个命令返回的东西作为参数塞给ip -6 route add.

(sed是处理文本的命令,sed -e 's/from [^ ]* //主要是去掉from XXX这一截。)

可问题是,我这次的路由在ip -6 route show default时候有好几行返回,多出了两行

unreachable default dev lo  metric -1  error -128
unreachable default dev lo  metric -1  error -128

于是全部都作为参数交给了ip -6 route add 。报错妥妥的。实际有用的其实只有第一行(未列出)。

那么就只取第一行咯。

sed '2,$d就可以做到。

因此在命令里加入这一步处理即可。

 

(不懂bash搞这个很烦……)

 

回头再弄下如何自启动设置网关吧。

WTF!?这次按照之前github那个教程一做就成了自启动加网关,什么鬼!?

某硬改路由器(QCA9533)IPv6 NAT折腾记录