此文章非教程,具体的搭建教程,网上都可以搜到。我这里就不重复做了。这里主要是记录一下我的折腾思路,折腾的过程中有很多的选择题,除了选择之外,还有一些

选择题:软路由还是硬路由?

  • 最核心的好处当然是性能强体机小巧,路由器的体积、x86的性能,普遍的代理都可以轻松千兆,这是普通硬路由无法比拟的。
  • 由于性能强,可以有多种玩法。比如我这里做的路由、nas、服务器多合一,all in one。

选择题:选择什么软路由?

软路由的差别主要看 cpu,低端:遍地都是的J1900,高端:7500u 之类的更强的u。
低端的不支持 VT-d(虚拟化技术)、AES(加解密技术),物理机跑 Openwrt 没什么问题。虚拟机的话,有点捉急。
高端的 cpu 比较贵,基本 2k 开外了。

我选的 3965U。本体:

IMG_20200831_191644.jpg

软路由配置

  • cpu:3965U
  • 内存:8G
  • 硬盘:120G的Msata固态 + 240G的sata固态
  • 网口:6个
  • HDMI:1个
  • COM口一个
  • USB口4个

价格:

  • 裸机(带电源)798元
  • 内存条8G:148元
  • masta120G:95元
  • sata台式机旧的

也不便宜,1k开外了。

选择题:虚拟机还是物理机直装?

这个问题上面已经基本做了回答。不使用虚拟机系统,直接物理安装 Openwrt 系统当然也可以,但是路由器系统即使跑满千兆也占用不了多少 x86 软路由的硬件资源,会有些性能过剩,浪费。所以,使用虚拟机系统,管理硬件资源,路由系统、黑群晖、Ubuntu 等都在虚拟机系统之上搭建。

选择题:Esxi 还是 PVE?

一般软路由虚拟机系统基本选择 EsxiPVE 这两种,PVE 开源免费,两种系统都做过尝试,两者性能差别不大。选择 Esxi 的原因是感觉它的操作更简单直观一些。

选择题:Esxi 6.7 还是 7.0 ?

Esxi 的最新版本为 7.0,但是 7.0 有一个默认 128G 虚拟闪存的坑,由于我的 msata 固态应该也就 120G 左右。而且7.0精简掉了部分硬件的驱动,硬件兼容性比6.7要差一些(未做考证)。为了避坑,就没有折腾7.0。选择的版本是 Esxi 6.7。Esxi 安装到 Msata 固态硬盘上。

分享下载链接:Esxi 6.7 U3B
当然最好还是取官网下载,需要注册账号,善用搜索,不再赘述。

选择题:Openwrt or 爱快 or 其他OS?

据我了解,爱快及其他OS的优势主要在于多播、流控等功能,Openwrt基本是软路由离不开的系统。目前没有其他的需求,所以只装了Openwrt。

选择题:原版Openwrt or 各论坛及GitHub的编译版本 ?

选择lean大神等编译的现成的固件,肯定简单一些,这些固件集成了各种各样的功能,当然也可以自己拉源码下来定制功能、编译。具体可以去 GitHub 查看,这种固件是大多数人的选择吧。

我自己使用的是官方原版的固件,安装ipk包实现其他功能。新出的19.07.4:Openwrt 19.07.4,下载第一个链接即可。

Openwrt 占用资源很少,一般情况下500M存储、500M内存足够。

选择题:黑群晖 or others ?

NAS系统也有很多,我这里是第一次玩,就选择了受众比较多的黑群晖的😂,后续有机会的话想试试OpenMediaVault。

黑群晖的 坑

惯例申明一下:这种方式安装的群晖,只适用于自己折腾,这种方式安装的群晖:

  1. 系统稳定性低:Esxi 下安装的虚拟机稳定性低于物理机安装的,倒不是说 Esxi 不稳定,而是你折腾的时候把 Esxi 搞坏了,那么群晖肯定就坏掉了。
  2. 数据安全没有保障:群晖系统一般是多块磁盘组 Raid,保护数据安全,但是软路由只有一个 sata,只能接一块硬盘(msata 接口 Esxi 系统使用),没有保护措施。

对于群晖数据安全有要求的建议使用官方群晖主机。

除此之外,黑群晖系统也是坑最多的,黑群晖是有3块盘,引导盘、系统盘、数据盘。

流程是:引导盘挂载镜像引导,成功后网页版安装界面安装.pat系统文件,安装完成后,群晖系统内挂载数据盘使用。

引导盘、系统盘由 Esxi 虚拟机创建,数据盘独占 sata 口硬盘,通过 RDM 直通板载 sata 硬盘,教程:开启RDM硬盘直通,让传输速率恢复千兆。

我使用的是 ds3617,群晖6.2的版本。引导固件、系统固件下载地址:ds3617_6.2

我遇到的一个坑是:Esxi引导启动的时候,“客户机操作系统版本 ”要选择 Red Hat 64位版本,不要选择“其他 linux 64位”,选错的这个的话 Esxi 创建虚拟机的时候没有 sata 控制器,无法引导群晖,这个坑浪费了我很多时间🤣,网上的教程都没有提到。

黑群晖可能会遇到其他各种问题,善用搜索。

选择题:DDNS 还是内网穿透?http 还是 https ?

这其实不是选择题,有公网 ip 的情况下,使用 DDNS 动态域名转发就行了。我这里运营商可以直接电话申请的😁。没有公网 ip 的话,只能用内网穿透,更麻烦一些。

方案1:
使用 wonpn.com 的二级域名做ddns,域名在腾讯云解析。通过脚本实现 ip 更新。GitHub: ArDNSPod
缺点:腾讯云解析免费版最短 ttl 为10分钟,也就是ip更换了,至少需要10分钟才能在外网的公共 dns 上体现出来。
优点:腾讯云可以免费申请一年期的 TrustAsia 证书,动动鼠标点几下就行了。

方案2:
1、freenom 注册免费域名,注意选择1年期限。
2、dynu 解析域名,域名ttl可以做到2分钟,换 ip 后相应可以更加迅速。
3、Openwrt 安装 ddns-scripts、luci-app-ddns。luci 界面下设置即可。
通过https://freessl.cn/手动设置 dns 的 text 解析,申请一年期免费证书。

有域名在可以选择方案1,没有域名的黑群晖想要外网访问,就只能选择方案2了。

https证书也可以使用 acme.sh 申请,自动续期,我这里文件验证始终报错,只能使用 dns text 验证的方式,而且只有三个月期限,所以还是建议使用上面两种方式之一申请证书,一年更新一次即可。证书非必须,有证书可以配置https,没有证书也可以外网http访问,使用证书为了安全。

群晖也带了自签名的证书,不是CA颁发可能会遇到坑,也可以用。

网络结构

QQ截图20200912211147.png

  1. 安装 Esxi,所有硬件交给 Esxi 管理,其他系统均安装在 Esxi 上。
  2. 安装 Openwrt,直连2、3、4、5、6网卡,光猫出来的网线插其中之一,op 中找到其对应的eth口,设为 wan 口,拨号。op 中其他5个口设置为lan口。openwrt 负责 dhcp、dns。
  3. 安装黑群晖、Ubuntu,网口分配虚拟网口(就是 Esxi 中默认的那个,不需要配置),黑群晖、Ubuntu 设置各自的固定IP。

这里遇到的一个坑是:windows pc接网口1,由于主板支持 wake on lan 功能,计算机睡眠的时候网卡不关闭,协商为10M。导致接这个虚拟交换的系统都成了10M的速度 🤣。解决办法就是进 Windows pc 的BIOS,设置关闭 WOL。

选择题:直通?不直通?

直通就是将硬件绕过 Esxi 的控制,直接交给 Esxi 内的虚拟机使用。这样可以发挥最大的硬件性能。如上图,我这里直通了5个网口,cpu性能足够的情况下,网口直通不直通差别不大。介于网口直通操作其实比较简单,我就做了直通。

如上图,sata 固态硬盘我做了直通,这是因为,按照博主所说,文章链接,硬盘不直通,读写速度会很惨。所以按教程做了直通,整盘直接交给了群晖。

文件共享

既然是群晖NAS,肯定要重点搞一下文件分享。

局域网共享:

局域网共享采用smb协议。

捕获.PNG

  • Windows 电脑:群晖开启smb文件共享,windows文件管理器 - 网络 - 搜索到群晖的 SMB - 挂载为本地硬盘即可。
  • Android 手机:CX文件管理器支持 smb ,搜索、添加即可。
  • Android 电视:同手机。

互联网共享:

选择题又来了:smb?ftp/ftps?sftp?webdav?

  • smb:将445端口转发至公网即可。但是,smb 为局域网协议,公网使用可能存在安全隐患,某些勒索病毒就是通过 smb 协议漏洞传播。且公网445端口都被运营商封禁了,需要使用其他端口。
  • ftp/ftps:ftp 没有加密功能。ftps 在 windows 文件管理器多次测试,均失败。故放弃。
  • sftp:是 ssh 协议的扩展,具有加密功能。
  • webdav:使用 http、https 的文件共享协议。

最终选择了 webdav,这里遇到的坑是:windows 文件管理器始终无法挂载 webdav。这里需要注意的是要挂载无加密(即 http )的webdav ,需要修改 windows 的注册表,windows 默认只支持https加密的协议。而且需要CA签发的证书,群晖自带的自签名证书无法使用,注意查看群晖设置里挂载的证书。而且,挂载之后,默认只支持50MB以下的文件,需要修改注册表才能支持到4G。修改之后又把文件管理器卡死了,无响应。

结论就是不要用windows资源管理器方式挂载!!!外网电脑选择 Raidrive 软件,进行挂载。没有证书的话,可以选择Raidrive 挂载 sftp。

0200914190147.png

  • Windows 电脑:Raidrive 挂载,即开即用。文件同步使用群晖 Dirve 客户端。
  • Android 手机:CX文件管理器 支持 webdav,添加即可。也可以使用有 Android 版 Drive 客户端,还不错,简洁实用。

另外,还可以浏览器访问网页版 Drive,实现下载、分享等功能。我的宽带给的是50M的上行带宽,经过测试,外网访问除了移动速度比较捉急之外,其他运营商基本可以3MB/s左右。

群晖其他的套件,比如相册、备份、docker之类的目前还没折腾。

Ubuntu

Ubuntu实在服务器端实用非常广泛的linux发行版,vps基本都提供这个系统,可以承载的服务,提供的功能也很多。

安装比较简单,直接挂载iso文件安装即可,安装过程中配置静态ip即可。完成后系统内安装 Nginx + php + sqlite(博客系统为typecho,数据库使用的sqlite,因为简单,拷贝文件就行,3分钟迁移)。

我将 wonpn.com 这个博客网站由原来的 vps 迁移到软路由里的 Ubuntu 上,由于家庭宽带80端口(默认的 http 服务端口)、443端口(默认的 https 服务端口)都被禁用,所以使用其他高位端口提供 http。由于域名已经备案,可以实用腾讯云的 CDN 服务(内容分发)。所以,将 wonpn.com 域名解析到腾讯云 CDN 上,CDN 的源站配置为 Ubuntu 搭建的 Typecho。而且,直接可以使用腾讯云的免费证书,本地不需要配置 https。

端口转发

以下是群晖使用的端口:

QQ截图20200912215022.png

在 Openwrt 系统,网络 - 防火墙 - port forwards 进行端口转发,将 WAN 口的端口转发至群晖的端口号即可。建议 WAN 口的端口号不要与群晖的一样,比如群晖 webdav 的 http 端口是 5005,转发到外网不要用 5005,使用 5005 之外的其他端口,避免针对端口协议的攻击。

备份虚拟机

参考:https://www.vediotalk.com/archives/4297

ovftool vi://root:@10.0.0.2/Openwrt C:\Users\wonpn\Desktop\backup\20200908.ova

Openwrt系统备份、恢复已测试,一切正常。群晖系统好像是全量备份,文件体机太大,没试。

好吧,基本就这些了。软路由这全套搞下来,真是突出一个:折腾

NAS其实还是一个相对小众的产品,但是会在未来不断地发展壮大,因为,它有它独特的优势,比如数据完全掌握在自己手中,可以满足文件私密性的要求。还有就是局域网内的团队协作,也是挺不错的应用场景。数据的备份、同步、下载功能也挺不错,至少比公有云的网盘要强得多。

软路由这个产品是更加小众的一个产品,只能沦为“科技宅”们的玩物。