我们使用的普通路由器,一般都包含了 路由功能和wifi无线功能,那么意味着我们只需要把无线路由器连接外网,然后内部就可以通过一个设备搞定。但是目前的软路由使用中,软路由主要突出在他的处理能力上,主要负责的是路由和NAT转发方面的处理,而无线功能则是没有的。
为什么软路由没有无线呢?
答案也很简单,因为软路由天生就不是路由,而是被折腾出来的, 所以在硬件上面,本身就不具备无线的硬件。试想一下,巧妇难为无米之炊,没有WIFI的硬件芯片,又怎么能发射出来无线信号呢?
普通家用路由器都是把CPU主芯片,RAM,ROM,网卡/交换机芯片,无线网卡,信号放大,天线等都整体设计好了,开发出来的成熟产品。
那么,软路由是否就不能实现无线功能呢?答案其实是可以的,但是仅仅用作研究折腾,目前似乎还没有见过有商用级别的X86软路由加无线网卡组成的无线路由器方案。
那么,我们来看看软路由要实现无线AP功能,要注意什么?
硬件方面,其实软路由本身就包含了CPU处理器,主板,内存,存储,电源,网卡。OK,那么以上就是一套软路由的基础硬件了,我们只需要再增加一个无线网卡+天线就可以了。
这里首先要看看自己的主板能通过什么方式增加无线网卡,目前我知道的就是如下几种,PCIE接口,MINI-PCIE接口,以及其他主板上的扩展接口,如MINI-PCI接口,PCI接口,甚至USB接口。
几种无线网卡分别是,MINI-PCI,MINI-PCIE,USB无线网卡。其他的无线网卡猫猫无线手里没有,所以没办法拍照片了,各位自己去搜索看吧,
有了硬件,需要用驱动来控制才行,那么就限制你用什么方式来架构这个软路由。大概可以分成两组方式。
1.纯软路由,系统装在U盘中启动,或者装在小容量的固态硬盘上,这台机器就只是软路由功能。
2.虚拟机软路由,设备本身有一套系统,然后在系统下虚拟机安装一个软路由系统,这台机器可以多用,功能不局限于软路由。
至于你是用哪种方式,就看需求情况了。但是经过测试,其实纯软路由的方式,增加无线功能是最容易的。
为什么纯软路由最方便实现无线功能?
因为纯软路由的话,系统直接调用硬件,比如软路由系统openwrt 直接就能使用pcie接口,只要驱动合适,就能激活无线网卡,可以说太简单了。
但是如是是经过虚拟机,由于硬件直接是与虚拟机系统连接的,而不是软路由系统,所以就困难多了,虽然困难,但是方法还是有,但是效率,驱动,识别,和性能都打了折扣。
这里主要是硬件直通技术,如果你觉得本文提到的思路非常好,一定要照着葫芦折腾一番,那就需要选择能支持硬件直通的CPU和主板。
如果你觉得纯路由不够逼格,浪费你的I9顶级CPU,那么虚拟机软路由也是一个充分利用硬件资源的方式。
上面提到, 支持硬件直通的CPU 和主板,主要作用就是能把pci扩展接口直接 绕过系统底层,划分给软路由系统直接驱动
但是这里说的系统底层, 主要是两种,纯虚拟机系统,主要是esxi, 冷门点的有微软的hyper-v。
在Window系统下面,硬件直通功能,我折腾过,研究不深,所以只能简单说说失败的经历。
同样的硬件, 用纯路由,就能识别并使用无线网卡,但是经过esxi 硬件直通后,能识别,但是无法使用,
所以后来发现这是一条漫漫长的折腾路,果断放弃。
那么问题来了,虚拟机软路由就不能使用无线AP 功能了吗?
答案当然可以,那么我们就曲线救国吧。使用window系统,安装wifi网卡并装好驱动,使用wifi共享软件
看似很完美,但是,只能使用2.4G 频率,5G 折腾不出来。
需要设置以下几点:需要开机启动,Wifi不能休眠,Wifi的信道,模式等。
但是发现,wifi 的信道,根据不同网卡,设置也不同,有的能设置信道,有的不行。
那么说回正题,如果选择最简单的纯软路由方式,需要注意的是, 不是所有无线网卡,都能使用,这里主要是受限于软路由系统的驱动,理论上,你能搞定驱动,任何网卡都可以,但是如果你能搞定这些,就不用看本文了。
最后来实战
注意:不是所有软路由系统都支持无线,目前主流的比如openwrt,LEDE这类家用系统,是支持的, 但是爱快,海蜘蛛之类商业性质的软路由就不支持,因为这种系统,根本就没有编译无线芯片的驱动。
那么我们的方向只能锁定openwrt 之类的开源系统, 但是一般情况下,原生openwrt 是没有无线网卡驱动,其实我们平时能下载到的,已经是经过大神优化过,添加好驱动的了。
目前我折腾过成功的就是 AR9380,9280这类的网卡,openwrt下X64下,插上就能识别并使用,其它的具体确实需要自己到专业论坛去查阅资料。
最后,软路由装好了,网卡插上了,是不是有点小激动呢,谁说软路由不能带无线AP 了,不信邪,咱来试验一下。
那么开机测试一下, 网络- 无线能看到 这个网卡了,开心吧。
那么如果你不顺利的话,会发现如下一些问题:
1.无线模式只能2.4G或者5G其中一个,不能像普通路由器那样双频
2.无线只能接收,不能发射(意味着你只能蹭网转换成有线,不能把宽带转换成无线)
3.能建立AP,或者接收信号,但就是死活用不了(悲剧吧)
4.能用一会,但是一会就断了,要重启才能识别(哈哈)
5.或者压根就找不到这个无线网卡,识别不了。
OK ,如果上面这些问题,你都没遇到过,那么恭喜你,你最终还是会放弃,你将面临最后一个选择,
哇靠,网速怎么这麽慢?
对,没错,不管你的无线网网卡是AC双频,300M,450M 也好,速度就是上不去, 具体是多少
根据我自己的折腾,不管是300M的双频和866M的AC,内网速度只有3M~8M以下(不是kpb)
打个比方,如果你是100M光纤,那么你的下载速度应该是10M左右, 那么如果用这套方案,你的下载速度只有8M以下。如果你用的是千兆路由, 你内网拷贝文件的时候,也是8M以下,意味着,如果你没有内网需求(NAS存储之类的应用),恭喜你,这个问题困扰不了你,但是可能不大稳定, 3M~8M速度,不过其实上上网也够用了。
但是,如果你的应用就这麽简单,貌似根本就不用软路由吧?
好吧,你说你就是一个需求不高,但是爱折腾的人,你将面临最后一个问题,也是影响你一辈子的事情,那就是:哇靠,怎么连多几个无线设备,就这麽不稳定,经常上不了网了!是的,没错,上面说的,3M~8M ,是单机的速度, 如果多台wifi设备连接,你自己去分配吧,不稳定。
那么WIFI 这么忙,不稳定问题是什么呢?
我查阅资料,其实还是无线网卡的质量上,minipcie网卡一般都是用于笔记本上,其实主要负责单机接收,和单机发射。意思就是这个网卡的设计初衷,就是满足单机对路由上的使用,那么无线能力自然就不需要这麽强,只要无线路由能力强,就能显得网速好,这里指的是处理能力和收发的强度。
但是无线路由器只要的工作就是 单机对多机, 处理能力和收发能力要同时 满足多台wifi设备同时使用才可以,所以,以上这套方案,如果连接的wifi设备越多,越不稳定,至于能接受多少设备,那么取决于你的无线网卡了,在笔记本上用的无线网卡,一百元级别,比如AC7260 这类的算很不错了。
但是这个网卡我折腾过,与50元级别的AR9380差不多,只比后来买的20元级别的博通网卡强一点点。
那么有没有强大的无线网卡呢,有的,虽然我对网卡了解不多,但是也看到几款强大的卡,比如AR9880,9580这类的,听说是内置了功放,芯片也强大的,但是,有两个问题:价格太高,200元起步,这个价格,我可以买不错的无线路由了吧?体积太大,比全高minipcie卡板还大一倍,一般主板位置都装不了,这种只能用于特殊主板或者加pcie延长线安装。
高端无线网卡我没折腾过,所以就不发言了,我仅代表广大工薪阶层写下此篇折腾后感想。如果你看完上面我的废话,还坚持用这套方案,觉得平时就一个笔记本或者手机连完全够用,那么恭喜你,你是一个热爱生活,勇于创新,永不服输,DIY能力超强的,单身狗。
后记
其实这个文章目前来说有些地方是需要修正的,无线网卡之所以用在软路由器上效果没有单独接AP效果好,是因为受制于无线芯片的开源驱动,这个非常重要。驱动可以说是灵魂,而硬件仅仅是肉体而已。古往今来,无数发明创造都出自于杰出的人才,也是同样的道理。
目前,openwrt对无线芯片的驱动支持可以说已经很全面很健全了,比如我在一台ATOM270的小主机上,使用AR9287无线网卡,使用完全OK,当然这个网卡只有2.4G频段,受周边干扰影响较大,效果嘛跟普通2.4G的300Mbps无线AP效果差不多,甚至信号还要好一些。