软路由入门攻略——是否需要一个软路由?
1 引言
开这篇文章其实真的构思了很久,有没有必要去写这么个东西。其实软路由这个东西在某种程度上感觉被神化了,给人的感觉就是无所不能无所不会,但凡有了软路由就能享受到光速一般的网络,能够实现生活中的一切需求。
最后还是决定找几个切入点,从实际需求、固件选择、系统安装以及旁路由设置几个点来具体讨论讨论软路由。
2 实际需求分析
路由器这个东西,简单点来说就是一个网络的分发中转站,将运营商的网络,通过路由器来进行包装之后,能够以无线和有线的方式提供给家庭使用。而路由其根据场景划分,可以分为有线路由和无线路由,以是否能够提供wifi作为区分的标志。而依据功能多样性划分,又可以分为硬路由和软路由,依据笔者的拙见,叫硬件路由和软件路由其实更加合适,所谓硬件路由依据字面含义可以知道就是提供一个转换网络功能的硬件,而软件路由在硬路由基础上提供了丰富的功能。但是需要厘清的一点是,硬路由其实并没有大家一贯概念里的无能,其包含的多种芯片而并非中央处理芯片可以实现较好的信号覆盖、WiFi的流量分配等功能,况且很多原厂出来的路由,尤其是某品牌上万块的路由器也是可以通过梅林固件、openwrt等功能实现软路由的很多功能的,但是由于硬件限制——厂家在产品设计之处根据成品的考虑并不会给内存、硬盘(等同概念)给与足够的容量,因此所实现的功能还是十分有限的。而软路由在能够提供丰富功能的情形下,由于缺乏很多功能性的处理器,导致一般软路由都是以有线路由的形式存在的,必须依托一个无线AP才能实现一个完整的家用路由的功能。
用正常思维也可以知道,一个以热情为动力的创作者所实现的路由功能,根本意义就是如同基因复制一般,总是希望能够覆盖更多的硬件,而不是兼顾所有的功能。为了稳定性以及适配过程的顺利进行,通常不会考虑到wifi功能的适配。这一点,在网络上搜索无线软路由就可以得知,文章数量明显少于有线软路由的文章,甚至可以说,能找到的文章寥寥无几。而硬路由这种东西完全就是一群团队拿着工资按照kpi捣鼓出来的东西,在市场的竞争压力下,做出来的东西在基础路由功能上(主要指wifi)毋庸置疑的强于软路由的。
上手张大妈也有2000多天了,很早以前就开始关注过软路由这个话题。一开始,软路由这个概念总是伴随着旧机器如何废物利用而慢慢推广开来的,再往后往往因为资本的推波助澜,出现了本不该属于其的热度。软路由本身其实还是一个比较小众的市场,但是现在但凡出现个低功耗的主板,总会有值友在下面评论要是有两个网口就好了,可以做成软路由。与之相对的,软路由的价格也是越来越高,按照硬件规律早应该淘汰的J1900等处理器的主板现在却依旧维持着高价,甚至出现了拿I9去制作软路由的狂热者。很多值友捣鼓这个东西,也只是单纯的享受一个捣鼓的乐趣,而捣鼓之后很大程度上不得去面临重回海鲜市场或者吃灰的命运。
路由器性能的提升,很大程度上就是伴随着使用感受的提升。自打上一波降费提速之后,众多传统的百兆路由器慢慢地被市场淘汰。在当时,能够换上一个千兆路由,匹配上已经提速到100M、200M以上的宽带,能够获得就是一个质的提升,能够明显感受到刷视频不卡了,下载更快了。这就是一个硬件匹配度的问题,就像从2G到3G大家能够获得一个质上面的提升,而后面从3G到4G,4G到5G,给大家日常体验上的提升就没有这么立竿见影了(这里并非鼓吹4G、5G无用论,其意义更多体现并非是在民用上罢了)。同样,在路由器迈入千兆之后,给大家体验上的提升就没有那么明显能够被我们所察觉,毕竟现在主流的宽带上限也才到达千兆不久,而千兆宽带的普及率也没有想象中那么高,这就涉及到一个边际效用递减的经济学常识了。
根据上述推论,可以得知,在家用宽带普遍限制在100M-500M的区间上,软路由本不该有其存在的价值,毕竟市面上主流的硬路由与主流的软路由,单单在价格上就存在很大的差距了。那么软路由存在的价值在哪里呢?
依据笔者根据站内软路由文章的统计,主流软路由系统,是一个二分的状态,一个是ikuai,另一个则是openwrt。至于ikuai,其优势就是多拨以及稳定性上,而openwrt就是体现在一个丰富插件构成的可玩性上,可以实现魔法或者广告屏蔽,除此之外还可以实现很多很多如搭建简易网盘等功能。
从ikuai的功能去逆推使用人群,可以得出倾向于使用ikuai的,主要是一群对于想要稳定性或者是让有限带宽加倍的多拨。但是需要考虑的一点是,这种东西能够被普通人知道运营商自然也是可以知道的,所以在损害他们利益的情况下,大多数地区都将多拨予以封禁。而所追求的稳定性,国内路由厂商在多次洗牌之后,之前流行一时的主打新概念路由的极路由、newifi等,很多都被拍死在沙滩上了,而其所主导的一些理念,在洗牌之后,也逐渐嵌入到存活下来的路由厂商的产品中。早些年记得tp的路由器,还真的得要一个懂行的人上门去配置,现在随便一个小白按照说明书也能很容易的去配置一个路由器。而稳定性,更是一个毋庸置疑的问题了,如果一个品牌的路由器连最起码的稳定使用都做不到,那么早都被市场所淘汰了。
而openwrt,从本质上还是一个linux系统。其上面的插件,更多的还是用移植这个词而不是开发这个词,大家应该能够体会到其中的含义了。很多功能深究下来其实就是linux上面很早就能实现的功能,之所以移植而不是开发,只是让这些功能能够以图形化的界面进行显示,能够更加容易的为人所用罢了,但是在移植的过程中,抛开不能完成移植的部分,能够移植的那一部分在功能上或多或少的也会有一点缺失,这就是很多程度上为何大家总是意犹未尽,总觉得这个功能要不就是没有,要么就是总是缺了点那么功能。在openwrt的发展中,慢慢地也会针对上述需求改进自己,如目前大多固件都强调自己支持docker。那么,换句话说,如果单纯的追求这些功能,为何不单独部署一个服务器去实现功能,与路由器各司其职,避免一旦软路由出现问题就一荣俱荣一损俱损的情形呢?当然,也是得考虑到很多友友们觉得linux服务器上手成本过高,只是想简单的去使用插件的一个情形。
综上,笔者认为软路由在上述缺点都存在,其存在的价值,除了能够便利的使用一些插件去实现想要的功能外,更重要的方面还是在于提供一个高速的内网环境。纵观市场上的那些大厂出品的路由器,即便是标称2.5G接口的路由器,通常也只是提供了一个2.5G的WAN口,其余的接口基本全部都是千兆网口,这意味这上限也就是在100M左右的内网速度,对于需要内网存在nas等设备的用户来说,是远不能满足需求的。而现在主流的软路由基本都是标配4个2.5G网口,标称250M左右的速度足以满足nas的需求。而更进一步,如果是全固态组成的nas,那么万兆口也是有其存在的价值的,而这就不是市面上出售的产品能够覆盖的了。这类用户通常都会选择自行组建万兆口的软路由,但是一般来说这一部分是小众中的小众了。
综合而言,对于一般用户来说,仅仅为了实现一些插件所有的功能而去单独组一个软路由是不切实际的。所鼓吹的软路由万能论大概率就是一个消费主义陷阱。在多拨被大范围封禁的情形下,如果是为了插件而去购买软路由,某种意义上倒不如直接买一个支持op或者梅林的路由,亦或者直接弄一个简易的服务器来的实在。毕竟,就算是捡垃圾,双网口的主板价格通常远高于单网口的主板。
3 固件选择
依据架构的不同,通常分为arm和x86两类,arm基本覆盖了如硬路由、4k播放器、开发板等设备,而x86大多应用于diy的软路由。这里针对的固件,主要是指openwrt,ikuai有着自己的官网,支持就是支持,不支持就是不支持,没什么好说的。
3.1 x86架构
这一类设备可选的固件类型多到难以想象,因为设备兼容性较强,几乎市面上所有的固件,一开始都是面向x86开发的,优秀的固件也有很多,lede、istore以及各种各样的也有很多,这一部分基本属于基础垃圾佬的必修课,在此就不赘述。
3.2 arm架构
这一部分设备种类过多,处理器厂商也是五花八门,因此想做到如x86一样的高兼容性也不大可能。这也是困扰大家很久的一个问题。就笔者前一阵捣鼓玩客云的固件时候的体验,经常会出现固件在别人那里可以安装,但是放在自己设备上就始终无法成功的现象。而且本身固件这块,除了散布在恩山论坛中,繁杂的分发渠道和渠道的不透明性总是能够困扰大家。而这一类固件,都是在原版固件上进行编译而成,但是这个难度对于一般人实在是太大。
在玩机的过程中,笔者倒是发现一个不错的网站,而且开发者人也很好,基本上有求必应。虽然高级功能需要收费,但是基础功能还是能够免费使用的,这一点很赞。在此给出传送门。
主要的使用笔者认为值得介绍的就是三方面,其余部分都很简单。
1、选择设备
当然,为了方便大家观看,还是把支持设备的列表给整理出来(当然包括x86设备)。
2 选择插件
这一部分插件还是需要赞助才能构建,不过考虑到五块钱一次,相对还是毕竟划算的。
3 构建固件
当然,X86架构的可选形式更多
4 系统安装
4.1 X86安装
制作一个PE优盘,随便什么PE都可以,这里推荐笔者常用的优启通。将下载的固件放到u盘里面,然后下载一个physdiskwrite放到优盘里。
后面这部分之前有人写过了,笔者整理后如下:
将u盘插入软路由中
开机进入bios后, 在boot界面设置启动项,将u盘设置第一位,进入pe系统即算成功。
进入pe后,选择分区工具,删除全部分区,新建分区。
win+R调用运行,输入cmd,调出cmd界面,输入u:进入u盘的根目录下(有可能磁盘名字不一样,建议进入此电脑查看u盘的名称是什么),输入physdiskwrite -u openwrt.img(这里img文件的名字就是那个openwrt镜像的名字),选择要写入的硬盘,一般来说选择第一个 0(反正不要写到u盘里就行),输入y,等待写入完成。
安装到这里就算结束了,后面根据管理地址设置一下即可使用。
4.2 ARM安装
基本就是用balenetcher等软件将固件写到TF卡里面,然后将卡插到设备中,一般来说,能启动就能启动,不能启动就得另外找固件了。写入教程如果是开发板类设备的话,官网一般会提供固件和烧写方式。
4.3 Docker安装
这部分应该才是重点了。因为如果固件无法写入的情况下,针对矿渣类产品,通常都是可以写入armbian等linux系统的,在安装docker之后还是可以通过docker实现旁路由的。
进入ssh后,输入如下代码:
ifconfig
一般来说,矿渣类只有一个单网口,网口名通常也是eth0(当然,这不是定式,具体的还得根据自身情况来选择)
开启网卡混杂模式:
sudo ip link set eth0 promisc on
这里etho根据自己情况修改
docker网卡的创建:
docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.1 -o parent=eth0 macnet
需要修改的主要就是几个部分,一个是subnet的前面的ip,修改成你的路由器的网段即可,譬如你的路由器是小米的,通常设置页面是192.168.31.1,那么这里填192.168.31.0即可,后面不用变。gateway就直接填你的路由器设置页面的ip,这里就是192.168.31.1,parent就是前面的网卡,根据实际情况修改即可。
查看自己设备处理器架构:
ssh界面输入arch即可得出,现在一般都是64位的处理器架构,显示一般是armv8或者aarch64,如果是玩客云这一类设备的话,那么就是armv7
创建docker:
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:armv8 /sbin/init
如果是armv7或者其他设备的话,根据自己的需要修改sulinggg/openwrt:armv8最后的部分即可,如是x86,那么直接修改成sulinggg/openwrt:x86_64,如是armv7,那么就修改成sulinggg/openwrt:armv7。
容器内修改:
docker exec -it openwrt
vim /etc/config/network
然后修改如下部分(偷懒直接用网上的图了),输入i进入编辑模式(不得不吐槽vim的麻烦)
完成后,按一下esc,输入:wq回车保存。
docker restart openwrt
/etc/init.d/network restart
然后设置就完成了。
4 旁路由的设置
这种情况是针对只有一个网口的设备,具体设置方式有三种。一个是双方都不关闭dhcp,一个是主路由打开dhcp,旁路由关闭dhcp;最后一种就是主路由关闭dhcp,旁路由打开dhcp。
关于具体设置已经有值友写过了,可以参照这篇文章。
笔者目前只试过这篇文章的方式,但是比较疑惑的一点在于,如果是通过这种方式,与正常使用linux采用docker构建一些功能的使用完全相同,但是在使用上也是完全相同的,所以感觉单独通过这种方式设置旁路由感觉有点多余,倒不如直接使用一个服务器去实现更多的功能。
至于其他两种方式的设置,如果有知道的值友还烦请指正一下。之前倒腾N1的时候有尝试过,但是就会莫名断网,只能通过重置路由器来解决。
5 总结
不知不觉已经说了很多很多。软路由虽然有着自己一定的场景,但是结合现在市场上的产品,如果是单纯想保障榨干带宽的话,300块左右的路由器就可以满足需求了,如果是想要实现功能的话,买一个非常便宜的工控板组成服务器也可以进行解决。
还是希望大家能够理性对待软路由这一个命题,本身软路由万能论就是一个伪命题,脱离自己的需要而去跟风盲目追求本身就是一种不理性的行为。消费只是手段而不是目的,选择一个符合自己需要的产品,能够极大地提升自己的体验才是目的。
本身也想过开这么一篇文章可能会引来软路由拥趸者们的批评,诸如说得好我选择xxx的固定句式。我想说的是,每个人的需求是不同的,自身需求不是唯一尺度,一切选择应该回归人的需要本身,这才是理性。背离这一点就是一种自我自私的体现,尊重多元性才是一个值友该有的消费观。
笔者本身对于软路由就属于不感冒的那一类,这篇文章也只是这些年的一些知识沉淀总结所得,如果有不足的地方还希望大家可以多多指正。
最后,趁着双十一推荐几款我认为还可以的路由器或者软路由(软路由笔者还是认为选择体积够小功耗购地且性能够用的即可。当然,头图这一款r5s并不推荐,因为固件制作的实在是糟心):













ShadowsX
校验提示文案
Kubotse
校验提示文案
uplove
校验提示文案
忘忧扇
校验提示文案
睡摸张大妈
校验提示文案
值友7884689482
校验提示文案
油炸小青蛙
校验提示文案
人间太太太值得
校验提示文案
分期付款买辣条
校验提示文案
值友4934071764
校验提示文案
分期付款买辣条
校验提示文案
Hazjp
而真要好好用起软路由,不但硬件有需求,还要不断去学着折腾各种插件和配置。
校验提示文案
玻璃水推广员
校验提示文案
74sniffer
校验提示文案
值友4177484603
校验提示文案
leungzzZ
校验提示文案
维克多煒偉
校验提示文案
值友8213082941
校验提示文案
咪了个喵喵喵
校验提示文案
复灼
校验提示文案
高达酱
校验提示文案
值友9618630623
校验提示文案
求性价比
校验提示文案
我逗是小黑
校验提示文案
我的名字叫小宅
校验提示文案
不胖就得少单糖
校验提示文案
值友9321249287
校验提示文案
月下彼方
校验提示文案
Zeiss_look
校验提示文案
值友1415640779
校验提示文案
Hazjp
校验提示文案
Roward
校验提示文案
值友7610596841
校验提示文案
轻歌夜楼
本来想着ac68 刷梅林就好了。
但是功能是可以了,就是有时候会断网是啥原因?
机器太热了?要+散热吗?
校验提示文案
van00
校验提示文案
睡摸张大妈
校验提示文案
值友9676639415
校验提示文案
值友9676639415
校验提示文案
想取的名字已被占用
校验提示文案
值友6994142643
校验提示文案