Ollama 共享服务操作文档(基于 ngrok 内网穿透)


一、服务端(部署 Ollama + ngrok)

1. 启动 Ollama 服务

ollama serve

确认服务监听默认端口 11434,且状态为 “ollama is running”。


2. 安装并启动 ngrok 内网穿透

ngrok authtoken <你的令牌>
  • 启动 HTTP 隧道映射 Ollama 端口:
ngrok http 11434
  • 记录生成的公网地址,如:
https://abc123.ngrok-free.app

二、客户端(使用 OpenWebUI 访问 Ollama)


方案 A:Docker 版本 OpenWebUI

1. 删除旧容器(如有)
docker rm -f openwebui
2. 运行 OpenWebUI Docker 容器,指定 Ollama ngrok 地址
docker run -d \
  -e HF_ENDPOINT=https://hf-mirror.com \
  -e OLLAMA_BASE_URL=https://abc123.ngrok-free.app \
  -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v C:\ollama-web-ui:/app/backend/data \
  --name openwebui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

-e HF_ENDPOINT=https://hf-mirror.com \ 是open-webui的镜像网站,用于加速访问

-e OLLAMA_BASE_URL=https://abc123.ngrok-free.app \ 这里需要换成我给大家的地址,下面conda版本的同理

3. 访问 OpenWebUI

浏览器访问:

http://localhost:3000

这里的3000是openwebui使用的端口,要换成自己的


方案 B:Conda 虚拟环境版本 OpenWebUI

1. 激活虚拟环境并安装依赖
conda activate openwebui-env
pip install -r requirements.txt

(具体请参考 OpenWebUI 官方安装文档)

2. 设置环境变量并启动

Windows CMD 示例:

set HF_ENDPOINT=https://hf-mirror.com
set OLLAMA_BASE_URL=https://abc123.ngrok-free.app
python app.py

Linux / PowerShell 类似:

export HF_ENDPOINT=https://hf-mirror.com
export OLLAMA_BASE_URL=https://abc123.ngrok-free.app
python app.py
3. 浏览器访问
http://localhost:3000

三、客户端程序通过 API 调用 Ollama

假设 Ollama API 基地址为 ngrok 地址:

https://abc123.ngrok-free.app

示例:用 Python 发送请求

import requests

base_url = "服务端ngrok生成的公网地址"

# 查询可用模型示例
response = requests.get(f"{base_url}/v1/models")
print(response.json())

# 发送推理请求示例
data = {
    "model": "your_model_name",
    "prompt": "你好,Ollama!",
    "max_tokens": 100
}
response = requests.post(f"{base_url}/v1/completions", json=data)
print(response.json())
  • 根据 Ollama 文档调整请求路径和数据格式。
  • 如果 OpenWebUI 已正确配置,API 也可以直接通过该地址访问。

四、注意事项

  • ngrok 地址为动态地址,重启后可能变化,需更新客户端配置。
  • 确保防火墙允许端口访问。
  • 为避免滥用,建议在 OpenWebUI 或 Ollama 上启用认证功能。
  • OpenWebUI 默认监听 8080 端口,客户端需访问映射后的宿主机端口(如 3000)。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐