




















[models] Server Unavailable Error
HTTPConnectionPool(host='192.168.2.2', port=6382):
Max retries exceeded with url: http://10.10.100.100:11434/api/chat
Caused by ProxyError — Connection to 192.168.2.2 timed out
核心判断:Dify 要访问 http://10.10.100.100:11434,却被代理到了 192.168.2.2:6382,代理超时导致模型节点不可用。
for c in docker-api-1 docker-worker-1 docker-plugin_daemon-1 docker-api_websocket-1 docker-worker_beat-1; do
echo "===== $c ====="
docker inspect "$c" --format '{{range .Config.Env}}{{println .}}{{end}}' \
| grep -Ei 'proxy|NO_PROXY|HTTP_PROXY|HTTPS_PROXY'
done
结果:所有核心容器都注入了:
HTTP_PROXY=http://192.168.2.2:6382
HTTPS_PROXY=http://192.168.2.2:6382
NO_PROXY=localhost,127.0.0.1,db,redis,...,60.165.96.141 ← 没有 10.10.100.100
结论:NO_PROXY 未包含 Ollama 地址,导致走了代理。
.env 追加 NO_PROXY 后大写仍被覆盖向 .env 追加后,小写 no_proxy 生效,但大写 NO_PROXY 仍是旧值。
排查来源:
grep -RniE 'NO_PROXY|HTTP_PROXY|HTTPS_PROXY' docker-compose*.yml docker-compose*.yaml envs .env
找到根因:docker-compose.override.yaml 中硬编码了旧 NO_PROXY,覆盖了 .env。
cp .env .env.bak.$(date +%F-%H%M%S)
cp docker-compose.override.yaml docker-compose.override.yaml.bak.$(date +%F-%H%M%S)
.env 追加绕过规则cat >> .env <<'EOF'
NO_PROXY=localhost,127.0.0.1,db,redis,sandbox,ssrf_proxy,weaviate,plugin_daemon,api,10.10.100.100,10.10.100.0/24,192.168.0.0/16,172.16.0.0/12
no_proxy=localhost,127.0.0.1,db,redis,sandbox,ssrf_proxy,weaviate,plugin_daemon,api,10.10.100.100,10.10.100.0/24,192.168.0.0/16,172.16.0.0/12
EOF
docker-compose.override.yaml 硬编码值sed -i -E 's#NO_PROXY: ".*"#NO_PROXY: "localhost,127.0.0.1,db,redis,sandbox,ssrf_proxy,weaviate,plugin_daemon,api,10.10.100.100,10.10.100.0/24,192.168.0.0/16,172.16.0.0/12,60.165.96.141"#g' \
docker-compose.override.yaml
docker compose up -d --force-recreate api worker plugin_daemon api_websocket worker_beat
for c in docker-api-1 docker-worker-1 docker-plugin_daemon-1 docker-api_websocket-1 docker-worker_beat-1; do
echo "===== $c ====="
docker exec "$c" sh -lc 'env | grep -Ei "HTTP_PROXY|HTTPS_PROXY|NO_PROXY|no_proxy"'
done
结果(所有容器一致):
NO_PROXY=...,10.10.100.100,10.10.100.0/24,192.168.0.0/16,172.16.0.0/12,... ✓
no_proxy=...,10.10.100.100,10.10.100.0/24,192.168.0.0/16,172.16.0.0/12,... ✓
docker exec -it docker-worker-1 sh -lc 'curl -v --connect-timeout 5 http://10.10.100.100:11434/api/tags'
* Uses proxy env variable no_proxy ...
* Trying 10.10.100.100:11434... ← 直连,不走代理
* Connected to 10.10.100.100 port 11434
< HTTP/1.1 200 OK ← 成功
{"models":[...deepseek-r1-32b-16k:latest...]}
docker exec -it docker-plugin_daemon-1 sh -lc 'curl -v --connect-timeout 5 http://10.10.100.100:11434/api/tags'
* Trying 10.10.100.100:11434... ← 直连
< HTTP/1.1 200 OK ← 成功
| 项目 | 修复前 | 修复后 |
|---|---|---|
| 访问路径 | Dify → 192.168.2.2:6382 → 超时 |
Dify → 10.10.100.100:11434 → 正常 |
NO_PROXY 包含 Ollama 地址 |
❌ | ✅ |
docker-compose.override.yaml 硬编码 |
旧值,无 10.10.100.100 | 已更新 |
| curl 直连测试 | 走代理失败 | HTTP 200,返回模型列表 |
deepseek-r1-32b-16k:latest (32.8B, Q4_K_M)
xiaowangge/deepseek-v3-qwen2.5:32b (32.8B, Q4_K_M)
deepseek-v2:16b (15.7B, Q4_0)
deepseek-r1:32b (32.8B, Q4_K_M)
Dify 中 Ollama 配置:
Base URL: http://10.10.100.100:11434 ← 只填基础地址,不加路径
模型名称: deepseek-r1-32b-16k:latest ← 必须与 Ollama 完全一致,含 :latest
如工作流仍报错,排查方向:
# 确认日志中不再出现代理报错
docker logs docker-worker-1 --tail=200 | grep -i proxy
docker logs docker-plugin_daemon-1 --tail=200 | grep -i proxy
192.168.2.2:6382 不再出现 → 代理问题已彻底解决,看模型名/超时32B 模型首次加载较慢,建议先用 deepseek-v2:16b 验证工作流连通性。
免责声明 本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发及其他违反《中华人民共和国网络安全法》《数据安全法》等法律法规的行为,使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。