文章目录
  1. 服务器组建
  2. 硬件采购
  3. 服务器硬件一览
  4. 网路拓扑图
  5. PVE虚拟机
  6. Proxmox VE 系统安装
  7. 开启PVE硬件直通
  8. 安装LEDE路由
  9. 修改LEDE网关
  10. 添加电信IPTV VLAN接口
  11. 修改PVE服务器ip地址
  12. 搭建黑群晖
  13. 总结
  14. 2020 5月更新

受到流感疫情影响 寒假被延长到了3个月,在家无所事事 开始折腾服务器,刚好我很久之前就希望可以拥有一台功能完善 真正意义上的服务器。

先说一下本次组建服务器的配置 i5 6500T 8G DDR4运存 (可升级至16G) 256G 东芝XG3 m.2 Nvme固态硬盘 (便宜+MLC颗粒) 。至于 主板 机箱 电源 则是直接购买的HP Prodesk G2 mini,即便是小主机 也没有pcie接口 仅有一个千兆网口 也没法扩展更多的机械硬盘 (机器内仅能装1块) 但是奈何这种准系统的价格实在是香,带8G的运存 也仅仅400出头,不过6代的处理器价格还是玄学的偏高 但考虑到性能因素 还是咬咬牙冲了。

服务器安装的PVE虚拟化系统,将在内部创建3台KVM虚拟机 分别是 DSM918 LEDE Windows 7 以及创建2台LXC容器 OneinStack (debian) Minecraft Server (ubuntu) 之所以使用PVE更多的是因为 Esxi 和 unRaid 它们都要钱 它是唯一一套同时支持KVM虚拟化和LXC容器的平台。

但是我使用单网口作为主路由的布网方式十分的极端 ,且我家中物理网络走线十分的特殊; 如非需要 勿采用

全部数据走在一根网线上会造成性能上的损失,且一旦虚拟机或者LEDE当机 家中所有设备都将失去网络连接!!!

本博客架设于家中虚拟化服务器 通过自建的阿里云FRP服务器与外网取得80及443端口的网络链接 为方便称呼 在后续的文本中 家中虚拟化服务器 讲统一描述为 APTOIDE

服务器组建

硬件采购

这些便是组装服务器的所有硬件 (机械硬盘和千兆网线不包含在其中) 共计1333元,其中HP Prodesk G2准系统于闲鱼购买 其余都是淘宝入手

正如开头所说HP Prodesk G2准系统并不具有强大的扩展性,虽然价格很香 但是6代处理器的价格一直很玄学;所以我并不推荐购买相同硬件,从将来的可扩展性上来说 我更推荐自己组装。处理器我推荐购买HP Gen8同款的E3 1265L 价格十分便宜 仅300左右 同时身为E3却带有核显,4核8线程的设计相比6500T的4核4线程也更利于虚拟机,45W的能耗相比6500T的35W相差不大,同时性能1265L比6500T强了700多分 (数据来自Geekbench 5) 6500T食大便;其余主板因为是4代U所以E3神教的操作同样通用,机箱买蜗牛星际的就行 (便宜) ,0202年了DDR3的运存还不便宜么。

GeekBench 5 CPU跑分对比

服务器硬件一览

硬件安装我相信应该都会的吧-。=….. 很简单的

网路拓扑图

因为创建了虚拟网桥 所以单个网口 既可以是WAN也可以是LAN;LEDE的虚拟WAN是使用的PPPoE拨号 所以不论上级存在多少的交换机 只要可以访问到电信服务器即可成功拨号,LAN口同理 因为局域网中仅有一台DHCP服务器 所以不论处在那级网络 皆可为局域网中所有设备分配IP;VLAN51和VLAN85为IPTV专属的接口 在原本的光猫上仅有网口3配置了VLAN,IPTV必须使用网口3才可以正常登陆,在本布网实例中为仅有的虚拟LAN配置了VLAN 所以在网络中的任意网口都可接入IPTV。

DSM918 Windows7和LEDE为KVM虚拟机,DSM918为黑群晖 实现nas功能,Windows 7为挂机下载机下载文件可通过虚拟LAN直接储存至群晖系统,LEDE为路由系统 进行PPPoE拨号及DHCP服务 通关安装插件 可以实现路由代理 加速访问世界

OneinStack和Minecraft为LXC容器即OVZ虚拟机,OneinStack为LNMP服务器 为WEB服务分配固定的运存占用十分浪费资源 所以使用LXC架构 动态分配运存 节约运存开资,Minecraft服务器同理 但可以分配所有运存给它 以便在运存不足时最大化压榨宿主机资源。

PVE虚拟机

Proxmox VE 系统安装

proxmox的官网 去下载 Proxmox VE 6.1 ISO Installer  (推荐使用BT 速度快

找一个没有重要数据的闲置U盘(4G以上)在Windows系统下使用UltraISO写入到u盘 勿用Rufus之类的软件,安装盘是无法引导的;随后重启计算机至u盘启动。(图片已折叠)







然后在另一台电脑上通过浏览器访问 https://你pve的ip:8006 (需要允许证书错误)

PVE 后台一览,CPU Thermal State的温度显示为我自己添加模块

开启PVE硬件直通

在左栏中点击数据中心下的PVE 在点击右边的Shell 进入pve的网页终端,在内键入以下命令;完成后重启PVE服务器即可使用VT-d (需要CPU支持vt-d以及主板开启虚拟化)

nano /etc/default/grub

在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"

修改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

## 如果是amd cpu请改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

## 保存方法 键盘 ctrl + x 后回车

update-grub ##更新GRUB

cat /etc/modules  ##查看modules中是否有vfio、vfio_iommu_type1、vfio_pci、vfio_virqfd 

##如果没有添加以下内容后保存
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
添加完成如图

随后重启PVE系统即可完成操作 reboot

安装LEDE路由

本教程使用koolshare的lede固件 点此处 进入固件下载页面,截止至文章编写时间最新的固件版本为 openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img.gz

打开网页后台,点击右上角 创建虚拟机 输入名称LEDE;由于硬盘是直接导入的所以在创建时无须建立光驱(操作系统) 默认建立的硬盘在创建完成后建议直接删除,CPU和内存根据你服务器配置 自行决定,其余项目默认即可。(图片已折叠)

在本次LEDE的建立中,网卡选择的是 VirtIO(半虚拟化) ;实际进入LEDE的后台会错误的显示为半双工,然而是正常工作的;VirtIO的模型可以达到最大的运行效率,如果看着心里难受RTL8139和intel E1000也都是可以使用的。









进入PVE后台 点击LEDE(100) 进入硬件选项卡 点击 添加 -> 网络设备 模型依旧选择 VirtIO(半虚拟化)

在本次组网中因为只有一个物理网口 所以需要实现单口复用;于是第二张网卡也需要桥接到vmbr0

在左栏中点击数据中心下的PVE 在点击右边的Shell 进入pve的网页终端,在内键入以下命令;完成后在虚拟机内双击添加未使用的磁盘,设置为第一启动项后即可开机。

cd /root
wget https://firmware.koolshare.cn/LEDE_X64_fw867/openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img.gz ##下载镜像

tar xzf openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img.gz ##解压 至此获得LEDE img镜像

wget http://dl.everun.top/softwares/utilities/img2kvm/img2kvm  ##下载img2disk

至此所需文件准备就绪,如果不熟悉linux指令 或者使用其它的固件,也可以先单独下载文件后再用scp或者sftp上传进PVE

chmod +x ./img2kvm  ##赋予img2kvm执行权限

##./img2kvm 镜像名称 虚拟机id号,以本次为例 命令如下
./img2kvm openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img 100
完成后效果如图

修改LEDE网关

LEDE默认使用的网关是192.168.1.1 Mask为255.255.255.0 这与你的电信光猫的网关相冲突 (如果打算lede进行PPPoE拨号 光猫仅桥接 或者 你的光猫不是此网关请无视本步操作)

进入PVE后台 点击LEDE(100) 点击控制台 (此处不能进行ssh连接,lede与上级网关相冲突 网络不通)随后键入指令 nano /etc/config/network

修改 config interface ‘lan’ 项目至合适的网关和NetMask,以本次为例 我将网关改为10.0.0.1 Mask为255.0.0.0 完成后 如下

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0'
	option proto 'static'
	option ipaddr '10.0.0.1'
	option netmask '255.0.0.0'
	option ip6assign '60'

为了让新设置的网关和掩码生效 我们需要重启下网络 (或者直接输入 reboot 重启lede路由)  /etc/init.d/network restart 

将电脑通过网线或者wifi接入上级AP (可能需要手动设置ip地址 或者关闭局域网内其它DHCP服务),具体接入方案查看 网络拓扑图;如果尚未进行网络布局也可以临时通过网线直接连接 访问lede后台;假如你给lede直通了多个网口 可直接连接网线至其它物理网口。

至此LEDE成功启动,恭喜你获得了软路由

原本Koolshare的LEDE后台并不是如此(有些页面的操作我觉得有点反人类),我个人比较喜欢原版LEDE的界面 所以修改了;一切以实际显示的为准。

添加电信IPTV VLAN接口

LEDE后台 -> 网络 -> 防火墙 -> 添加

命名iptv 入站数据和出站数据和转发全部改为接受 保存即可

LEDE后台 -> 网络 -> 接口 -> 添加新接口

新接口的名称:iptv 新接口的协议:不配置协议 勾选桥接接口 包括以下接口:选择自定义接口,输入eth0.51 eth0.85 后点击 Create interface

我这已经配置好了IPTV 可以看见有两个软件VLAN,按照图片上这样填写就可以了

在接口 页面下 点击 IPTV旁边 蓝色的编辑按钮

在物理设置选项卡中 检查 桥接接口 是否打勾,接口是不是显示了eth0.51和eth0.85

在防火墙选项卡中 选择 iptv 完成防火墙的设置

LEDE后台 -> 系统 -> 进阶设置 -> 配置dnsmasq选项卡;填入以下内容,完成后重启LEDE系统 即可完成iptv的设置。

dhcp-option-force=125,00:00:00:00:1a:02:06:48:47:57:2d:43:54:03:04:5a:58:48:4e:0a:02:20:00:0b:02:00:55:0d:02:00:2e
dhcp-option=15
dhcp-option=28
dhcp-option=60,00:00:01:06:68:75:61:71:69:6E:02:0A:48:47:55:34:32:31:4E:20:76:33:03:0A:48:47:55:34:32:31:4E:20:76:33:04:10:32:30:30:2E:55:59:59:2E:30:2E:41:2E:30:2E:53:48:05:04:00:01:00:50

一般而言IPTV是仅需要VLAN85接口 但是某些地区的点播服务需要使用的VLAN51 所以在此一并加上了。

在防火墙 – 区域设置 中 配置好的防火墙在下方 区域 的图示中 会显示为 拒绝,但实测不会影响IPTV的使用,要是看着心里难受 可以在基本配置中 将转发更改为接受

zerotier为我额外添加的内容 无视即可

修改PVE服务器ip地址

我们的LEDE软路由已经准备就绪 但是PVE服务器还在使用安装时设置的旧ip访问,所以本步 将设置PVE的后台访问地址。

点击左侧数据中心下的pve 展开系统选项卡 进入 网络 双击类别为Linux Bridge的vmbr0 (enp3s0为你的物理网卡) 修改你想要的ipv4地址以及网关,完成后重启服务器;仅在IPV4/CIDR中填写ip地址你会发现不能保存,那是因为我们需要在这一并设置Mask码

以网关10.0.0.1 掩码255.0.0.0 IP地址10.0.0.2为例 IPV4/CIDR:10.0.0.2/8

以网关10.0.0.1 掩码255.255.0.0 IP地址10.0.0.2为例 IPV4/CIDR:10.0.0.2/16

以网关10.0.0.1 掩码255.255.255.0 IP地址10.0.0.2为例 IPV4/CIDR:10.0.0.2/24

以网关192.168.1.1 掩码255.255.255.0 IP地址192.168.1.2为例 IPV4/CIDR:192.168.1.2/24

设置完成如图所示

至此,我们可以通过 10.0.0.1 来访问我们的LEDE软路由;通过https://10.0.0.2:8006 访问我们的PVE服务器后台

搭建黑群晖

先到网上去寻找最新的黑群晖引导 synoboot.img 并下载修改过的安装pat文件,我们可以在 nax2x 上找到所需的所有内容。本教程以最新的dsm6.2.1为例

如果遇到文件无法下载/网页无法打开,也可以直接下载此备份 (从我的DSM服务器)

推荐下载安装DSM918 因为后续会安装docker使用jellyfin,需要使用到核显 ,而在3615xs、3617xs、918之中 只有918是有核显的Render渲染器

3615xs、3617xs、918这三个型号,其实都差不多,区别在于:
1、918只支持9个存储盘和2个缓存盘,如果你的存储盘有10个,抱歉了这2个型号不合适你。
2、918硬盘格式默认有SHR格式,3615xs和3617xs没有;
3、3615xs和3617xs的video套件只能软解不能硬解,918有硬解的选项(全洗白后才能使用)

打开PVE网页后台,点击右上角 创建虚拟机 输入名称DSM918 (随意);由于引导是直接导入的 储存硬盘是直通的,所以在创建时无须建立光驱(操作系统) 默认建立的硬盘在创建完成后建议直接删除,CPU和内存根据你服务器配置 自行决定,网卡模型因为受到驱动支持 以及运行效率问题 建议使用intel e1000,其余项目默认即可。(图片已折叠)









在左栏中点击数据中心下的PVE 在点击右边的Shell 进入pve的终端,在内键入以下命令 如果nas2x的下载速度过慢也可直接下载引导文件随后通过scp指令传入 scp 你文件位置 root@10.0.0.2:/root

cd /root
wget http://down.nas2x.com/synology/dsm/6.2/synoboot/v1.04b.for.dms.6.2.1.synoboot-ds918.zip  ##下载引导文件

unzip v1.04b.for.dms.6.2.1.synoboot-ds918.zip  ##解压引导文件

##./img2kvm 镜像名称 虚拟机id号,以本次为例 命令如下
./img2kvm synoboot.img 101

由于我在 Aptoide 使用了较大的硬盘空间 所以我将为黑群晖配置32G虚拟SSD硬盘 以加快黑群晖文件读取速度 (配置的是读取缓存) 同时创建一个16G的硬盘用于存储docker (我不希望docker容器运行在机械硬盘上)

如果将docker容器存储在机械硬盘上,那在容器运行期间 机械硬盘将无法进入休眠 硬盘一直运行增加耗电不说 而且会减少硬盘的使用寿命

增加读取缓存也是相同目的 减少硬盘的唤醒次数,延长硬盘使用寿命

进入PVE后台 点击DSM918(101) 进入硬件选项卡 双击未使用的磁盘 总线/设备选择SATA 至此DSM的引导盘添加就绪;然后 添加 -> 硬盘 总线/设备选择SATA 储存:local-lvm 磁盘大小:16 Docker专用存储盘添加完毕;添加 -> 硬盘 总线/设备选择SATA 储存:local-lvm 磁盘大小:32 勾选右下角 添加 左侧的 高级 复选框,勾选SSD仿真,至此所有虚拟硬盘添加完毕。

在PVE后台 DSM918(101) 的硬件选项卡中 添加 PCI设备,在此我会将核显和SATA控制器直通给群晖;核显用于下一步的jellyfin视频实时转码,直通SATA控制器是为了让群晖完全控制 (硬盘休眠 SMART信息等)

根据实际情况选择硬件添加即可

添加一个usb端口 用于扩展,我的服务器仅有一个sata盘位 日后扩展空间可能只能依靠USB了 (勾选使用USB3) 完成后我们便可启动这台虚拟机了。

看到这个画面 就可以打开 http://find.synology.com 来搜索局域网内的群晖了

不出意外,到这步群晖就能正常使用了;安装完成自动重启后 即可愉快使用。

由于群晖的系统设计的非常直观,易于入手 且在网路上有很多详细的教程 所以具体的使用方法 在此不予介绍。

总结

HP ProDesk G3这准系统的价格还是很香的,但是迫于机器本身的大小 其不具有强大的扩充性;在pve里安装openwrt作为路由时,也仅能通过上级交换机来扩充其lan口,由于所有的数据是由单网口收发 在对虚拟机DSM进行文件读写时 受到了严重的网络瓶颈(只能跑到千兆速率的一半);在进行DSM时 由于其机箱内只能内置单块2.5寸硬盘的缘故 也并不适用于NAS(USB连接硬盘不稳定 不予考虑)。

所以这机器 最佳的使用场景还是当作一台性能强劲的NUC小电脑(使用桌面端处理器)使用,当作客厅HTPC或许是个不错的选择。

2020 5月更新

机器已于同年3月在闲鱼卖出,从哪里来 回哪里去 2333.

我使用家中闲置的老电脑作为机箱(废物利用) 另购了主板 运存 散热器 网卡等 组了一台大机器作为服务器使用 ,截止至2020年5月11日 运行稳定。