前言
Nas的普通设置其实就是看了都会的,这次来试试几个比较难的点:反向代理,https加密,官方ollama套件的使用,飞牛虚拟机的设置和docker安装设置zerotier和sakura frp。
反向代理
反向代理顾名思义,是从外网访问回内网服务器的一种技术,出名的套件有nginx,lucky之类的。lucky是国人自制的软件,从一开始的反向代理到现在的很多内网穿透,网络存储什么的功能应有尽有,在之后我们也还会用到它。飞牛中的反向代理服务器可能是基于nginx源码修改,因此无法使用nginx套件,需要使用lucky进行反向代理。
这次我们所说的反向代理是基于ddns+ipv6访问的,ddns我已经在飞牛设置那边设置了,因此在lucky中不必再设置一次ddns。
具体步骤
1.设置反向代理端口。在Web服务中,点击添加Web服务规则,选择简易模式,监听类型全选,监听端口选个不占用你喜欢的,启用TLS(设置了https之后再启用!没设置就先别启用!无伤大雅!),之后保存就可以了。
lucky反向代理设置
2.添加需要反向代理的软件。在Web服务类型中选择反向代理,前端地址填写你在外网访问的网址,可以是二级域名,也就是在主域名前加个前缀。后端地址填写内网的IP地址,注意要手动填写http://或者是https,之后启用万事大吉保存即可。
设置软件的反向代理
3.在你域名所在服务商的管理面板中启用二级域名的解析。以阿里云为例子,打开云解析DNS之后,添加记录,选择AAAA,也就是ipv6地址的解析,主机记录填写lucky第二步设置的前缀,在最后的记录值填写飞牛nas的ipv6地址,在设置中就可以找到。确定后等待一下就会自动解析了,用流量或者有ipv6的外网输入网址+你设置的端口号访问一下就可以检测是否成功了。
云服务商中解析二级域名
ps:在sakura frp的设置中,软件默认的访问方式就是进行https加密的,所以在后端地址,也就是内网ip设置的时候要https开头,并不是http!
BasicAuth认证
在外网进行反向代理访问时,可以对所有软件进行BasicAuth认证,也就是多了一层账密加密,更加安全就是了。要设置BasicAuth认证,只需要在软件设置反向代理时,移到最下面,就能看到了。
添加套件,进行BasicAuth认证时,除了要账密,还要在路径认证匹配中填上“/“,以保证只对主路径进行加密,也就是一次加密,无需输入多次账密。
lucky自动补全网址后的端口号
每次输网址都要加前缀和后缀,这对于我这种群晖nas转过来的人当然相当不方便,要是能设置成只用二级域名就可以访问的就好了。
这个设置涉及到80和443端口,也就是http和https端口的设置,你每次用http/https访问,在后面其实都是加了80或者是443端口的,只是人家自动帮你补上了而已。而这两个端口服务商一般又是不对你们开放的,要是你发现服务商没有锁,那就可以按照下面的步骤改:
若要启用lucky对于80和443端口的控制,在之后地址末无需添加端口号。要在配置文件中改。
1.在飞牛控制面板中系统设置——安全性——高级设置中关闭重定向80与443端口
2.修改lucky的配置文件,使其可以监听80和443端口
使用命令行工具,修改 /var/apps/Lucky/config路径下的 privilege文件,将文件中 run-as的值修改为 root,保存后重启飞牛
lucky命令行设置
3.在lucky中添加重定向
新开一个Web服务类型,选择重定向,就像上面设置反代端口号一样。
80端口设置:简易模式,监听类型全选,80端口,服务类型选择重定向,默认目标地址填https://{host}:1012
ps:在最后的端口号是你自己设置的反代的端口号,我自己设置的是1012
80端口设置
443端口设置:大体设置同80端口,不过要勾选启用TLS。
443端口设置
Https加密
如果我们不设置https加密的话,那么每次我们输入网址访问的时候,浏览器都会在网址旁边显示出不安全三个大字,那是因为http都是明文传输的协议,包不安全的。所以我们就会想着使用第二种https加密访问,这样你的nas更安全,更不容易遭受爬虫扫描和攻击。
要想使http变成https加密访问,就要申请ssl证书。
1.在lucky中的安全管理,点击添加证书,添加方式选择ACME,证书颁发机构选择let's encrypt,验证方式选择你所购买域名的运营商,我这个是阿里云的,在下面就要填写ID和secret,域名列表直接填写主域名和泛域名。比如说你的主域名是aaa.com,那么泛域名就是*.aaa.com,表面所有二级域名都会申请到证书。
添加SSL证书
2.在更多设置中勾选启用DNS查询强制IPv4和DNS查询仅使用TCP通道,最后保存即可,等待几分钟就会出现申请通过的结果。
ps:若证书申请失败最后提示:net/http: TLS handshake timeout时,可尝试勾上使用IPv4通道申请证书再去申请,再不行可尝试设置一个代理服务器。
之后你只需要在上文提到的启用TLS,那么所有软件的访问都会变成https加密访问啦!
官方套件ollama的使用
我们以N卡为例,在使用之前的第一件事肯定是打驱动!
安装N卡驱动
那么,安装nvidia驱动,有两种方式:
①官方套件,560.28.03版本,下载安装等待就可以用。
②手动安装,可能没用,但也是提供一种方式,官方可能是自动屏蔽了除套件以外的显卡驱动。
ps:在安装官方套件之前,首先要看看你所用的显卡支持什么版本的驱动,在命令行中操作。
1.首先检测显卡是否被主机识别到
在命令行中输入lspci,列出所以已被识别的pcie设备,看看有没有nv的显卡。有就继续,没有就要重新插拔一下显卡,看看能不能识别到。如果还是识别不到,那就是显卡或者是主板pcie插槽坏了。
2.安装和执行检测脚本
①先安装检测脚本:sudo apt -y install nvidia-detect
②安装完成之后,输入nvidia-detect,自动检测显卡所需驱动版本。之后就会列出你的显卡名称和驱动型号等信息,看看是不是比官方套件的560.28.03版本更旧,更旧就可以直接用,更新就可能无法使用。
N卡驱动检测结果
官方ollama和open-webui升级安装
之后就是官方安装ollama和open-webui,安装即用,打开下载模型使用就行了。
ps:因为官方套件更新不及时,导致有些新模型不能及时用,需要更新ollama和open-webui。
ollama的升级安装
1.在应用中心中停用ollama
2.在官网下载最新的ollama安装包:ollama-linux-amd64.tgz
ps:如果打不开github下载网址,可以去镜像下载地址。
官方ollama安装包镜像下载地址:Now, everyone will be excellent! | newbe
如果镜像下载不了,就去复制官方github的下载链接,到加速站下载,地址是:GitHub 文件加速
3.找到ollama在飞牛的安装目录,备份并更新ollama。
①在命令行中操作,输入cd /volX/@appcenter/ai_installer/,这个X指的是当时你把ollama安装到哪个存储空间,1就把X改为1,之后同理。
②把已安装的旧版本ollama备份,找到ollama文件夹,改名为ollama_bk。这样是为了万一手动更新失败,还能恢复到旧版本用,就是把新的ollama文件夹删掉,把旧版本的ollama_bk改名为ollama就行了。
③之后解压新版本的压缩包:tar -xzf ollama-linux-amd64.tgz,进去找到ollama的文件夹,里面应该是有bin和lib两个文件夹的,把ollama文件夹丢进去就行了。如果解压出来没有ollama文件夹,就新建文件夹把lib和bin丢进里面,再移动到ai_installer文件夹里面就行了。
④检测是否成功更新了最新版本。记住你下载的ollama安装包的版本号,在命令行输入/volX/@appcenter/ai_installer/ollama/bin/ollama --version,看看显示出来的版本号是不是和你所下载的一致。(这里命令中的volX也是按实际情况改的!)
ollama版本检测
open-webui的升级
①先升级pip,以免版本过低之后用不了。
/var/apps/ai_installer/target/python/bin/python3.12 -m pip install --upgrade pip
②之后转到openweb-ui的目录,执行升级。记得改volX为你ollama实际安装目录!
cd /volX/@appcenter/ai_installer/python/bin/
./pip3 install --upgrade open_webui
ps:如果没有科学上网的话可能会慢一些,就好好等个几小时就行了,当然你也可以去设置代理。进度条跑完之后启用openweb-ui,在设置中看看版本号是不是最新的就没问题了。
飞牛虚拟机设置
在飞牛虚拟机开启硬件直通的时候,会有两个需要开启的选项:CPU虚拟化和IOMMU。
开启cpu虚拟化
开启cpu虚拟化很简单,就是在bios中找到Vt-x或者是AMD-V,找到开启就行了。真正要有点技术的是开启IOMMU。
开启IOMMU
在主板bios中开启VT-d或者SRIOV(SRIOV适用于11代酷睿之后)
用SSH工具连接到飞牛,修改内核
1.打开命令行工具连接到飞牛nas,之后提权,输入sudo -i,之后输入密码,默认不显示。回车后输入nano /etc/default/grub,打开内核文件进行修改。
2.找到GRUB_CMDLINE_LINUX_DEFAULT一行,在后面参数最后,空一格,输入intel_iommu=on iommu=pt,注意全部内容都在双引号内。之后ctrl+X按y保存退出即可。(amd的cpu就把intel改为amd就行了。)
内核修改
3.之后要更新内核重启,依次输入以下三个指令。
update-grub
update-initramfs -u -k all
reboot
之后去飞牛虚拟机中看看iommu是不是开启了就行了。
飞牛docker安装
zerotier
1.在docker的镜像仓库中搜索zerotier,下载第一个叫zerotier/zerotier的就行。
2.在本地镜像中创建并启用zerotier容器。点击运行,勾选开机自启动,之后点击下一步。要设置的有三个:储存位置,功能和网络。
3.储存位置第一个空你随意,就是把配置文件安装到nas里面哪里的问题。第二个空填/var/lib/zerotier-one
4.功能设置中,点第一个,使用高权限执行容器。
5.网络设置中,选择host模式就可以了。
完成上述三个设置之后,就设置好了。
zerotier网络加入
在容器终端中选择第一个连接:/bin/bash
输入:zerotier-cli join <network_id>,显示200 join ok就行了。之后去管理页面上允许就行了。
sakura frp
1.下载sakura frp镜像
在docker的镜像仓库中搜索natfrp/launcher,点击下载。
2.安装并配置sakura frp
之后在本地镜像中点击运行,第一步勾选开机自启动,点击下一步。第二部有很多操作,按顺序来。
①在储存位置一栏,第一个空填你要把配置文件安装到nas的哪里,看你喜好。第二个空填写/run。
②在环境变量一栏TOKEN填账户的访问密钥,REMOVE填远程管理密码。token就是你在sakura frp官网注册账户给的,复制过来就行了,remove设置的密码就是之后在远程连接nas端的sakura frp时要输入密码。
③在网络配置一栏中,取消勾选bridge,勾选host就可以了。其余设置不动,之后创建容器即可。
ps:使用web-ui的话要端口和密码,在运行日志里面可以找到。
sakura frp网络设置
1.建立一个TCP隧道,本地IP选择本地主机名(localhost),填5667端口(前提是设置了lucky的https访问),其他默认就行了。
2.在nas端刷新启用隧道就可以正常连接了。网址和ip会自动跳出来,如果没记住也没关系,在运行日志中可以找到。
ps:如果没有设置https,可以参考官方文档说的:
如果您希望使用飞牛系统内置的证书,将本地端口设置为 5667
如果您希望使用自动 HTTPS 功能,将本地端口设置为 5666 并将 自动 HTTPS 设置为 自动