#剁主计划-上海#PHICOMM 斐讯 K3 刷 LEDE桥接完美实现上海电信4K IPTV+光网电话
背景
家里目前用的路由器网件WNDR3700v4四年前购于新蛋,双频无线,全千兆网口,刷了OpenWrt之后各种折腾但稳定性不差。然而作为一个7x24小运行的电子设备,四年其实已经算是中老年了。联想到之前一位同事说过,一般的WiFi芯片设计寿命也就四五年,所以我就寻思着该换一台更强劲的路由器了。
四年前新蛋还是知名电商,如今早已很难见到它的踪影。重置密码之后才翻出来当年的订单,我一直以为200+买的这个路由器,没想到居然要349这么多……
不过现在回头来看,这台路由器总体来说没有让我失望,应该算是物有所值。当初主要看中它可以刷第三方固件,并且网口全千兆,这两个优势保留至今,依然不算落伍。其余硬件配置当然早已跟不上主流产品,稍微多装一些插件都担心CPU超负荷。
官方的固件基本上没怎么用过,很长一段时间用的是DD-WRT,后来接触了OpenWrt发现我还是喜欢自己慢慢折腾,不喜欢那种“集大成”的东西。这也为后面新路由器的固件选择确定了方向。下图是路由器目前的状态,15年发布的这个Chaos Calmer 15.05几乎没有什么bug,有一次自己手贱把/etc/config/network删了,进不去路由器但又不想花时间把大量配置重新来过,然后知道了OpenWrt还有一个强大的Failsafe模式,折腾了一会儿还是把配置文件都导出了,从此对OpenWrt好感倍增。
既然确定了要换个路由器,换哪一款呢?回首2017年,最热的路由器非斐讯K3莫属。至于K3C以及其它更低端的产品,还是算了。此处要感谢上海分剁(1群)的值友-以梦喂马-友情价提供的K3,来不及刮掉K码就给我寄过来了。正好之前一直想写一篇关于上海电信光网宽带桥接实现4K IPTV任意口连接的原创(方法都是大神提供的,只是想整理一篇简洁易操作的步骤出来),于是就有了本篇原创。
外观
K3的晒单本站不少,所以就从简了。整体来说,K3的外观还算蛮有现代感。实际银色部分塑料感有一点的,毕竟醉翁之意不在酒,这个路由器跟1999是没有太大关联的,也就值上面新蛋订单截图中的成本价吧。
K3背部只有4个网口,1个WAN加上3个LAN,有点少,不够用,家里两路IPTV就要占用两个LAN口了。然后USB 3.0接口还算良心,虽然我现在用NAS了这个USB口也可有可无。
坦白说在无线干扰日益严重的今天,留3个LAN口不像一个高端产品的作风,四年前的WNDR3700v4都比这良心。所以可能还得花100大洋去买个小型交换机。
整个路由器并没有WNDR3700v4那种亮闪闪的LED信号灯,只有顶部的屏幕和3个触摸键,这点设计我还是蛮喜欢的——WNDR3700v4那一排亮闪闪的灯7x24在闪我也没去看过它代表什么意思。
电源适配器有点大,全功率48W,有人实测待机功率没这么厉害,我只想说这个适配器有点占地方。
插头采用折叠设计,如果不是插孔朝上,其它角度都有点考验插孔的松紧程度。这么大个子分量不轻,有插头松动的风险。
除了路由器本体、电源适配器以外,就只有一张黑色的快速指南,连网线都没有配一根。还是应了那句话,它就不是真心做路由器的。
K3到手之后我才了解到,这款硬件配置强劲的路由器,由于厂商不是真心做路由器的缘故,有以下3个问题。
散热问题,整体散热设计不佳,很多人拆机装风扇改善
三星闪存坏块问题,用三星闪存的刷梅林之后有很大概率碰到坏块,且坏块会增多
漏油问题,听说它用着用着就漏油,很搞笑但也很真实
实测我拿到的这台也是三星闪存,好在我不刷梅林,至于散热漏油什么的,我懒得去管,用了再说。
刷机
K3出来之后第一版第三方固件好像不能完美适配屏幕,后来能完美适配屏幕的似乎就是LEDE,而LEDE我虽然没用过,但它和OpenWrt本是一家,而且最近OpenWrt又把LEDE合并了,所以从习惯的角度我肯定会选择刷LEDE,至于大名鼎鼎的梅林,一直被安利,从未想尝试,我还是喜欢自己慢慢折腾。
先来介绍一下本次刷机的环境及其它工具:
K3:原厂固件版本V21.5.39.260
Windows:Win7 64位英文企业版
RoutAckProV1B2:用来激活260版本的telnet
putty:免费小巧的SSH/telnet工具,必须用中文版,英文版会显示乱码
官改root固件:K3_V21.5.37.246_tb.bin,通过它的toolbox(tb)在线刷LEDE固件
LEDE固件:无(上述tb提供在线刷LEDE固件功能,无需提前下载)
第一步 打开telnet
K3开机之后,电脑连接到K3的任意LAN口,IP的获取方式用自动获取,这样电脑就会获得一个192.168.2.x这样的地址。然后运行RoutAckProV1B2工具,依次点击“打开telnet”、“设置永久标志”这两个按钮。正常情况下得到的回显信息应该分别是“打开Telnet完成”和“设置永久标志完成”。
为了确认telnet已永久打开,运行putty程序,输入K3的IP地址192.168.2.1,端口22,连接类型选择Telnet。连接之后输入以下命令。正常情况下应该是回显“telnetd default on”。设置永久标志不是必须的,但打开telnet是必须的,否则不能进行下一步。
telnetd_startup show
第二步 备份当前固件
准备一个U盘,文件系统格式化成FAT32或exFAT,空间留200M就够了。把上述K3_V21.5.37.246_tb.bin复制到U盘里面,再把U盘连接到路由器的USB接口。按下Win + R组合键打开运行对话框,输入“192.168.2.1”并回车(192前面有两个半角的反斜杠,提交的时候被过滤了)。 正常情况下会显示一个共享文件夹sda1或者sda2,打开文件夹会看到之前复制进去的K3_V21.5.37.246_tb.bin。如果无法打开共享,请检查防火墙设置,或者临时关闭防火墙。
接着打开putty程序,还是用Telnet的方式连接到K3,IP地址为192.168.2.1,端口22。连接之后输入以下命令查看一下能否访问K3_V21.5.37.246_tb.bin。如果你之前看到的共享文件夹是sda2,则把命令中的sda1替换成sda2。正常情况ls命令的回显会包含K3_V21.5.37.246_tb.bin。
cd /tmp/share/sda1
ls
然后再依次输入以下3条命令进行主要分区的备份。最后一条命令可能耗时相对久一些,耐心等待一下。备份虽然不是必须的,但还是很有必要,万一刷机过程中发生什么异常,备份可以用来救砖。
cat /dev/mtdblock0 > boot.bin
cat /dev/mtdblock5 > dev_info.bin
cat /dev/mtdblock6 > rom.bin
第三步 刷入官改root固件
接着先前的操作步骤,在putty里面继续输入以下命令。正常情况ls命令的回显会包含K3_V21.5.37.246_tb.bin,此处同样注意sda1是前面看到的共享文件夹名称,实际输入命令的时候注意替换。
cd /tmp
cp /tmp/share/sda1/K3_V21.5.37.246_tb.bin ./
ls
如果一切正常,就可以开始刷入固件了,使用以下命令:
cat K3_V21.5.37.246_tb.bin > /dev/mtdblock6 && reboot
刷入固件需要一两分钟时间,最后看到“reboot: rmmod dnd failed: No such file or directory”就表示固件刷入完成了。接下来路由器会自动重启,同样耐心等待一下。
路由器重启完成之后,在浏览器输入192.168.2.1就可以访问路由器的管理界面。设置一个管理员密码,后面会用到。其余部分随便设置不设置,反正后面还要继续刷LEDE的。但是要保证K3可以访问外网,有两种方式可以实现K3访问外网,要么把K3的WAN口连接到任意能上网的路由器的LAN口,要么把K3的WAN口设置成PPPoE拨号直接上网。
第四步 刷入LEDE固件
前面提到,刷机过程中使用的putty必须是中文版,否则在这一步中显示乱码无法继续。另外,继续之前确保K3已连上互联网。运行中文版的putty,连接到192.168.2.1,端口22,连接类型是SSH(注意不再是Telnet)。弹出的“安全警告”对话框随便选择。然后在putty窗口中输入用户名admin,密码则是前面设置的管理员密码。如果密码不对,重启一次路由器再试。
然后输入命令tb打开online toolbox,正常情况下会显示一个中文的toolbox菜单。
tb
输入5并回车,选择“刷机&还原”。
5
然后输入1并回车,选择“OpenWrt & LEDE 固件”。
1
然后就是选择不同的移植版固件了,我这里纠结了一下之后最终选择了lean的固件。也就是输入2再回车。
2
然后在“输入y确认 [y/n]”后面输入y并回车。接着开始自动下载固件并刷入,全程无需其它操作,耐心等待即可。
y
正常情况下LEDE刷入就完成了。用浏览器打开192.168.1.1,用户名root,密码password,登陆之后即可以看到K3已成功运行LEDE。
有兴趣的可以在LEDE里面查看一下闪存是否来自三星。打开putty,用SSH连接到192.168.1.1,用户名密码跟上一步一致。登陆之后输入以下命令查看闪存品牌。如果看到“Samsung NAND”那么就是中招了……
dmesg | grep nand
配置4K IPTV
刷机完成之后,接着配置4K IPTV,简单来说,一共3步。第一步是以管理员身份登陆光猫,设置桥接,第二步添加VLAN,第三步安装dnsmasq并配置。
设置桥接
以管理员telecomadmin的身份登陆到光猫的管理界面。这个管理员的密码一般可以找帮你们装宽带的电信小哥要,或者也可以打10000号查询,就说要设置桥接,需要管理员密码。当然桥接之后你还需要PPPoE拨号的用户名和密码,可以一并找电信小哥要。
此处以中兴F450A光猫为例,登陆之后依次点击“网络”、“网络设置”,找到连接名称中带“INTERNET”字样的连接,把它删除,然后在同界面选择“新建WAN连接”,连接模式选择“桥接”,IP模式选择“IPv4”,下方所有多选框都不要选,保存即可。
网上盛传的很多教程里还有关于VLAN的设置,但我实测下来不需要其它任何设置,光猫部分结束。
然后把K3的WAN口连接到光猫的任意网口,如果你的光猫不是全千兆网口,那么推荐连接到一个千兆网口。连接之后登陆到LEDE的管理界面,依次选择“网络”、“接口”。在接口列表中点击WAN对应的“修改”按钮,把“协议”由“DHCP客户端”改成“PPPoE”,点击“切换协议”。然后输入PPPoE拨号的用户名和密码,点击“保存并应用”,正常情况下路由器应该能上网了。
添加VLAN
由于不同移植版的固件界面有所差异,为了减少这种差异带来的影响,下面的设置主要在终端里面进行。打开putty,通过SSH登陆到K3,然后输入以下命令:
vi /etc/config/network
然后,按一下键盘上的i键,进入编辑模式,通过方向键移动光标到末行,再按一下回车键新建一行。复制以下内容到剪贴板,然后在putty界面上右击一次,剪贴板的内容会被粘贴进来。
config switch_vlan
option device 'switch0'
option vlan '85'
option vid '85'
option ports '0t 1t 2t 3t'
config switch_vlan
option device 'switch0'
option vlan '51'
option vid '51'
option ports '0t 1t 2t 3t'
然后,按一下键盘上的Esc键,再依次按下键盘上的“:wq!”,注意冒号和感叹号都是半角符号。
如果上面的操作都正确,再输入以下命令应该可以看到上一步添加的内容。
cat /etc/config/network
最后再输入下面这条命令重启网络。
/etc/init.d/network restart
配置dnsmasq
仍然通过SSH登陆到K3,依次输入以下两行命令。
opkg update
opkg install dnsmasq
然后输入以下命令对dnsmasq的配置文件进行编辑。
vi /etc/dnsmasq.conf
同样地,按一下键盘上的i键,进入编辑模式,通过方向键移动光标到末行,再按一下回车键新建一行。复制以下内容到剪贴板,然后在putty界面上右击一次,剪贴板的内容会被粘贴进来。
dhcp-option-force=lan,125,00:00:00:00:10:02:06:48:47:57:2d:43:54:0a:02:20:00:0b:02:00:55
dhcp-option=lan,60,00:00:01:00:02:03:43:50:45:03:0e:45:38:20:47:50:4f:4e:20:52:4f:55:54:45:52:04:03:31:2E:30
dhcp-option=lan,15
dhcp-option=lan,28
同样地,按一下键盘上的Esc键,再依次按下键盘上的“:wq!”保存、退出,注意冒号和感叹号都是半角符号。如果上述操作都正确,再输入以下命令应该可以看到上一步添加的内容。
cat /etc/dnsmasq.conf
自此,4K IPTV的配置部分结束了,验证一下结果,把IPTV连接到K3的任意LAN口,应该都能正常通过认证。而且通过这种方式修改的桥接,对基于光网的固话没有任何影响。固话仍然连接到光猫上的固话接口并能正常使用。
总结
总体来说,斐讯K3刷入第三方固件LEDE还是挺容易的,当然主要得益于各位大神开发的程式工具和移植的固件。而基于所谓A/B两面认证的上海电信4K IPTV,实测只要配置好VLAN再用dnsmasq模拟一下认证服务器的应答就可以轻松破解。
如果你在刷LEDE/OpenWrt或者配置4K IPTV的过程中碰到什么问题,严格检查各步骤和各命令都没有办法解决的话,欢迎在评论区提出。
最后,欢迎还没有找到组织的魔都值友加入上海分剁微信群,请猛戳这里报名。报名后小小值会审核并添加你的微信号,然后随机地邀请你加入上海分剁1群或2群。如果你报名的时候就想有针对性地加入1群或者2群,在这儿剁主给你支个招——在上面的“职业”栏中备注一下想要加入1群还是2群,小小值会尽量根据你们的意愿来安排。对于已经加入并且想切换群的,只要退出当前群,再让小小值加到另一个群即可。























校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案