当前位置: 首页 > ops >正文

黑群晖NAS部署DeepSeek模型与内网穿透实现本地AI服务

在这里插入图片描述

文章目录

    • 前言
    • 1.安装Container Manager
    • 2. 启动ssh功能
    • 3. ssh连接黑群晖
    • 4. 安装Ollama
    • 5. 安装deepseek模型
    • 6. 安装open-webui图形界面
    • 7. 安装内网穿透
      • 7.1 下载cpolar套件
      • 7.2 配置群辉虚拟机
      • 7.3 配置公网地址
        • 小结
      • 7.4 配置固定公网地址
    • 总结

前言

在追求自建网络存储方案的极客群体中,开源群晖系统已成为广泛应用的搭建方式。通过改造现有硬件资源构建的自定义存储平台,不仅解决了基础的数据管理需求,更赋予了技术实践的独特价值。当生成式AI技术的快速发展推动DeepSeek成为行业焦点时,该模型对计算资源的高需求确实带来了挑战。本文将探讨如何在自建存储架构中实现DeepSeek模型的部署优化,帮助用户构建个性化的AI应用环境。特别值得关注的是,借助内网穿透技术,即便在没有公网IP地址的情况下,也能实现对本地服务的远程访问。现在让我们进入实践环节,开启这场技术整合的创新之旅。

image-20250314173033529

1.安装Container Manager

首先,我们需要准备好一台安装了黑群晖系统的主机,不会安装的小伙伴可以参考一下这篇文章,从零开始在Windows使用VMware虚拟机安装黑群晖7.2系统并实现远程访问

首先访问黑群晖web管理界面(http://黑群晖主机IP+端口号)打开群晖的套件中心,先安装好Container Manager:

image-20250314153450736

image-20250314153739711

2. 启动ssh功能

打开群晖控制面板,终端机和SNMP,在“启动SSH功能”处打勾,端口号默认22,点击应用:

image-20250314153853797

3. ssh连接黑群晖

在电脑上打开CMD或Powershell等SSH工具,填写黑群晖的IP地址,SSH端口,群晖管理员账号,输入管理员密码登录:

image-20250314154112732

PS:黑群晖的IP在群晖助手中查看:

image-20250314154207561

然后输入 sudo -i 回车,再次输入管理员密码回车,进入root状态下;

image-20250314154250854

4. 安装Ollama

在终端中执行下方命令即可启动Ollama容器:

docker run --name ollama -d \
--restart always \
--net=host \
-v /volume1/docker/ollama:/root/.ollama \
ollama/ollama:latest

其中/volume1/docker/ollama是提前在NAS中创建好的AI模型的下载路径,请根据自己实际路径填写。

image-20250314155427016

image-20250314162432169

Ollama容器启动完毕后,打开群晖Container Manager,点击容器:

image-20250314162543601

可以看到ollama容器确实已经在运行中:

image-20250314162603154

5. 安装deepseek模型

右键打开终端机:

image-20250314162726254

然后点击新增–通过命令行启动:

image-20250314162817387

本教程安装的是deepseek-r1 1.5B的模型,复制下方命令:

ollama run deepseek-r1:1.5b

如果你想安装别的模型,可以把命令中的1.5b换成你想安装的模型名称(字母用小写)

ollama官网deepseek模型下载地址:https://ollama.com/library/deepseek-r1

image-20250314163037096

点击确定:

image-20250314163247852

安装中,请耐心等待:

image-20250314163317900

当看到有显示 success 的时候,表示deepseek模型已经安装成功:

image-20250314164043001

我们现在就可以在终端中对deepseek提问进行聊天了:

image-20250314164208733

但是在终端界面中聊天可能不是很美观,而且在复制回答时也不太方便,我们可以通过安装一个Web UI界面来解决这个问题。

6. 安装open-webui图形界面

打开群晖file station,在非中文、没有特殊符号的文件夹中,建立一个名称为open-webui的子文件夹,

image-20250314164523902

右键open-webui的文件夹,点属性,复制这里显示的路径:

image-20250314164621282

打开cmd或powershell等终端工具,执行下方命令安装open-webui图形界面:

docker run --name open-webui -d --restart always --net=bridge -p 3000:8080 -e OLLAMA_BASE_URL="http://192.168.50.142:11434" -v /volume1/wdgx/tool/open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main

注意:上边命令中的IP需要替换为你的黑群晖主机IP,/volume1/wdgx/tool/open-webui路径需要替换为你实际创建的open-webui路径。

image-20250314171024699

open-webui容器启动后,在浏览器打开http://群晖的IP:3000,即可看到open-webui的登录界面:

cb871721d452e6ca02f1b0db5beff1e

输入信息创建管理员账号后,即可跳转到web聊天界面,并能看到已经默认选择了刚才本地部署的deepseek-r1模型:

image-20250314172738659

现在我们就能在网页中和deepseek聊天了,和刚才在终端对比,不仅增加了更多功能,界面也更加美观了:

image-20250314172943488

7. 安装内网穿透

我们现在已经实现了在本地黑群晖NAS中部署Ollama并接入Deepseek-R1模型,并快速搭建Open WebUI界面实现同一局域网内用户都能在网页中与AI模型聊天。

但如果你的主机配置很不错,想让异地好友或者同事也能远程使用你在本地黑群晖NAS中部署的deepseek大模型应该怎么办呢?

虽然黑群晖没有quickconnect功能(无法公网环境远程访问),但只要安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,他人无需二次部署,节约成本,提高效率,接下来介绍一下如何安装cpolar内网穿透。

cpolar官网地址: https://www.cpolar.com

7.1 下载cpolar套件

群晖系统的软件安装程序与在windows系统有很大不同,首先,我们下载cpolar的群晖系统套件。

首先登录cpolar的官网(https://www.cpolar.com/),点击网页上方的“下载”按钮:

20230303102329

在cpolar下载页面找到“NAS群晖”选项,点击“立即下载”。

20230303102330

进入cpolar的NAS群晖下载页面后,在下拉菜单中选择NAS群晖型号,以及群晖系统版本。

image-20250304161703129

本教程中,我们可以通过群晖搜索助手看到型号是:DS3622xs+

image-20250304161806791

回到cpolar群晖下载页面,选择好型号、版本、点击下载:

image-20250304161855850

下载后的cpolar安装文件为:cpolar_x64-7.0_3.2.92-1.spk

回到群晖系统中,点击进入“套件中心”,点选右侧的“手动安装”按钮:

image-20250304162127519

此时会出现一个“上传套件”的页面,在这里点击“浏览”按钮,选择我们下载的cpolar套件位置,下一步:

image-20250304162327392

点击同意:

image-20250304162359785

点击完成:

image-20250304162422671

只需等待很短时间,cpolar就能安装完成,此时回到套件中心主页,就能看到cpolar已经加入了“已安装”列表内。

image-20250304162451418

此时我们点击cpolar,就能进入cpolar软件信息页。在这里,我们能找到访问cpolar客户端的URL(cpolar客户端采用Web-UI界面,因此是URL地址)

image-20250314174016204

在新开的Cpolar Web-UI界面中,可以通过该页面下方的“免费注册”链接,快速轻松的获得cpolar账号。

7.2 配置群辉虚拟机

我们在文章第2步已经启动了ssh功能,可以跳过这步了,但还是再提一遍如何操作吧!

要让群晖系统接受远程操作和访问,我们还需要进行几个简单设置。首先在群晖的控制面板内找到“终端机和SNMP”选项:

image-20250304162907179

进入“终端机和SNMP”项后,勾选“启动SSH功能”,如果想要更改端口,必须将端口号记牢,避免之后cpolar设置时端口号错误(注:由于群晖周边套件占用了大量端口,若无必要尽量不要修改默认端口号)。

image-20250304162940677

7.3 配置公网地址

打开cpoalr套件,点击:9200链接:

image-20250314174328811

输入Cpolar邮箱账号与密码进行登录:

image-20250314174634322

在cpolar管理界面,点击左侧仪表盘的隧道管理——创建隧道,创建一个的公网地址隧道!

  • 隧道名称:可自定义命名,我这里使用了 openwebui 注意不要与已有的隧道名称重复
  • 协议:选择 http
  • 本地地址:3000
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

点击创建

image-20250314174806141

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https。

image-20250314174918958

使用上面cpolar生成的公网地址可以看到成功的访问到了open webui的界面当中了:

image-20250314175051367

输入刚才创建的管理员邮箱密码即可正常登录使用deepseek或其他部署在本地的大模型了:

image-20250314175205598

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名来为本地部署的服务配置公网地址,这样将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:linuxsystem.cpolar.cn),这样更显正式,便于流交协作。

7.4 配置固定公网地址

如果有长期远程访问本地黑群晖NAS,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

登录cpolar官网 https://www.cpolar.com,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留:

image-20250314175519752

保留成功后复制保留的二级子域名名称:myopen

image-20250314175545608

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道openwebui,点击右侧的编辑:

image-20250314175626775

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不要重复点击)

image-20250314175706667

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名的名称域名:

image-20250314175747709

最后,我们使用任意一个cpolar生成的固定公网地址访问,可以看到同样成功访问open webui界面,这样一个固定且永久不变的公网地址就设置好了!

image-20250314180020489

总结

本指南完整解析了基于黑群晖NAS平台,利用容器化技术实现Ollama与Deepseek-R1模型的模块化部署,并创建可视化操作界面的具体方法。该部署方案有效缓解了云端AI服务常见的服务延迟问题,使用户无需依赖第三方公共接口即可实现稳定的本地AI服务调用。特别值得注意的是,采用内网穿透技术后,本地交互平台获得了可靠的公网接入能力,成功突破了地域限制,实现了远程访问功能。无论用户身处任何位置,均可通过标准网络协议与私有AI服务建立无缝连接。诚邀各位在讨论区分享您的部署心得或创新应用场景,共同探索NAS架构与人工智能技术的融合潜力,将黑群晖系统升级为智能化生活的核心控制中枢。

http://www.xdnf.cn/news/13745.html

相关文章:

  • Linux中升级或者切换python版本
  • 网络上搜集的IFC资源共享(含下载链接)
  • LLM基础7_用于文本分类的微调
  • Cesium1.95中加载模型过多导致内存溢出的解决方案
  • 用户态与内核态是什么?有什么作用?两者在什么时候切换?为什么要切换?
  • 知识变现新趋势:创客匠人解析创始人 IP 打造与行业破局之道
  • SmartGit(图形化GitGUI客户端) v24.1.3
  • Python实现web请求与访问
  • 选品融电商:全域代运营赋能,抖音小红书销量倍增的头部引擎
  • SGDvsAdamW 优化策略详细解释
  • mybatis foreach里用bind、foreach中使用bind的坑、foreach中动态生成表名
  • 预压技术对滚珠螺杆寿命的影响是什么?
  • 预测性去匿名化攻击(PDAA):重塑数据安全攻防边界
  • 说一说Redis中如何使用一致性哈希算法
  • 强化学习:DQN学习总结
  • 野火板子上重装ubuntu20.04系统
  • gbcom线上共享瓦片
  • Kubernetes 从入门到精通-deployment控制器
  • 山东大学 2025 web数据管理期末复习总结
  • Python _Day52|神经网络调参指南
  • WLAN 技术指南:从入门到原理
  • git约定示提交
  • 005__C++类的基本语法
  • Ntfs!NtfsVolumeCheckpointDpc函数分析到调用Ntfs!NtfsCheckpointAllVolumes函数
  • 【AI论文】利用自注意力机制实现大型语言模型(LLMs)中依赖于输入的软提示
  • 数据结构学习20250612
  • 无人叉车 AGV 的智能物流枢纽逻辑:对接方式分类、技术原理与场景适配
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 6】【Properties介绍】
  • FEC(Forward Error Correction)前向纠错快速了解
  • 【AS32系列MCU调试教程】硬件调试:JLink 驱动配置与调试技巧