作者:四十六
故事的开头,要追朔到21年的2月,正好一年了,因为某些原因,我发现我的路由器等家庭网络设备已经明显性能不足,当下急需升级成软路由,于是开始了设备的选购。
这一选不要紧,万万没想到一个软路由我花了2000块钱,也没想到这一折腾之旅足足花了1年时间。
这一年时间,我的宽带从200M升级到了500M;搬家后家里多了近50个需要连接WIFI的智能设备;路由器升级到AX6000和AX6组了mesh。我的“软路由”的易用性、稳定性都持续面临着新的挑战,因此前前后后才折腾了一年,期间我尝试过各种各样的方案,也作为一个小白常常在一个问题上测试一整天,最终才打造出我认为已经非常适合我自己,并且没有啥硬伤的“全能主力服务器”。
我不喜欢叫它all in one,大家一般所说的all in one就是将软路由、nas等系统整合在一台硬件里,但我的这套设备,主体是一台能够满足我日常作为主力机使用,且随时可用、任何地点都能用的服务器,只是不想让它平时闲着,所以顺便承担着软路由、NAS的工作,而且由于性能足够,所以不太用担心随时会崩的问题。
我的需求从重到轻为以下排序:易用>流畅>性价比>稳定>节能
具体一些折腾的过程就不详说了,下文分享我的最终方案与我在搭建过程中的一些巧思,欢迎小白参考,也欢迎大佬指正问题,毕竟我一年前也只是小白,这一年的折腾也是我学习的过程,我的方案一定还有还多不足甚至错误的地方需要优化。
硬件搭建
三千预算进卡吧,加钱加到十万八。
十核 E7装上去,四路泰坦抱回家。
4K 屏幕组三屏,万元液态温度压。
固态硬盘装三块,硬盘内存使劲加。
键鼠必花几千元,耳机手柄八千八。
还有机箱六千元,红星炸弹啪啪啪。
最后发现没啥用,抱着神机刷贴吧。
我就属于加钱党,本来300预算搞个r2s软路由完事,没想到一不留神花了2000。但最终效果还是比较满意的,本套方案除了CPU升级空间不足以外,其它方面都没啥硬伤。
在组装硬件前,首先要分析自己的需求,我把预算加到2000时,我的需求就不止一台软路由这么简单了,我需要它有以下几点要求:
能够当软路由(双千兆网口,不接受USB网卡)
必须是小型主机
功耗一定要低
性能足够我日用办公
支持至少4k60hz视频输出
稳定无故障(就不捡垃圾或者玩魔改了)
在确认以上需求后,我基本能够确认大部分硬件的具体要求,所以选择范围就很小了:
不能要很老的平台,基于x64,至少要支持DDR4内存、英特尔6代以后的CPU(6代之后架构一直没有太大变化)
需要笔记本平台或者低功耗平台,体积小能耗低,最多大概40W以内
有DP或者HDMI2.0接口
最好是非DIY产品,也是为了稳定性
能满足这些要求的平台,我主要想到了三个:
HP EliteDesk DM:从2代以来支持6代和部分7代英特尔,现在已经出到第6代
DELL Optiplex MFF:和HP的平台各方面差不多,价格也差不太多,但支持8、9代U的型号已经很便宜了,HP支持8、9代U的型号还不太好买
Intel NUC:功耗最低、体积最小,但同价格性能也是最低的,几乎没有升级空间和改造空间
因为我对性能要求还蛮高的,而且是加价党,因此我一年前选择的是HP EliteDesk DM平台,店家能够用定制的网卡,给改成完美双千兆网口,美观性更好点。要说缺点,可能就是最高只能支持到6代intel了,7代的支持已经不太好,未来升级空间比较小。
确定好平台后,其他配置就很好选择了,以下是我的配置单:
准系统平台:HP EliteDesk 800G2 DM(420元改好双网口)
CPU:i5 6600T(585元散装)
内存:三星 8G DDR4 3200 笔记本内存条*2条(410元,二手拆机条)
主硬盘:KIOXIA 铠侠 RC10 NVMe M.2 固态硬盘 500GB(全新,320元)
副硬盘:960G的存货SATA固态硬盘,很一般的牌子(价值算400吧)
总价2135元,这是一年前的价格,现在除了硬盘降价不多外,其它硬件都有接近百元的降幅,买这一套2000以内肯定能够拿下。
这套方案我认为在一年前,除了预算超了亿点点,其它方面都不错了。但如果是现在,如果大家要组装高性能小主机的话,还是推荐大家选择8、9、10代的平台,性能要好很多,9、10代CPU的性价比也更高。网口只有一个也没关系,网上有一些大佬测试过,许多USB网卡用起来,实际上和板载网卡差距很小,当WAN口用,跑满千兆无压力。
这套设备从我装好之后,没有过硬件升级,后续可能会考虑把其中一个网卡升级到2.5g网卡,来发挥ax6000的全部性能。
系统搭建规划
这里出现了我的方案与普通all in one的第一个不同。大多数all in one的首选是底层虚拟机,然后装上各种需要的系统,主流选择是ESXI、PVE、unRAID等,而我选择的则是windows自带的Hyper-v,虚拟机的选择与对比上,大家可以直接参考这位大佬的对比与讲解,网上也有很多其它的,我就不复述了。
这位大佬对Hyper-v的总结是:这种方案最大优势是熟悉和便利。最突出的缺陷是性能转化率太低。
确实,Hyper-v的底层套着一个windows,windows本身就很吃性能,因此对于配置比较低的硬件不友好。但我其实不认同Hyper-v性能转化率低的看法,hyper-v的性能转化率和主流的底层虚拟机其实差距并不大,并且能狗很好的分配资源给宿主系统(windows)与各个虚拟机,易用性也很高,几乎没有学习成本。
要说缺点,可能就是太简单了,没有拓展功能,甚至想要直通硬件都很麻烦。所以如果是一台配置较低,仅作为软路由和NAS来用的all in one的话,我可能会选择ESXI,也不会选择hyper-v。
但对我的这套设备来说,hyper-v却是最好的选择!首先我本身就要拿这台主机作为主力电脑来使用,我的要求是能够随时随地的使用这台电脑的windows系统(因为我的办公电脑是macbook,而且公司不允许安装盗版软件。。。。你们懂的)。因此我随时随地使用windows自带的RDP访问是最好的选择!
并且只有hyper-v方案,能够把各种硬件、虚拟机的使用权、操作权最直接的交给windows。我可以随时随地直接用RDP远程登陆我的windows,不管是修改软路由配置,还是复制文件,都通过RDP即可,非常方便,且流畅度很高。
Windows 11安装与Hyper-V启动
一年前我选择的是window10系统作为宿主系统,因为我会作为我的办公主力机使用,所以易用性排在首位。最近也是将我的系统升级到了windows11,虽然现在还有很多人说windows11的各种缺点,但考虑到毕竟现在所有的新电脑都是预装windows11了,以后大家升级windows11一定是趋势,赶早不赶晚,升级了吧。。。。
体验了大概一个多周,目前来看没发现什么问题,除了有些操作变了,不熟悉以外,其他的和window10感觉差距都不大,稳定性也没发现什么问题。
微软官方在windows11的安装上,给出了三种方法(戳这去微软官方下载页面),在此建议所有安装windows11的朋友们,都通过官方给出的方案安装,不要安装一些民间版本、ghost版本,坑你没商量。
具体的安装教程我就不说了,网上一大堆,关于从window10升级windows11如何跳过TPM2.0检测与CPU检测的方法也有很多,大家自行搜索即可。
我选择的是官方推荐的第二个安装方法“创建windows11安装”,本质上就是做一个windows11安装U盘,只是微软的工具直接把下载、创建启动盘等工作都给你做好了,非常简单。
使用此方法,U盘启动全新安装,不用检测TPM2.0与CPU,不用任何修改与操作就直接就能安装上系统,安装完成后也暂未发现任何bug。(我的主机CPU与TPM都不符合要求,TPM是1.2版本)
安装完成widows11后,点击任务栏放大镜图标,搜索“启动或关闭windows功能”,勾选Hyper-v点确定,等一会儿虚拟机就开启了。再搜索“hyper-v”就能打开虚拟机管理器,记得创建个桌面快捷方式,方便后续操作。
通过下图可以看出,hyper-v的管理界面真的很简单,并且功能也很简单,除了搭建虚拟机外,比较重要的功能就是右侧的虚拟交换机管理器、检查点两个功能,分别用于设置网卡与备份(按时备份是好习惯,别问我怎么知道的),上手成本真的不高,我很满意。
把window11系统安装好,hyper-v启动之后,在搭建虚拟机系统前,可以先设置以下hyper-v的虚拟交换机,依然非常简单。。。。。
打开右侧的虚拟交换机管理器,新建2个外部虚拟网络交换机,分别命名为WAN和LAN,其中WAN用于接光猫上网,LAN用于接后端的路由器,同时共享给windows系统来上网,所以LAN需要勾选“允许管理操作系统共享此网络适配器”。
完成这一步后,就要开始搭建虚拟机了。
iKuai+OpenWrt软路由搭建
在软路由的系统上,我选择了iKuai主路由+OpenWrt旁路由的方案,这时肯定会有人问了,为何不只用一个OpenWrt?因为经过我很长时间的测试,OpenWrt的稳定性实在是捉襟见肘,并且有许多的bug与我钻研很久都没有解决的一些小瑕疵(比如许多高大全版本固件不能UDP转发,端口映射有问题等)。
最后才重新安装iKuai了作为主路由系统,又经过长期的测试,我对iKuai的稳定性越来越有信心,在各方面都挺满意,并且经过我长期的测试和一些大佬们的经验分享,找到了iKuai与OpenWrt完美的配合方案。
先放出我的网络拓扑图给大家参考:
相信有人已经看到了端倪,所有的设备网关都指向iKuai主路由,那OpenWrt岂不是没用了么?此时就要给大家说一下,iKuai最有用的一个功能了,那就是“下一跳网关”,这一功能使我家庭网络的稳定性有了非常大幅度的提升!
下一跳网关,顾名思义,就是由iKuai来主动控制设备的网络线路走向。我将IP为192.168.0.2——192.168.0.99设置了下一跳网关,指向ip地址为192.168.0.3的OpenWrt旁路由,那所有符合这一IP的设备,都会在数据路过iKuai主路由时,去OpenWrt转一圈!而不符合设置了下一跳网关IP的设备,他们的数据则跟OpenWrt没有了任何的关系,只经过AP与iKuai。
因为我家里有大量不需要经过openwrt的智能设备,因此我将DHCP服务的ip设置为100-255,需要经过openwrt的就设置上静态ip地址。这样不仅能够大幅减轻openwrt的流量负载,也能够让iKuai完全掌控家庭网络,不仅非常稳定,也避免了如果上网设备网关设置为旁路由地址,需要进行两次端口映射才能将设备映射到外网等复杂且如意出问题的情况。
具体的设置方法下文详细讲解,先来搭建ikuai和openwrt。关于搭建的教程,有太多了,在一些流程化的东西上我只简单说一下,详细的大家自己搜索看教程即可。但在一些设置上,我与其它教程有着比较大的不同,这个稍后再详说。
1、iKuai安装
首先是下载系统,通过hyper-v安装爱快的话,一定要下载3.60新内核的系统(下载链接),因为3.5正式版的系统对hyper-v的网卡支持不好。版本下载x64的iso版。
新建虚拟机时,虚拟机世代选择第二代,启动内存建议大于2G,爱快的话没必要使用动态内存,系统会一直把你选择的内容容量吃光。配置网络时先选择一个网口即可,选择上一个步骤虚拟的LAN口。创建虚拟磁盘时选择新创建,大小1G就够用。安装选项就选择刚刚下载的映像文件。
建立好之后,记得右键选择刚刚安装的虚拟机,关闭安全启动,否则这个虚拟机是无法启动的。设置好后,右键连接启动新建的虚拟机。
根据步骤安装虚拟机即可,傻瓜式安装,速度很快。安装完成后删除虚拟机的DVD驱动器并且修改固件启动顺序为硬盘启动后重新启动。
可以看到,ikuai已经自动检测到网卡(需要注意的是如果该虚拟交换机是外部网络,绑定的实体网卡的话,如果该网口没有插任何设备,那会提示未连接,这时可以临时先把这个虚拟交换机改成内部网络),但由于ikuai默认不开启DHCP服务,需要你手动设置一下ip,才能够访问ikuai管理页面。
当你设置好ip,可以成功进入ikuai的管理页面后,关闭ikuai虚拟机,在虚拟机中把WAN网卡也添加进去,重新进入ikuai管理页面并绑定网卡,这时就可以尝试拨号了。拨号成功顺利上网后就可以把所有网络设备连接到位,后续所有操作都不会导致断网了。
2、openwrt的安装
关于openwrt的固件,我选择的是youtube大神esir的佛跳墙版本,很好用,稳定性也不错,没有多余的功能,仅预装了必要的几个插件。非广告并且esir大神用的是Google网盘,所以我就不放链接了。
如果你下载下来的固件是img格式,那需要先用StarWindConverter转换成VHDX格式,才能提供给hyper-v使用,工具网上很好下载。
hyper-v上安装openwrt在站内找到了其他大佬的教程,大家直接参考吧,流程基本相同。区别在于我的openwrt拿来当单臂旁路由用,所以网卡只添加一个LAN即可,不需要像这位大佬的教程这样,添加两块网卡。
在安装过程中,建议大家先在hyper-v中新建一个虚拟交换机来作为一个临时网卡配置安装,否则由于各个虚拟机都共用一个虚拟交换机,在配置openwrt的接口时会连不上去或者导致断网。新建一个临时的虚拟交换机,就不会影响网络了,等到配置好之后,再改回去即可(emmmm这里语言组织的不好,感觉可能很难理解啥意思,大家看其他网站的大佬比较详细的hyper-v安装ikuai+openwrt教程吧)。
3、下一跳网关与OpenWrt旁路由设置
操作完以上步骤,并且按我说的建立了一个临时虚拟网卡的话,你的网络连接里应该有以下四个:
其中LAN、WAN是你的实体网卡映射的,不用管他也不要修改设置。而带有vEthernet的两个网络连接,就是hyper-v共享给windows11的两个虚拟网卡了,其中一个连接着iKuai,已经有网络连接可以正常上网,另一个连接着Openwrt,还不能上网,这里只是方便你设置。
先说iKuai的“下一跳网关”设置,在网络设置—终端分组设置—IP分组里创建一个IP分组。
在流控分流—端口分流设置里,添加一个新的分流,分流方式选择下一跳网关,网关地址是你的openwrt旁路由地址,源地址选择你杠创建好的IP分组,目的地地址不用选择,保存即可。
就是这么简单,iKuai的下一跳网关设置已经完成。
接下来是openwrt的设置,稍微复杂点,首先在网络—接口设置中,删除多余接口,只保留一个LAN口即可。
点击修改,传输协议选择静态地址,IPv4地址就是你的openwrt旁路由ip,我这里写的就是192.168.0.3,网关填写iKuai的ip,DNS服务器填写你喜欢的公用DNS即可,最下方的基本设置中,注意勾选忽略此接口,不让openwrt开启DHCP服务。
防火墙按照我的设置操作,取消syn-flood防御,启动fullconeNAT,勾选IP动态位置和MSS钳制,其他的都选择接受。
保存重启,配置就完成了,这个时候你就可以在openwrt里设置插件了。设置好之后,你只需把要经过openwrt的设备设置100以内的ip地址即可。当你需要整个网络环境的流量都不需要经过openwrt时,只需要禁用下一跳网关即可,非常方便。
4、软路由其他功能设置
至此,下一跳网关就设置完成了,其他的相关设置方案我就不赘述了。我自己的方案是将几乎所有服务,都放在了iKuai上面,在此放出我在iKuai上开启的一些功能,都是免费的,不管是体验还是稳定性,都还不错。
至此,软路由+windows11服务器的搭建已经告一段落,设置好动态域名解析后,我便可以直接使用域名登陆ikuai管理后台,也能通过RDP访问我的windows11,满足随时随地使用的需求。
其他玩法
如果对NAS有需求的朋友,只需在此基础上搭建一个NAS虚拟机即可。而我的NAS等需求并不多,尝试搭建了黑群晖和HomeAssistant服务器后,感觉对我的作用不大就删除了。
之后用了windows自带的文件共享功能做了个内网的分享,方便电视看片。外网的文件共享,我基本直接用RDP登陆远程桌面,复制粘贴。
那这套系统还有什么可以玩的地方呢?那就是搭建一个宝塔面板,来建立自己的小破站、配置可道云等玩法。我选择的是直接在windows11系统中直接搭建,虽然宝塔面板官方警告,普通系统中安装会出现问题,但我实测其实并未发现啥问题,毕竟也只是简单玩玩,并非真的拿来建站。如果真的建站,那当然要做一个服务器系统啦。
安装过程也不说了,网上很多教程,安装完成后同样可通过iKuai的端口映射到外网。如果想要安装基于Docker的一些应用,也可直接使用爱快的Docker来安装,比如装一个homeassistant,我之前装过又被我删了,家里是全套米家智能家居生态,装个HA意义不大。
总结
本文只是我自己的主机搭建分享,并非一个完整的教程,因此很多地方写的不太详细,如果是小白照着搭建,大概率会遇到问题,建议配合比较完整的教程使用。
这套方案最精华的部分是iKuai与openwrt通过下一跳网关的配合,还有通过RDP随时随地访问,这不比macbook做双系统方便?我现在在家这套也是24小时开机,要用的时候敲一下键盘即可,也通过小米智能插座测试的功耗,待机功耗非常小,不操作的话仅有15W。
日常上网、看视频、码字的话,只是偶尔CPU负载能够达到100%,其余硬件都完全够用,很少卡顿,一周以上不重启没问题。
欢迎大佬们在评论区点评,小白们有问题也随时咨询,我基本都会当天解答。后面也打算分享一下我家70多个智能设备与传感器的配置。通过这个主机与我的配置,已经让家中的智能设备们有良好的联动,并且稳定性很高(除非联通断网,断网全家瘫痪,但这么久了还没遇到)。如果大家对其他方面的一些系统搭建感兴趣也可以说说,我也来研究研究,折腾无止境!