0%

斐讯 K2 刷机

记一次路由器刷机过程


▶ 前置条件

斐讯 K2 已刷 Breed,可以刷第三方固件。

拔电源 –> 按住 reset –> 插电源线 –> 5 秒后松开 reset,打开 192.168.1.1,进入 Breed

▶ 第三方固件

🤩 Padavan

Padavan 官方开源固件
灯大(荒野无灯)的 mod 版 Padavan
H 大(hiboy)的 mod 版 Padavan

使用说明:页面中搜索 「PSG1218」 -> 选择合适的固件下载即可)

参考:

🤩 OpenWrt

OpenWrt 官方网站

使用说明:Table of Hardware 页面中搜索「K2 PSG1218」 -> 选择合适的固件下载即可

下载网站:https://downloads.openwrt.org/

归档网站:https://archive.openwrt.org/

参考:

Lean 大的 OpenWrt

参考:

▶ 开启 Ipv6

路由器开启 Ipv6 一直没有成功过,试过 hiboy 的 Pavadan 固件,用过 6relayd 方法,失败了。后来转战用 OpenWrt 的固件开启 Ipv6,试过网上的 NAT66 方法,失败了。其中有一次成功了(参考睿思的教程),记录此次成功的操作步骤如下:

  • 网络环境:校园网(ipv4/ipv6)
  • 路由器设备:斐讯 K2
  • 固件:OpenWrt 官方固件 18.06.118.06.5(进去搜索「1218」)

🤩 方法一

  1. 先安装 kmod-ipt-nat6,opkg update && opkg install kmod-ipt-nat6
  2. 通过浏览器登录到 OpenWrt 的 LuCI 界面
  3. 去网络 –> 接口
  4. 将下面的 IPv6 ULA-Prefix 的第一个字母 f 改为 d
  5. 点击修改LAN口的配置,在 IPv6 Settings 选项卡那里,执行:
    • Router Advertisement-Service 选为「服务器模式」
    • 禁用 DHCPv6-Service 和 NDP-Proxy
    • 勾上 Always announce default router
  6. 然后写个 nat6.sh,每次开机都执行(加到/etc/rc.local中去就行),脚本内容如下:
1
2
3
4
5
6
7
8
9
#/bin/ash
line=0
while [ $line -eq 0 ]
do
sleep 10
line=`route -A inet6 | grep ::/0 | awk 'END{print NR}'`
done
ip6tables -t nat -I POSTROUTING -s `uci get network.globals.ula_prefix` -j MASQUERADE
route -A inet6 add 2000::/3 `route -A inet6 | grep ::/0 | awk 'NR==1{print "gw "$2" dev "$7}'`

参考:

🤩 方法二

  1. 安装 nat6 模块,opkg update && opkg install kmod-ipt-nat6
  2. 网络配置
1
2
3
4
uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed 's/^./d/')"
uci commit network
uci set dhcp.lan.ra_default='1'
uci commit dhcp
  1. 添加 nat6 脚本(将后续脚本内容填入 /etc/init.d/nat6 中)
1
2
touch /etc/init.d/nat6
chmod +x /etc/init.d/nat6
  1. 启用并重启
1
2
/etc/init.d/nat6 enable
reboot
  1. nat6 脚本内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh /etc/rc.common

START=75

res=`ip -6 route | grep "default from"`
gateway=`echo $res | awk '{print $5}'`
interface=`echo $res | awk '{print $7}'`

if [ "$ACTION" != ifup ]; then
ip -6 r add default via $gateway dev $interface
if !(ip6tables-save -t nat | grep -q "v6NAT"); then
ip6tables -t nat -A POSTROUTING -o $interface -m comment --comment "v6NAT" -j MASQUERADE
fi
else
ip6tables -t nat -D POSTROUTING -o $interface -m comment --comment "v6NAT" -j MASQUERADE
ip -6 r del default via $gateway dev $interface
fi

有一次按照方法一成功了,但是切换校园网账号后,联网设备又获取不到 ipv6 的地址了。

后来不断地结合方法一和方法二,成功了,步骤如上(方法一 + 方法二),删除线为两个方法结合时所删掉的步骤。成功后的界面如下:

系统信息 📌

picture miss

方法一的启动脚本 📌

picture miss

接口信息 📌

picture miss

LAN 口的 Ipv6 设置 📌

picture miss

😂 莫名其妙的又坏掉了

现象:

  • 似乎是每次 WAN 口的 IP 发生变化后,后端的设备就收不到 ipv6 的地址了(刚好解释了前面切换校园网账号导致联网设备又获取不到 ipv6 的地址)
  • ssh 进路由器,可以 ping 通 ipv6 的域名(ipv6.google.com)

解决办法:重启 nat6

通过浏览器登录到 OpenWrt 的 LuCI 界面 –> System –> Startup –> nat6 –> Restart

▶ 可供参考的文章

🤩 OpenWrt 相关

🤩 Padavan 相关