惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
腾讯CDC
博客园 - 司徒正美
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
I
InfoQ
N
Netflix TechBlog - Medium
L
LangChain Blog
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
美团技术团队
The Cloudflare Blog
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
H
Help Net Security
Martin Fowler
Martin Fowler
V
Visual Studio Blog

博客园 - GKLBB

软件神器 --- ctf靶场 之 pwn.college 术语俗话 --- 什么是加密狗 软件神器 --- 自动电脑锁屏软件 软件研发 --- 网络安全 之 putty生成无密码登录密钥 软件神器 --- 视频剪辑 之 Avidemux MP4Joiner Shotcut 软件神器 --- 视频格式转化 之 handbrake 软件研发 --- 经验之谈 这个是什么图标,经常看到 软件研发 --- 术语俗话 之 多模态 术语俗话 --- 什么是大数据开发 软件研发 --- 术语俗话 之 什么是边缘计算 软件研发 --- 应知应会 之 什么是云计算开发 应知应会 --- 如何不装软件查看网速 常见问题解决 --- 360拦截接触 常见问题解决 --- 加入会议摄像头无法打开 网络安全 --- CTF打靶 之 ZIP伪加密 → Robot36慢扫电视 → 二维码补齐 → DeepSound隐写 → GPG解密 → Base64图片 → SilentEye隐写 软件研发 --- 应知应会 之 无错误的闪退如何解决 软件研发 --- 应知应会 之 为什么别人的软件如此复杂我的如此简单 网络安全 --- 应知应会 之 什么是旁站 应知应会 --- 如何查询备案 软件神器 --- 格式转化 之 jpg 2 svg 网络安全 --- CTF打靶 之 flag搜索 软件神器 --- 互联网测速 之 软件神器 --- 局域网测速 之 iperf 常见问题解决 --- 模拟器USG6000打开后,启动设备失败,错误40 软件研发 --- AI网络 之 ensp配置生成 软件研发 --- AI编程 之 极简流程 软件研发 --- AI生图产品比较 常见问题解答 --- 为什么我的服务一直被人DDOS 软件研发 --- 开发万能格式转化工具
常见问题解决 --- Dify 工作流 ProxyError 排查修复完整总结
GKLBB · 2026-06-27 · via 博客园 - GKLBB

一、故障现象

[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


三、修复步骤

Step 1:备份配置

cp .env .env.bak.$(date +%F-%H%M%S)
cp docker-compose.override.yaml docker-compose.override.yaml.bak.$(date +%F-%H%M%S)

Step 2:向 .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

Step 3:修复 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

Step 4:强制重建容器

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,...  ✓

验证 worker 直连 Ollama

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...]}

验证 plugin_daemon 直连 Ollama

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,返回模型列表

六、当前可用 Ollama 模型

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 不再出现 → 代理问题已彻底解决,看模型名/超时
  • 若仍出现 → 检查是否还有其他 compose 文件注入代理变量

32B 模型首次加载较慢,建议先用 deepseek-v2:16b 验证工作流连通性。

免责声明 本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发及其他违反《中华人民共和国网络安全法》《数据安全法》等法律法规的行为,使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。