root@deepseek-1:/home/zgq/.ollama# lsof -i :11434
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ollama 29005 root 3u IPv4 47359 0t0 TCP localhost:11434 (LISTEN)
从以上提供的 lsof
输出来看,Ollama 服务正在监听 localhost:11434
,但仅限于本地回环接口(127.0.0.1
),而不是外部网络接口(0.0.0.0
)。这就是为什么你无法通过 192.168.95.42:11434
访问服务的原因。
要解决这个问题,需要让 Ollama 服务监听所有网络接口(0.0.0.0
),而不仅仅是 localhost
。
修改 Ollama 配置以监听所有网络接口
方法 1:通过环境变量修改
在启动 Ollama 时,可以通过环境变量指定监听地址。运行以下命令停止当前的 Ollama 服务:
bash复制
killall ollama
然后,使用以下命令启动 Ollama 并指定监听所有网络接口:
bash复制
OLLAMA_HOST=0.0.0.0 ollama serve
方法 2:修改配置文件
如果你希望永久修改配置,可以编辑 Ollama 的配置文件 ~/.ollama/config.json
:
bash复制
nano ~/.ollama/config.json
在配置文件中,添加或修改以下内容:
JSON复制
{
"host": "0.0.0.0"
}
保存文件后,重新启动 Ollama 服务:
bash复制
killall ollama
ollama serve
验证修改是否生效
运行以下命令,检查 Ollama 是否绑定到 0.0.0.0
:
bash复制
lsof -i :11434
如果修改成功,输出应类似于以下内容:
复制
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ollama 29005 root 3u IPv4 47359 0t0 TCP *:11434 (LISTEN)
注意 TCP *:11434
表示 Ollama 正在监听所有网络接口。
测试外部访问
从另一台设备或本地终端,尝试访问 http://192.168.95.42:11434
,例如:
bash复制
curl http://192.168.95.42:11434/api/tags
如果返回类似以下内容,说明配置成功:
JSON复制
{"models": [...]}
注意事项
-
防火墙设置:确保防火墙允许外部访问
11434
端口:bash复制
sudo ufw allow 11434/tcp sudo ufw reload
-
安全性:监听所有网络接口可能会带来安全风险,建议仅在信任的网络环境中使用此配置。
-
Docker 部署:如果你是通过 Docker 部署的 Ollama,请确保端口映射正确:
bash复制
docker run -d -p 11434:11434 ollama/ollama
通过以上步骤,你应该可以解决无法通过 192.168.95.42:11434
访问 Ollama 的问题。
查看日志:
journalctl -u ollama --no-pager
-
检查模型存储路径权限 确保
/data/ai/models
目录存在,并且ollama
用户有权限访问和写入该目录:bash复制
mkdir -p /data/ai/models chown -R ollama:ollama /data/ai/models