
飞牛NAS的小折腾
装机
硬件配置
主板 + CPU:云星N100 NAS主板 + asm1164 m2 nvme 转4口sata 转接卡 (¥600)
内存:金士顿 骇客神条DDR4笔记本内存条 3200 8G(¥109)
电源:益衡Flex小1U全模组350电源 ENP-8335L(¥409)
机箱:咸鱼 3D打印机箱(¥89)
硬盘:旧致态tiplus5000 512G、旧sata固态 x2、旧西数1T硬盘、旧西数2T硬盘、旧希捷4T硬盘、旧杂牌msata硬盘16G(未使用)
配件:线材:山泽SATA3.0数据线 x5(¥31.34)一分三sata硬盘电源线 x2(¥14.84)散热风扇:利民8015W 2200转(¥36.9)风扇防尘网x2(¥11.6)NGFF转SATA3转接板 x2 (¥29.4)
辅助工具:视频采集卡ms2130 hdmi转usb(¥35.9)HDMI高清线(¥10.9)
系统
飞牛OS官网下载:https://www.fnnas.com/download
使用HTTPS访问
一、关闭http访问
进入系统设置,安全性->端口设置->高级设置,勾选强制HTTPS连接,关闭重定向80与443端口(将俩端口留给Nginx Proxy Manager),之后在同一设置页面下开启防火墙
远程访问,使用FN Connect(远程登录使用官方的fn地址)
DDNS设置Cloudflare(用来给docker中的服务做解析)https://dash.cloudflare.com/profile/api-tokens在上面的网址创建令牌,编译区域DNS模板,获得API KEY,填写到飞牛上就可以了
安全性->证书->服务配置,选择fn connect 专属证书
为Docker添加代理
目的:让docker中的容器能够走代理出国
前提:需要在v2rayn中打开局域网访问
步骤:
飞牛设置中开启SSH,安全起见,更改端口
使用终端连接飞牛SSH(可使用Windows终端,命令为:
ssh <你的用户名>@<飞牛IP>
)获取root权限:
sudo -i
编辑docker配置文件:
cd /etc/systemd/system/
vim ./docker.service
按i进入编辑模式添加以下代码(注意192.168.50.109是运行v2rayn电脑的地址)
Environment="HTTP_PROXY=http://192.168.50.109:10808"
Environment="HTTPS_PROXY=http://192.168.50.109:10808"
Environment="NO_PROXY=localhost,127.0.0.1"
按esc退出编辑模式,
:wq
保存重载配置文件:
sudo systemctl daemon-reload
重启docker:
sudo systemctl restart docker
1Panel无法开机自启或无法更新
1、去这里下载一个安装包(修改版本号):https://resource-fit2cloud-com.oss-cn-hangzhou.aliyuncs.com/1panel/package/stable/v1.10.20-lts/release/1panel-v1.10.20-lts-linux-amd64.tar.gz
2、解压找到“1panel.service”这个文件
3、在[service]部分添加 ExecStartPre 代码(延迟启动避免1Panel无法随开机自启)
[Service]
ExecStartPre=/bin/sleep 5
4、上传到 etc/systemd/system/ 目录即可
CoolerControl风扇自定义
无法使用,云星N100主板不支持软件风扇调节,只能通过BIOS调节风扇转速
中文:https://post.smzdm.com/p/aovmk979/
官方:https://docs.coolercontrol.org/getting-started.html(飞牛系统为Debian)
按照官方步骤安装后,根据中文教程sudo modprobe drivetemp #加载硬盘温度检测模块,重启coolercontrol即可,之后按照教程设置模块在开机时自动加载
飞牛虚拟机的网络限速
目前飞牛官方并没有开发虚拟机的网络限速功能,但可以利用 OVS 原生 QoS 功能实现网络限速。(要求 OVS≥2.5 且支持 HTB )
# 查找虚拟机对应的 OVS 端口(如tap53eeb988-c7)
ovs-vsctl show
输出示例,可以看到虚拟机的接口是 vnet2,属于网桥 enp3s0-ovs,OVS 版本为 3.1.0
root@DragonMarker:~# ovs-vsctl show
19d20c10-43b1-4509-82d6-bcc1bf2cd08e
Bridge enp3s0-ovs
Port enp3s0
Interface enp3s0
Port enp3s0-ovs
Interface enp3s0-ovs
type: internal
Port vnet2
Interface vnet2
ovs_version: "3.1.0"
创建 QoS 策略并绑定到虚拟机端口
# 创建QoS策略(最大速率35Mbps)并关联队列
# 虚拟机的下载速度限制(对于 vnet2 来说是发送)
ovs-vsctl -- set port vnet2 qos=@newqos \
-- --id=@newqos create qos type=linux-htb other-config:max-rate=35000000 \
-- --id=@q0 create queue other-config:max-rate=35000000
# 虚拟机的上传速度限制(对于 vnet2 来说是接收)
ovs-vsctl set interface vnet2 ingress_policing_rate=35000 \
ingress_policing_burst=3500
OVS配置默认自动保存至数据库,重启后无需重新配置
关键参数说明:
type=linux-htb
:使用分层令牌桶算法实现精确限速max-rate=35000000
:对应 35Mbps(单位:bit/s)queue
:每个队列对应一个限速规则,other-config:max-rate
需与 QoS 的max-rate
一致ingress_policing_rate
:下载限速35Mbps(单位Kbps)(注意两边单位是不一样的)ingress_policing_burst
:突发值=限速的10%
(可选)允许虚拟机短时突发下载流量
添加burst
参数:
ovs-vsctl set qos <QoS_UUID> other-config:burst=3500000 # 突发值=限速的10%(这里设置为 3.5Mbps)
验证配置生效
# 查看端口QoS绑定状态
ovs-vsctl list port vnet2 | grep qos
# 查看QoS策略详细信息
ovs-vsctl list qos
# 查看队列参数
ovs-vsctl list queue
# 查看端口统计(含突发包计数)
ovs-appctl dpctl/show -s
# 查看ingress限速统计(Kbps单位)
ovs-vsctl list interface vnet2 | grep policing
预期输出:qos
字段应显示 UUID
,且 other_config:max-rate
值为 35000000
(回滚)恢复默认状态
# 消除 vnet2 端口的下载速度限制
ovs-vsctl clear port vnet2 qos
ovs-vsctl destroy qos <QoS_UUID>
# 消除上传速度限制
ovs-vsctl set interface vnet2 ingress_policing_rate=0 \
ingress_policing_burst=0