第N次ALL IN ONE折腾:群晖做底层,多网卡、软路由、内网穿透统统安排!
先说说本次折腾前的软硬件背景。
网络部分:
1、光猫在沙发背后的弱电箱,同时还有8口交换机一个。
2、主路由在书房,是一个DK77KB小主机,用的是K39机箱,所以还插了一张TP的8125B 2.5G网卡(WAN),系统是爱快。因为是爱快,所以还挂了1块120G的固态用来跑繁星,移动30M上行的是一天2块钱左右,现在提到100M上行也就3-4块。
3、书房有两路网线,一进一出,所以是光猫一路连到2.5G网卡,然后再从DQ77KB一个板载口回到弱电箱的交换机,再通向全屋各处,包括AP,剩下一个板载口连NAS。
4、硬改的爱快双频千兆AP两个,一个是吸顶的h3c改的,一个是中兴路由器改的,来自海鲜市场。
5、蒲公英X1一个,硬件级解决内网穿透,考虑到客户端数量有限,同时还有zerotier。
NAS部分:
1、TANK6盘位NAS机箱,之前发过文。
2、主要配置是G5500T、8G、CM871 120G、350W电源、LSI 9217-8i、6个2T SAS盘。
3、黑群晖918 6.23,虚拟机就跑了一个Ubuntu21.04,其他都是docker解决。
上述配置也用了差不多一年了吧,没啥毛病,那为什么就想折腾了呢?就是觉得K39机箱装的软路由体积还是大了一点,只是做软路由的话功耗也偏高,尤其是放在一个性能和扩展都过剩的NAS旁边,线还乱。这大概是AIO鞋教最常用的借口吧?
说完背景再来说说本次折腾的方案,因为是AIO,所以就分软硬件来说吧。
硬件部分:
1、原DQ77KB的2.5G网卡挪到NAS里,用于繁星的120G固态硬盘也一并转移。
2、增加一张4口千兆网卡,原本为了方便直通打算上HP366FLR的,但是不是缺货就是涨价,考虑到我其实只需要整体直通,对SR-IOV也没有强烈需求,于是最终上了HP331FLR,也是TANK家买的,主要是看上转接板做工不错,还带风扇接口和调速开关。
3、增加了一块硬件开机卡,X1接口,只是因为偶尔看到觉得好玩,对AIO来说一点卵用也没有。
4、机箱硬盘笼换成售后改进款。作为TANK机箱的第一批用户,部分机箱存在一定的加工公差,有些人出现6个硬盘托架之间间隔又大小、弹出卡住和共振的情况。个人运气比较好,没有出现上述情况或者说很轻微并不影响使用,但看在老板很有诚意免费更换的条件下还是要了一个,也确实因为没啥问题一直没有更换,这次趁拆机顺手一并换了吧,至少挂2.5寸SSD的时候会更方便一些。
软件部分:
1、底层系统。原本打算尝尝unraid,中途临时起意换成了win11,但因为虚拟机遇到了一些问题,尝试unraid过程中遇到了管理网卡的问题,毕竟是主力机,最后不得不再次回到黑群晖,具体过程随着实际折腾过程慢慢展开。。
2、软路由。主路由还是爱快,一是已经习惯了,二是WiFi用的是爱快的AP,三是繁星收益还算稳定。旁路由还是打算OP,具体安装方式取决于底层系统,后面详细再说。
3、虚拟机。虚拟机其实用的不多,还是docker用的更多,这都不是事儿。
4、内网穿透。我其实是有公网IP的,但是有些应用比如RDP、终端之类的还是内网用起来更方便,所以我之前买了个蒲公英X1,硬件方案确实稳定,后来试了zerotier之后觉得真香,所以也一并部署,作为补充。
其实主要内容到此就已经结束了,懂的人自然懂,但是看过我之前文章的人应该明白,我的风格是能喂饭尽量喂饭,所以下面就一些过程细节顺着装机过程再补充一下。
原本的DQ77KB软路由,因为家庭布线结构2口不够用,所以在海鲜市场捡了一块TP的2.5G网卡作为WAN。为什么不给内网用?因为除了这块网卡我没有其他2.5G设备了,索性就给外网吧,尽量保障外网千兆能跑满吧。
今天的另外一个猪脚,NAS本体和待替换的硬盘笼子。
这个是问朋友临时借用拿来倒腾数据的,NAS折腾最麻烦的就是这点,除非是同样的系统并且直通硬盘,否则硬盘格式化总是难免的。
HP331FLR四口千兆网卡,支持直通,但不支持SR-IOV,不过我打算整体直通的作为爱快的lan,所以不影响。可以看到转接卡左下角的风扇接口和调速开关,因为千兆网卡不热所以默认不配风扇,万兆的会有。
拍摄角度问题,正后方看没什么问题。
硬件开机卡,PCIE 1X接口,只是取点用,应该不走数据,从原理看不需要。右边4根插针是开机跳线一进一出,上面是手动开关。这个卡有两个版本,一个是板载PCB天线,一个是外置天线,差几块钱。因为我的TANK机箱是全金属的,所以我想了想还是买外置天线的,所以我的卡左边是一个ipex天线接口,板载天线款左边会突出一块PCB印刷天线。
加的内存是海鲜市场收的威刚万紫千红矮条,NAS对频率不是很敏感,所以选了性价比较高的2666。之所以选矮条还有一个原因是机箱空间有限,矮条可以在不拆其他配件的情况下拔插操作,厚的条子松开卡口也不一定有足够的空间拿下来,画面大家自行脑补。
因为之前黑群晖用两条傲腾做读写缓存的时候出现高温自动关机的情况,所以这次顺便买了两根散热片装上,拼夕夕5块多2条包邮那种,聊胜于无吧,二三十的那种也没看出来好在哪里。
6个2T SAS盘,前四个是同一批的,后悔当初没有多买几个,毕竟真的全新的不到100 1T的盘真的很少了,后面2个只能买渣渣了。
不知道为啥,同样是1X接口,开机卡特别紧,以至于当我发现忘记插天线想拔下来重新插的时候不小心来了个滴血认主。大家可以看到,开机卡右侧是开机线一进一出,因为整条IO线都被拉过去了,剩下的硬盘灯或者重启跳线肯定也够不到主板的插座了,所以开机卡还送了一根公转母的杜邦线用于其他跳线的延长转接。
2.5G网卡也就位了,两个1X接口用完。4口千兆网卡插好忘记拍照了。
金泰克120G固态是给爱快用的,本来想直通给爱快的,后来因为还是用了群晖做底层系统,群晖VMM虚拟机只允许一个虚拟机在同一个硬盘上,所以后来没办法只能分为2个区,一个给系统本身,一个分区用来挂繁星。转接卡接的是三星CM871,用来放群晖套件、虚拟机等一些零碎的东西,其实可由可无,因为没有外壳,所以随便塞一下就算了,之前也是这样的。
之前也说了硬盘笼子下面空间有限,所以插线这种事情最好在放回硬盘笼子之前提前插好,如果你练过缩骨功当我没说。
系统安装
升级BIOS只是顺手的事情,进BIOS的主要目的是打开TPM功能设置。对家用NAS来说TPM完全就是个鸡肋,很多人甚至都不知道还有这个设置。那我干嘛来搞这玩意儿呢?因为我打算剑走偏锋,用Windows作为底层系统,打开主板TPM是为了安装最新的Windows11测试版。之所以选择Windows主要基于两个方面考虑,一个是为了最大程度发挥傲腾作为缓存的作用,在Windows下安装Intel官方驱动,是傲腾最常规的使用方式,对傲腾的利用率是最高的,另一方面Windows可以满足我所有的需求,数据下载、存储、共享,Windows各种自带服务和第三方软件都已实现,还有PhpStudy、可道云这种全集成的基础环境和前台,jellyfin等媒体服务也有Windows版本,docker也有Windows版本,通过RDP远程管理也非常直观好用,虚拟机平台选择也很多,可以说你需要用到的大部分功能Windows都能做到,可视化的解决方法并不难。至于为什么是Windows11,主要是因为我的硬件正好符合,加上我公司的主机已经使用了一段时间,并没有碰到影响正常使用的bug。
家里没有显示器,接投影直接投白墙上的
安装过程风格有了明显变化,很小清新的感觉
Windows11的安装和之前版本的并没有什么区别,只是UI的变化需要稍微适应一下,直观感受就是如此。但这个Windows11只坚持了1天就被我放弃了,但这个锅可以说是系统的,也可以说不是,下面来具体说说。
第一个问题,也是主要的问题,就是虚拟机的问题。前面我提到过,NAS的大部分功能Windows都有现成的服务或者第三方软件可以直接实现,所以是没必要虚拟黑群晖的,另外也有Windows版本的docker,通过powershell终端和docker desktop app配合使用也非常方便,所以虚拟机唯一的作用就是ALL IN ONE里面的软路由了。软路由的安装本身没有问题,不能简单的硬件直通也不是问题,实测千兆外网可以跑到900M以上,损耗不算很大,可以接受,最大的问题在于虚拟机随机自动启动。有的人会说,这有什么难的,一行批处理命令不就完了(我用的是VMware workstation Pro)。对的,实现vm虚拟机开机自动启动并不难,问题出在了启动之后虚拟机窗口打不开,提示被占用什么的,具体记不清了,没截图。百度之后通过删除虚拟机文件夹下带lck的文件或文件夹,或者只要改个名字就可以了。但上述操作之后只是去掉了报错,窗口可以打开了,但是是黑屏的,无法进行任何操作,看不到任何东西。如果你的虚拟机已经配置完成,再也用不到VNC窗口的话也是不影响使用的,但是强迫症表示不能接受!我尝试通过强制关闭虚拟机再开机是可以正常打开VNC窗口的,但问题来了,我是AIO啊,虚拟机里的软路由是我的主路由啊!主路由强制关机之后我的网络也就断了,所以到底是鸡生蛋还是蛋生鸡?总而言之,Windows下的VMware workstation和esxi下的虚拟机体验差距那么大是我难以理解的。算了,这个问题告一段落。
第二个问题也是压死骆驼的最后一根稻草是硬盘。对于存储的基础环境我原本的打算是将6个SAS盘组一个RAID5,当做一整个硬盘使用,兼顾速度和安全,然后用傲腾去加速这个数据盘,结果打脸的是两个都做不到。首先是组阵列,我不知道什么原因,通过Windows版的LSI MSM管理软件除了看看和升级固件以外,我不能实现组建RAID在内的其他任何操作,在Windows磁盘管理器下也不能建立RAID5,但是可以创建带区卷(相当于RAID0)和跨区卷(JBOD),也不能创建Windows存储池,点击创建之后会提示连接错误,通过磁盘管理器观察可以看到硬盘有一瞬间的脱机。于是我退一步妥协选择了带区卷,令人崩溃的一幕出现了,复制文件进去无论大小都只有30M左右的速度,安装傲腾驱动之后提示不支持加速该磁盘,WTFD!
这里补充一下,某些网站,虽然它有中文页面,但是很多软件或者资源在中文页面上根本搜不到或者能搜到但是点击下载会提示页面丢失等错误,这个时候不要慌,去它的英文页面就可以正常下载,反面典型就是傲腾驱动!!!
如果说第一个问题只是强迫症的话,那第二个问题直接影响正常使用,在短时间内找不到解决方法的情况下我只能放弃。
放弃之后我的第二选择是unraid,通过tank机箱店铺提供的资源和教程,很轻松地制作了开机U盘,但启动之后板载网卡插网线没有亮灯当然也没有获取到IP,插4口千兆网卡倒是可以获取IP,由于当时很着急,没有冷静思考排错,只想着2.5G网卡和4口千兆网卡直通给软路由的既定方案,所以几次尝试无果后也放弃了unraid。后来才知道可以先通过其他端口进去再改管理端口。
这个时候就相当尴尬了呀,虽然还有很多NAS系统可以选择,但要么是不熟悉,比如PVE、truenas等等,要么是之前用过,但是相对过剩或者专业,比如ESXI,因为我对虚拟机的要求其实不高,基本上几个docker容器就完事儿了。所以纠结再三,加上时间紧迫,最后还是选择了群晖。
虽然群晖还是那个群晖,但是引导不一样了,之前用的引导比较早,虽然也一直稳定使用,但因为这次要把软路由也整合进去,所以网卡驱动肯定得补上,因此这次用的是TANK机箱制作提供的引导镜像,整合了8125b等网卡驱动,还修复了软关机等问题,支持nvme破解(需自己手动)。黑群晖的具体安装过程在这里就不赘述了,张大妈教程一大堆,冷饭早就炒烂了,下面就具体讲一下多网卡情况下软路由的安装设置。
大家可以看到我这里有6个局域网链接,其中局域网1是板载网卡,局域网2-5是4口千兆网卡,局域网6是2.5G网卡。我的规划是2.5G网卡作为WAN,4口千兆作为LAN,当交换机用,板载网卡独立,通过网线物理链接4口千兆网卡。因此我在创建群晖VMM虚拟机的时候把局域网6设置为一个虚拟交换机(wan),局域网2-5设置为一个虚拟交换机(lan),板载网卡局域网1保持默认。
系统运作起来之后神奇的一幕出来了,板载网卡(局域网1)没有获取到正确IP,4口千兆网卡上的一个接口倒是获取到了正常IP,而群晖的管理IP就是这个IP。有点乱是不?啥意思呢?就是板载网卡通过网线跟4口千兆网卡上的哪个端口连接,哪个网口就会变成群晖的管理口,而板载网卡反而只有一个169开头的没有实际意义的IP。
这个时候我就在想,VMM里面的虚拟机设置或许跟群晖层面的网络设置并没有必然联系,或者说VMM里面的改动并不会同步改变群晖底层的设置,所以这个时候我就要从群晖底层想办法了。经过多篇文字研究之后,我终于发现群晖控制面板——网络里面的6个局域网链接实际上代表的是6个相互独立的网桥,所以如果我想实现交换机功能的话得把几个网桥整合为一个网桥。这个操作可以在终端里进行,也可以通过计划任务实现,区别是终端里操作的话重启就没了,所以除了第一次以外,后面的可以通过设置一个开机启动的计划任务来实现。不多说,先把命令贴上来再解释。
ovs-vsctl del-br ovs_eth1
ovs-vsctl del-br ovs_eth2
ovs-vsctl del-br ovs_eth3
ovs-vsctl del-br ovs_eth4
ovs-vsctl add-port ovs_eth0 eth1
ovs-vsctl add-port ovs_eth0 eth2
ovs-vsctl add-port ovs_eth0 eth3
ovs-vsctl add-port ovs_eth0 eth4
一共8行命令,前面4条是删除ovs_eth1-ovs_eth4一共4个网桥,后面4条是把eth1-eth4端口全部添加到ovs_eth0网桥里面,也就是ovs_eth0网桥包含eth0-eth4一共5个端口。这里需要注意的是,终端里面网卡或者网桥的排序是从0开始的,系统里面是从1开始的,也就是eth0对应局域网1,以此类推。通过上述命令,我把4口千兆网卡全部绑进了板载网卡的ovs_eth0网桥里了,5个端口(网卡)组成了一个交换机,2.5g网卡(局域网6)还是独立的ovs_eth5网桥。
这样设置之后一切就正常了,我把板载网卡在VMM设置为虚拟交换机lan,并且通过这个接口接家里其他所有接口,然后群晖网络里原来的局域网2-5在连接了相应设备之后也会获取正常IP。之所以这么连接是因为黑群晖洗白改的mac只对应所识别的第一张网卡,设置多个mac的按识别顺序一一对应,而板载网卡是识别的第一个网卡(eth0,局域网1),所以我把lan出口的网线插在板载网卡上。总之,2.5G作WAN,4口千兆网卡+板载网卡作LAN,实现软路由的功能已经一切正常。
重点到此就结束了,其他都是常规操作,大家有想知道的可以在张大妈搜,也可以想办法私下沟通,比如jellyfin的相关设置,群晖单独安装梯子客户端的方法等等,标题里提到的内外穿透下次再安排,其实就是zerotier和tailscale这种方法,也算是常规操作吧。
Gyzz
校验提示文案
BillRocket
校验提示文案
哇哈啦
校验提示文案
水寒
校验提示文案
大威快飞
校验提示文案
张小荣
校验提示文案
塞纳河小烤鸭
校验提示文案
值友5155279261
校验提示文案
辽阳小白
校验提示文案
灵KOYB
校验提示文案
johnnyzvip
校验提示文案
不是浮云
校验提示文案
枫花恋
校验提示文案
超仔哥
校验提示文案
大志若勇Nodis
校验提示文案
tkggdhqcss
校验提示文案
有什么好玩的
校验提示文案
E3-1220L
校验提示文案
偏北就是我
校验提示文案
cuiyl2005
ovs-vsctl del-br ovs_eth3
ovs-vsctl del-br ovs_eth4
ovs-vsctl del-br ovs_eth5
ovs-vsctl del-br ovs_eth6
ovs-vsctl add-port ovs_eth3 eth4
ovs-vsctl add-port ovs_eth0 eth5
ovs-vsctl add-port ovs_eth3 eth6
运行后不会分配ip,lan'接口都分配不到ip。我哪里搞错了么?
校验提示文案
值友5880176834
校验提示文案
benbenbear0324a
校验提示文案
gottenall
校验提示文案
fly9902
校验提示文案
膝盖问题
校验提示文案
动感超人VK
校验提示文案
杨山
校验提示文案
good-mbaby
校验提示文案
叫我神秘人
校验提示文案
苏苏hq
校验提示文案
星辰妖孽
校验提示文案
你是在过度消费
校验提示文案
哎呦诶
校验提示文案
BillRocket
校验提示文案
无欲无求哈
校验提示文案
kalios
校验提示文案
精灵的黑衣裳
校验提示文案
惆怅而又凄凉
校验提示文案
jimmyjin
校验提示文案
jimmyjin
校验提示文案