#### Plugin列表 ##### Community Applications 主界面 - APPS 使用Unraid必备,应该不会有人不安装这个  ##### Dynamix Cache Directories SETTINGS - User Utilities - Folder Caching 使用Cache盘缓存文件系统结构到内存中,减少用户每次访问目录都要调用硬盘阵列读写以及不必要的访问导致硬盘解除休眠启动的情况。  ##### Dynamix File Integrity SETTINGS - User Utilities - File Integrity 实时为硬盘阵列生成文件hash信息。用于防止硬盘静态数据错误,也就是数据长时间不用的情况下由于各种原因已经损坏而管理员或用户无法发现的问题。  第一行设置Header menu的话,GUI会在主界面 - INTEGRITY;Tools menu则在TOOLS里 ##### Dynamix SSD TRIM SETTINGS - User Preferences - Scheduler 创建cronjob执行SSD Trim,一般是为Cache盘使用  ##### Dynamix System Information TOOLS - System Information - System profiler 显示主机以及系统所有信息  ##### Dynamix System Statistics 主界面 - STATS 显示系统CPU、硬盘I/O、网络带宽状态   ##### Dynamix WireGuard SETTINGS - Network Services - VPN Manager VPN隧道功能,家庭宽带有公网IP情况下可以通过DDNS+域名解析设置实现外网接入Unraid,不想暴露内网设备到公网时比较方便,特别是想通过SMB访问共享的时候。  ##### Nvidia Driver SETTINGS - User Utilities - Nvidia Driver Docker容器使用Nvidia显卡必备,可以搭配GPU Statistics实现显卡资源监控 成功识别调用显卡后,nVidia Info会显示对应的驱动版本、GPU PCI-E ID (01:00.0) 、系统内GPU ID (GPU-xxx-xxx-xxx-xxx-xxx),右侧可以选择驱动版本下载更新 一样的国内网络问题,驱动包下载比较困难,建议配置代理后点击左下方手工DOWNLOAD并重启生效 ##### GPU Statistics DASHBOARD - GPU SETTINGS - User Utilities - GPU Statistics 显示GPU实时信息,温度、内存占用、显存频率、编解码负载、风扇情况等。  ##### Recycle Bin SETTINGS - User Utilities - Recycle Bin 给SMB共享提供回收站功能,支持过期文件定期清理。在SMB访问过程中如果有文件被删除,会在对应的Shares根目录下生成".Recycle.Bin"并根据设置规则存放。配置Recycle Bin parameters可以为删除文件重命名,我只放了%P,也就是只保留完整路径。 删除/mnt/user/Zakikun/test1.txt的时候,文件相当于被移动到/mnt/user/Zakikun/.Recycle.Bin/mnt/user/Zakikun/test1.txt,默认7天后自动清理删除。  ##### Unassigned Devices & Unassigned Devices Plus MAIN - Unassigned Devices 这两个插件通常一起安装,前者可以挂载非硬盘阵列的硬盘以及远程连接挂载SMB、NFS网络磁盘,后者增加NTFS、HFS+、exFAT、apfs等文件系统挂载支持,从其他设备上拆硬盘下来接入Unraid转移数据的时候非常有用。  ##### unBALANCE SETTINGS - User Utilities - unBALANCE 硬盘阵列文件调整,具体功能没仔细用过 (所以没有截图) Scatter模式:从一个硬盘里转移文件到其他硬盘里 Gather模式:把某个Share目录的所有数据转移到同一个硬盘内 官方举例使用场景: 1. 清空某一个硬盘,方便更改该硬盘文件系统 2. 转移一部电视剧集的所有文件到某一个硬盘里 3. 从一个硬盘内,移动特定的文件夹到另一个硬盘 4. 从一个硬盘内,拆分你的电影、电视剧集、游戏文件夹到其他硬盘 ##### User Scripts SETTINGS - User Utilities - User Scripts 自定义脚本运行,支持Cron。想定期重复执行一些半自动化或者自动化的脚本时非常有用,基本必装。 1. 定期启动acme.sh容器,通过DNS验证方式更新通配域名SSL证书 2. 定期重新加载nginx,让更新后的证书生效 3. 定期执行Seafile-gc命令清理Seafile网盘容器内不需要的文件数据块  ##### CA Config Editor TOOLS - Unraid OS - Config File Editor 提供修改系统配置文件的Web界面。一般Flash盘 (启动U盘)是不推荐通过SMB共享挂载出去,但平时想修改配置文件的时候通过管理界面的Terminal再用nano修改也不方便,这时候就可以用这个工具。  ##### Fix Common Problems SETTINGS - User Utilities - Fix Common Problems 这个可装可不装,属于官方推荐的Unraid错误设置检查工具。比如会提示用户插件、Docker检查更新功能未启用,appdata文件夹没有设置Cache-only (数据只存放在Cache盘里)等等  #### 坑 ##### Unraid自身Web管理界面访问外部网络困难 由于国内的网络特殊性以及Unraid基本采用外网托管资源的缘故,没有代理的情况下会出现访问困难的问题。Unraid在启动时会根据启动U盘里的/boot/config/go文件启动emhttp (也就是后台Web管理界面),而emhttp是支持http_proxy和https_proxy参数输入的,所以可以指定代理地址从而让整个后台Web管理的http访问走代理。 原文件内容为: ``` #!/bin/bash # Start the Management Utility /usr/local/sbin/emhttp & ``` 改为: ``` #!/bin/bash # Start the Management Utility # 我的Unraid主机跑了虚拟旁路由并开启透明代理,内网地址以及代理端口为192.168.9.2:7893 http_proxy=http://192.168.9.2:7893 https_proxy=http://192.168.9.2:7893 /usr/local/sbin/emhttp & ``` !!需要重新启动Unraid主机才能生效 ##### 社区插件 (Community Applications) 访问困难 同[Unraid自身Web管理界面访问外部网络困难](#Unraid自身Web管理界面访问外部网络困难),官方论坛解释可以单独为CA配置代理。实际使用中Web配置代理后,CA也就不需要进行代理设置。 新建/config/plugins/community.applications/proxy.cfg ``` port=7893 tunnel=1 proxy=http://192.168.9.2 ``` !!需要重新启动Unraid主机才能生效 ##### Docker 镜像设置 还是国内网络缘故,通过设置registry-mirrors可以加速docker pull,新建并修改/etc/docker/daemon.json ``` { "registry-mirrors": ["https://registry.docker-cn.com"] } ``` Unraid启动时会清空Docker镜像地址设置,新建修改并不方便,通过/boot/config/go编辑就可以实现开机生成写入 ``` mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF ``` 需要注意的是,通过go文件自动创建写入会跟Nvidia Driver的开机启动冲突,原因和解决方案在下一个坑会提到。 ##### Nvidia Driver与Docker功能启动参数的注意事项 因为Nvidia Driver本身会下载一个打包好的Package (里面包含驱动以及各类配置文件),在Unraid系统启动引导时会自动解压并加载嵌入到系统里 (执行优先级高于/boot/config/go),会直接覆盖掉/etc/docker/daemon.json (内容如下) ``` { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } ``` 所以需要额外修改/boot/config/go让二者兼容 ``` #!/bin/bash # Start the Management Utility # 添加下面这一行,查找第一个"{",并在其后另起一行插入内容 sed -i '0,/{/a\ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],' /etc/docker/daemon.json http_proxy=http://192.168.9.2:7893 https_proxy=http://192.168.9.2:7893 /usr/local/sbin/emhttp & ``` 最终daemon.json会变成这样 ``` { "registry-mirrors": ["https://registry.docker-cn.com"], "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } ``` ##### Docker容器可以通过参数输入实现代理访问外部网络 和Unraid自身的emhttp一样,docker容器一般可以设置http代理  ##### Unraid的Web管理界面通过Nginx反向代理后信息刷新问题  在Nginx反代Unraid的Web管理页面的时候,发现CPU占用率等信息不会实时更新显示,这个解决起来比较简单,在反向代理里设置2个Header就行 ``` proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; ``` ##### Docker容器运行Left4Dead2游戏服务端 [gameservers@ich777](https://forums.unraid.net/topic/79530-support-ich777-gameserver-dockers/) 官方社区的@ich777维护了一大批SteamCMD相关的游戏服务端部署镜像,我自己也定制了自己的求生之路2插件调参服务端。这里面有一个大坑,游戏服务端存放路径必须是单一物理硬盘,不然会因为Unraid自动将新文件均衡分散写入不同物理硬盘的特性导致运行失败。 解决方法:指定存放到同一个物理硬盘里,并保证对应Share的Use cache pool为No或者Only,Included disk设置为对应的物理硬盘 。 Unraid中Array Devices连接到不同的路径 (/mnt/disk1 disk2 disk3等),比如我的L4D2服务器就是指定容器存放在第二个物理硬盘 (/mnt/disk2)   Loading... <div class="tip share">请注意,本文编写于 1754 天前,最后修改于 1482 天前,其中某些信息可能已经过时。</div> #### Plugin列表 ##### Community Applications 主界面 - APPS 使用Unraid必备,应该不会有人不安装这个  ##### Dynamix Cache Directories SETTINGS - User Utilities - Folder Caching 使用Cache盘缓存文件系统结构到内存中,减少用户每次访问目录都要调用硬盘阵列读写以及不必要的访问导致硬盘解除休眠启动的情况。  ##### Dynamix File Integrity SETTINGS - User Utilities - File Integrity 实时为硬盘阵列生成文件hash信息。用于防止硬盘静态数据错误,也就是数据长时间不用的情况下由于各种原因已经损坏而管理员或用户无法发现的问题。  第一行设置Header menu的话,GUI会在主界面 - INTEGRITY;Tools menu则在TOOLS里 ##### Dynamix SSD TRIM SETTINGS - User Preferences - Scheduler 创建cronjob执行SSD Trim,一般是为Cache盘使用  ##### Dynamix System Information TOOLS - System Information - System profiler 显示主机以及系统所有信息  ##### Dynamix System Statistics 主界面 - STATS 显示系统CPU、硬盘I/O、网络带宽状态   ##### Dynamix WireGuard SETTINGS - Network Services - VPN Manager VPN隧道功能,家庭宽带有公网IP情况下可以通过DDNS+域名解析设置实现外网接入Unraid,不想暴露内网设备到公网时比较方便,特别是想通过SMB访问共享的时候。  ##### Nvidia Driver SETTINGS - User Utilities - Nvidia Driver Docker容器使用Nvidia显卡必备,可以搭配GPU Statistics实现显卡资源监控 成功识别调用显卡后,nVidia Info会显示对应的驱动版本、GPU PCI-E ID (01:00.0) 、系统内GPU ID (GPU-xxx-xxx-xxx-xxx-xxx),右侧可以选择驱动版本下载更新 一样的国内网络问题,驱动包下载比较困难,建议配置代理后点击左下方手工DOWNLOAD并重启生效 ##### GPU Statistics DASHBOARD - GPU SETTINGS - User Utilities - GPU Statistics 显示GPU实时信息,温度、内存占用、显存频率、编解码负载、风扇情况等。  ##### Recycle Bin SETTINGS - User Utilities - Recycle Bin 给SMB共享提供回收站功能,支持过期文件定期清理。在SMB访问过程中如果有文件被删除,会在对应的Shares根目录下生成".Recycle.Bin"并根据设置规则存放。配置Recycle Bin parameters可以为删除文件重命名,我只放了%P,也就是只保留完整路径。 删除/mnt/user/Zakikun/test1.txt的时候,文件相当于被移动到/mnt/user/Zakikun/.Recycle.Bin/mnt/user/Zakikun/test1.txt,默认7天后自动清理删除。  ##### Unassigned Devices & Unassigned Devices Plus MAIN - Unassigned Devices 这两个插件通常一起安装,前者可以挂载非硬盘阵列的硬盘以及远程连接挂载SMB、NFS网络磁盘,后者增加NTFS、HFS+、exFAT、apfs等文件系统挂载支持,从其他设备上拆硬盘下来接入Unraid转移数据的时候非常有用。  ##### unBALANCE SETTINGS - User Utilities - unBALANCE 硬盘阵列文件调整,具体功能没仔细用过 (所以没有截图) Scatter模式:从一个硬盘里转移文件到其他硬盘里 Gather模式:把某个Share目录的所有数据转移到同一个硬盘内 官方举例使用场景: 1. 清空某一个硬盘,方便更改该硬盘文件系统 2. 转移一部电视剧集的所有文件到某一个硬盘里 3. 从一个硬盘内,移动特定的文件夹到另一个硬盘 4. 从一个硬盘内,拆分你的电影、电视剧集、游戏文件夹到其他硬盘 ##### User Scripts SETTINGS - User Utilities - User Scripts 自定义脚本运行,支持Cron。想定期重复执行一些半自动化或者自动化的脚本时非常有用,基本必装。 1. 定期启动acme.sh容器,通过DNS验证方式更新通配域名SSL证书 2. 定期重新加载nginx,让更新后的证书生效 3. 定期执行Seafile-gc命令清理Seafile网盘容器内不需要的文件数据块  ##### CA Config Editor TOOLS - Unraid OS - Config File Editor 提供修改系统配置文件的Web界面。一般Flash盘 (启动U盘)是不推荐通过SMB共享挂载出去,但平时想修改配置文件的时候通过管理界面的Terminal再用nano修改也不方便,这时候就可以用这个工具。  ##### Fix Common Problems SETTINGS - User Utilities - Fix Common Problems 这个可装可不装,属于官方推荐的Unraid错误设置检查工具。比如会提示用户插件、Docker检查更新功能未启用,appdata文件夹没有设置Cache-only (数据只存放在Cache盘里)等等  #### 坑 ##### Unraid自身Web管理界面访问外部网络困难 由于国内的网络特殊性以及Unraid基本采用外网托管资源的缘故,没有代理的情况下会出现访问困难的问题。Unraid在启动时会根据启动U盘里的/boot/config/go文件启动emhttp (也就是后台Web管理界面),而emhttp是支持http_proxy和https_proxy参数输入的,所以可以指定代理地址从而让整个后台Web管理的http访问走代理。 原文件内容为: ``` #!/bin/bash # Start the Management Utility /usr/local/sbin/emhttp & ``` 改为: ``` #!/bin/bash # Start the Management Utility # 我的Unraid主机跑了虚拟旁路由并开启透明代理,内网地址以及代理端口为192.168.9.2:7893 http_proxy=http://192.168.9.2:7893 https_proxy=http://192.168.9.2:7893 /usr/local/sbin/emhttp & ``` !!需要重新启动Unraid主机才能生效 ##### 社区插件 (Community Applications) 访问困难 同[Unraid自身Web管理界面访问外部网络困难](#Unraid自身Web管理界面访问外部网络困难),官方论坛解释可以单独为CA配置代理。实际使用中Web配置代理后,CA也就不需要进行代理设置。 新建/config/plugins/community.applications/proxy.cfg ``` port=7893 tunnel=1 proxy=http://192.168.9.2 ``` !!需要重新启动Unraid主机才能生效 ##### Docker 镜像设置 还是国内网络缘故,通过设置registry-mirrors可以加速docker pull,新建并修改/etc/docker/daemon.json ``` { "registry-mirrors": ["https://registry.docker-cn.com"] } ``` Unraid启动时会清空Docker镜像地址设置,新建修改并不方便,通过/boot/config/go编辑就可以实现开机生成写入 ``` mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF ``` 需要注意的是,通过go文件自动创建写入会跟Nvidia Driver的开机启动冲突,原因和解决方案在下一个坑会提到。 ##### Nvidia Driver与Docker功能启动参数的注意事项 因为Nvidia Driver本身会下载一个打包好的Package (里面包含驱动以及各类配置文件),在Unraid系统启动引导时会自动解压并加载嵌入到系统里 (执行优先级高于/boot/config/go),会直接覆盖掉/etc/docker/daemon.json (内容如下) ``` { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } ``` 所以需要额外修改/boot/config/go让二者兼容 ``` #!/bin/bash # Start the Management Utility # 添加下面这一行,查找第一个"{",并在其后另起一行插入内容 sed -i '0,/{/a\ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],' /etc/docker/daemon.json http_proxy=http://192.168.9.2:7893 https_proxy=http://192.168.9.2:7893 /usr/local/sbin/emhttp & ``` 最终daemon.json会变成这样 ``` { "registry-mirrors": ["https://registry.docker-cn.com"], "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } ``` ##### Docker容器可以通过参数输入实现代理访问外部网络 和Unraid自身的emhttp一样,docker容器一般可以设置http代理  ##### Unraid的Web管理界面通过Nginx反向代理后信息刷新问题  在Nginx反代Unraid的Web管理页面的时候,发现CPU占用率等信息不会实时更新显示,这个解决起来比较简单,在反向代理里设置2个Header就行 ``` proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; ``` ##### Docker容器运行Left4Dead2游戏服务端 [gameservers@ich777](https://forums.unraid.net/topic/79530-support-ich777-gameserver-dockers/) 官方社区的@ich777维护了一大批SteamCMD相关的游戏服务端部署镜像,我自己也定制了自己的求生之路2插件调参服务端。这里面有一个大坑,游戏服务端存放路径必须是单一物理硬盘,不然会因为Unraid自动将新文件均衡分散写入不同物理硬盘的特性导致运行失败。 解决方法:指定存放到同一个物理硬盘里,并保证对应Share的Use cache pool为No或者Only,Included disk设置为对应的物理硬盘 。 Unraid中Array Devices连接到不同的路径 (/mnt/disk1 disk2 disk3等),比如我的L4D2服务器就是指定容器存放在第二个物理硬盘 (/mnt/disk2)   最后修改:2022 年 10 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 8 如果觉得我的文章对你有用,请随意赞赏