黑群晖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.pswp.cn/bicheng/84642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust 学习笔记:处理任意数量的 future

Rust 学习笔记:处理任意数量的 future Rust 学习笔记:处理任意数量的 future竞争的 future将控制权交给运行时构建我们自己的异步抽象 Rust 学习笔记:处理任意数量的 future 当两个 future 切换到三个 future 时,我们也必须从使用…

2025年TCP洪水攻击防护实战全解析:从协议对抗到AI智能防御

一、2025年TCP洪水攻击的新特征与挑战 AI驱动的自适应攻击 攻击者利用生成式AI动态调整SYN报文特征(如载荷内容、发送频率),使攻击流量与正常业务流量的差异率低至0.5%,传统基于规则引擎的防御策略完全失效。 混合协议打击常态化…

二、集成开发环境(IDE)

上节我们在终端演示了python虚拟环境的用法,但终端不方便代码编写和调试,本节介绍两种常用的python集成开发环境:Pycharm和Jupter Notebook。Pycharm是最流行的Python IDE,下载网址:下载 PyCharm:JetBrains…

芯片电感需求趋势及选型关键因素

随着AI产业的快速发展,数据中心、AI芯片、服务器等算力基础设施对于芯片电感等电子元件的要求不断提升。另一方面,电子产品向高功率密度和小型化方向发展,电源模块趋于小型化、低电压、大电流,也对芯片电感提出了小型化、轻量化、…

Vue3+Element Plus表单验证实战:从零实现用户管理

前言 在Vue3项目开发中,表单验证是保证数据完整性和准确性的重要环节。Element Plus作为Vue3的流行UI组件库,提供了强大的表单验证功能。本文将基于一个用户管理模块的实战案例,详细介绍Vue3中如何使用Element Plus实现完整的表单验证流程。…

力扣上C语言编程题:合并区间(涉及数组)

一. 简介 本文记录力扣网上涉及数组方面的编程题,主要以 C语言实现。 二. 力扣上C语言编程题:合并区间(涉及数组) 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所…

SEO长尾词与关键词优化实战

内容概要 在SEO优化体系中,核心关键词与长尾词的协同作用直接影响流量获取效率与用户触达精度。本文将从基础概念切入,系统梳理核心关键词的筛选标准与竞争强度评估方法,并深入探讨长尾词在细分场景下的价值定位。通过分析用户搜索行为与意图…

博图SCL语言教程:灵活加、减计数制作自己的增减计数器(CTUD)

博图SCL语言教程:使用SCL实现增减计数器(CTUD) 一、什么是增减计数器(CTUD)? 增减计数器(Up-Down Counter)是PLC编程中的基础功能块,具有以下特性: CU (Count Up):上升沿触发计数值增加 CD (…

Android 应用被kill问题排查和处理

一、背景 博主有一款应用市场应用,同样的应用,在Android 10上开启三个下载正常,在Android 14上开启下载安装,很频繁被kill。首先想到的是,是不是应用内存太高,导致被kill,通过工具分析内存也不高,后面就想到是不是系统本身分配给应用的内存就不高,后来通过排查,确实是和系统的…

从代码学习深度强化学习 - 多臂老虎机 PyTorch版

文章目录 前言创建多臂老虎机环境多臂老虎机算法基本框架(基类)1. ε-贪心算法 (Epsilon-Greedy)2. 随时间衰减的ε-贪婪算法 (Decaying ε-Greedy)3. 上置信界算法 (Upper Confidence Bound, UCB)4. 汤普森采样算法 (Thompson Sampling)总结前言 欢迎来到“从代码学习深度强化…

Android学习之Window窗口

Android Window机制学习笔记 在使用Window Flag实现界面全屏功能时,发现自身对Android Window机制缺乏系统认知,因此进行了专项学习与整理。 本文主要参考以下优质资料: Android的Window详解Android官方Window文档 Window基本概念 1. Win…

华为云 Flexus+DeepSeek 征文|搭建部署Dify-LLM推理引擎,赋能AI Agent智能体实现动态联网搜索能力

华为云 Flexus 云服务器 X 实例专门为 AI 应用场景设计。它提供了强大的计算能力,能够满足 DeepSeek 模型以及后续搭建 AI Agent 智能体过程中对于数据处理和模型运行的高要求。在网络方面,具备高速稳定的网络带宽,这对于需要频繁联网搜索信息…

Python 100个常用函数全面解析

Python 100个常用函数全面解析 1. 类型转换函数 1.1 int() 将字符串或数字转换为整数。 # 基本用法 int(123) # 123 int(3.14) # 3# 指定进制转换 int(1010, 2) # 10 (二进制转十进制) int(FF, 16) # 255 (十六进制转十进制)# 临界值处理 int() # ValueError: …

分享在日常开发中常用的ES6知识点【面试常考】

前言 在日常的业务开发中,可以熟悉运用掌握的知识点快速解决问题很重要。这篇分享JS相关的知识点,主要就是对数据的处理。 注意:本篇分享的知识点,只是起到一个抛砖引玉的作用,详情的使用和更多的ES6知识点还请参考官…

CHI协议验证中的异常及边界验证

CHI协议验证中的异常及边界验证 针对 CHI 协议的错误注入工具、覆盖率衡量方法及实际项目中的投入平衡 CHI 协议作为多核系统中复杂的缓存一致性协议,验证其行为需要强大的工具和方法来执行错误注入和边界条件测试,并衡量测试覆盖率。以下详细讨论常用工具、覆盖率评估方法及…

技术专栏|LLaMA家族——模型架构

LLaMA的模型架构与GPT相同,采用了Transformer中的因果解码器结构,并在此基础上进行了多项关键改进,以提升训练稳定性和模型性能。LLaMA的核心架构如图 3.14 所示,融合了后续提出的多种优化方法,这些方法也在其他模型&a…

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…

Go 语言实现高性能 EventBus 事件总线系统(含网络通信、微服务、并发异步实战)

前言 在现代微服务与事件驱动架构(EDA)中,事件总线(EventBus) 是实现模块解耦与系统异步处理的关键机制。 本文将以 Go 语言为基础,从零构建一个高性能、可扩展的事件总线系统,深入讲解&#…

npm ERR! @biomejs/biome@1.9.4 postinstall: `node scripts/postinstall.js`

npm install 报错如下, npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @biomejs/biome@1.9.4 postinstall: `node scripts/postinstall.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @biomejs/biome@1.9.4 postinstall script. npm ERR! This is pro…

APMPlus × veFaaS 一键开启函数服务性能监控,让函数运行全程可观测

资料来源:火山引擎-开发者社区 近年来,无服务器架构(Serverless)的崛起让开发者得以从基础设施的复杂性中解放,专注于业务逻辑创新。但随着采用率提升,新的问题开始出现——函数实例的短暂生命周期、动态变…