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

Ollama端口暴露风险与防护

1. Ollama Pull API 测试(34-85行):核心功能是使用 Ollama 的 /api/pull 接口拉取模型。
主要特点:
- 使用 requests.post 发送 POST 请求到 http://localhost:11434/api/pull
- 设置 stream=True 以支持流式响应
- 处理 NDJSON 格式的响应(每行一个 JSON 对象)
- 响应包含状态信息:status、digest、total、completed
- 使用 tqdm 进度条显示下载进度
关键点:
- 模型名称:glm-4.7-flash(被注释的有 qwen3-vl:4b, glm-4.6:cloud, glm-5:cloud)
- 响应用 b'\n' 分割(OLLama 使用换行符分隔 NDJSON)
- 实时更新 tqdm 进度条
这是一个简单的测试脚本,不是 pytest 测试文件。
这是一个 Ollama 模型拉取脚本,用于从本地 Ollama 服务下载模型。
主要功能:
- 向 http://localhost:11434/api/pull 发送 POST 请求
- 设置 stream=True 接收流式 NDJSON 响应
- 实时解析下载进度并用 tqdm 显示进度条
响应格式示例:
{"status":"pulling 9c60bdd691c1","digest":"sha256:...","total":3295612832,"completed":95273168}
关键处理逻辑:
- 用 b'\n' 分割流式响应(Ollama 使用换行分隔 NDJSON)
- 提取 status、total、completed 字段
- 当获取到 total 大小时创建 tqdm 进度条
- 累积更新进度条显示下载进度
当前配置:
- 目标模型:glm-4.7-flash
- 当前机器上 Ollama 地址:localhost:11434

# 方式一:使用 requests import requests import json from tqdm import tqdm #进度显示 response = requests.post(f"http://localhost:11434/api/pull", json=data, stream=True) resBuffer :bytes= b'' res :bytes= b'' ts = {} for line in response.iter_content(): #{"status":"pulling 9c60bdd691c1","digest":"sha256:9c60bdd691c1897bbfe5ddbc67336848e18c346b7ee2ab8541b135f208e5bb38","total":3295612832,"completed":95273168} ''' 88 {"status":"pulling 9c60bdd691c1","digest":"sha256:9c60bdd691c1897bbfe5ddbc67336848e18c346b7ee2ab8541b135f208e5bb38","total":3295612832} 9a {"status":"pulling 9c60bdd691c1","digest":"sha256:9c60bdd691c1897bbfe5ddbc67336848e18c346b7ee2ab8541b135f208e5bb38","total":3295612832,"completed":78020} ''' res += line r = res.split(b'\n') res = r.pop() for j in r: if b'status' in j: msg = json.loads(j.decode()) status = msg.get('status','') total = msg.get('total') #提取总大小 completed= msg.get('completed') #提取已经下载量 tq =ts.get(status) if total and tq is None: tq = tqdm(range(total)) ts[status] = tq if tq and completed: tq.update(completed) #更新进度

只看见端口没有主机登录权限时使用, 所以正常ollama的端口不能暴露出去(别人可以恶意下载,占网速/硬盘)

http://www.jsqmd.com/news/504173/

相关文章:

  • 从DDPG到TD3:深度强化学习算法在电机精准控制中的演进与实践
  • Datax-web可视化配置全流程:从执行器设置到JSON脚本生成的保姆级教程
  • 如何安全导出浏览器Cookie:终极本地Cookie导出工具完全指南
  • 技术组合拳实战:当代理IP遇上AI分析师的跨境数据博弈
  • IndexTTS-2-LLM实战案例:智能硬件设备语音播报集成
  • Qwen-Image-Edit-F2P模型在机器学习项目中的集成实践
  • ChatGLM-6B在VSCode中的开发插件:智能代码助手
  • gte-base-zh在软件测试中的应用:自动化生成与归类测试用例
  • 2026连云港全屋定制深度解析:从市场趋势到品牌优选指南 - 2026年企业推荐榜
  • 机械制造企业陶瓷玻璃加工铣床优质推荐:数控车床、铣床、加工中心、雕铣机、磨床选择指南 - 优质品牌商家
  • 紧急预警:未做语义等价验证的梯形图转C代码,正悄然导致产线停机率上升42%(附实时校验工具链)
  • 单链表尾节点删除:从“悬空指针”到O(n) 复杂度的深度解析
  • 2026食品类高端礼盒包装优质厂家推荐:礼品包装盒/肉制品包装盒/茶叶包装盒/食品包装盒/农产品包装盒/月饼包装盒/选择指南 - 优质品牌商家
  • 所有启程 皆藏希望,老男孩教育网络安全31期开班啦!
  • Asian Beauty Z-Image Turbo开源镜像:Tongyi-MAI底座+东方权重融合部署方案
  • AUV增量PID控制与USV局部风险避障算法代码功能说明
  • OpenCV 实战:身份证号码识别系统(基于模板匹配)
  • Qwen2-VL-2B-Instruct代码解析:从开源项目学习多模态模型调用
  • 立知模型lychee-rerank-mm入门:10秒启动,图文匹配打分一目了然
  • Qwen2.5-VL在遥感影像分析中的应用:地物分类与定位
  • Qwen3.5-9B视觉语言模型实战:跨模态推理效果展示与部署
  • MedGemma Medical Vision Lab开源可部署:提供FHIR接口适配器与HL7消息桥接模块
  • Web开发全栈AI辅助:从数据库设计到前端交互的SmallThinker-3B-Preview实践
  • 仅保留Task+Queue+Tick的最小RTOS内核,实测吞吐提升2.8倍——但99%人不知道它在ARMv8-M上会触发Privileged Fault(裁剪边界红线预警)
  • 2026开年盘点:四川防撞墙生产厂商,谁以高性价比领跑市场? - 2026年企业推荐榜
  • 微信红包自动化助手:iOS设备终极抢红包解决方案
  • Qwen3.5-9B实战落地:HR招聘简历图智能解析——证件照+证书图+履历图联合分析
  • MogFace人脸检测模型-WebUI开源价值:CVPR2022论文模型工业级工程化落地
  • Qwen3.5-9B舞蹈教学:动作图识别+要领解析+训练计划生成系统
  • 新手小白如何从零基础开始做闲鱼?