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

【全网最细・已实测】Dify 调用内网接口报 403/Connection refused 完整踩坑实录 + 终极解决方案

一、问题场景与诡异现象

1. 环境说明

  • 部署方式:Docker Compose部署 Dify 1.7.1
  • 调用方式:工作流HTTP 请求节点
  • 目标服务:内网 Tomcat 接口http://192.168.100.106:90
  • 网络状态:容器内 curl 能通,返回 200/Tomcat 页面

2. 典型报错

  1. 主要报错:Squid 403 Access Denied

plaintext

The requested URL could not be retrieved Access Denied.
  1. 乱操作后报错:Connection refused

plaintext

[Errno 111] Connection refused

3. 最迷惑的地方

  • 容器内能通
  • 服务正常
  • 端口通、防火墙通
  • 只有 Dify 页面调用不通

二、我踩过的所有无效弯路(千万别学)

1. 盲目加环境变量(无效)

docker-compose.yml疯狂加代理开关:

yaml

http_proxy: "" https_proxy: "" HTTP_PROXY: "" HTTPS_PROXY: "" NO_PROXY: "*" DISABLE_SSRF_PROXY: "true"

结论:不生效!Dify 工作流不受这套环境变量控制。


2. 修改宿主机全局代理(无效)

/etc/profile/etc/environment、docker 代理配置结论:方向完全错误,越改越乱。


3. 直接删除 ssrf_proxy 容器(致命错误)

bash

运行

docker-compose rm -f -s -v ssrf_proxy

报错从403 → Connection refused真实原因:代理容器被删了,Dify 还在强制走它,直接连代理都找不到。


4. 只改模板不看容器内真实配置(最坑)

修改宿主机squid.conf.template,然后只down/up结论:配置没进容器!Squid 依旧用默认规则拦截内网。


三、终极真相:为什么一直 403?

我进入容器查看真实运行的 Squid 配置后,瞬间破案:

bash

运行

docker exec -it docker-ssrf_proxy-1 cat /etc/squid/squid.conf

致命根因只有一句话:

Squid 配置中,http_access deny all写在了最前面!

ini

# 系统默认配置(前面) http_access deny all # <--- 先拒绝所有 # 你后面加的允许规则(后面) http_access allow localnet http_access allow all # <--- 永远执行不到

Squid 规则机制(重点!)

  • 按顺序匹配
  • 匹配到 deny 直接返回 403
  • 后面的 allow 不会生效
  • 内网默认被 Squid 安全策略禁止

四、真正根因总结(建议截图保存)

  1. Dify 工作流HTTP 节点强制走内置 ssrf_proxy(Squid)
  2. Squid默认禁止内网访问
  3. Squid 配置顺序错误:deny 在前,allow 在后
  4. 修改宿主机模板不会实时同步到容器
  5. 删除代理容器 → Connection refused,不是解决
  6. 普通环境变量无法绕过 Dify 内置代理

五、✅ 终极可落地解决方案(两步搞定)

方案 A:标准永久方案(推荐)

1. 恢复 ssrf_proxy 容器(千万别删)

bash

运行

cd /data/dify-1.7.1/docker docker-compose up -d ssrf_proxy
2. 替换宿主机squid.conf.template

ini

################################## Reverse Proxy To Sandbox ################################ http_port ${REVERSE_PROXY_PORT} accel vhost cache_peer ${SANDBOX_HOST} parent ${SANDBOX_PORT} 0 no-query originserver http_access allow all always_direct allow all acl localnet src 192.168.0.0/16 acl localnet src 172.16.0.0/12 acl localnet src 10.0.0.0/8 client_request_buffer_max_size 100 MB
3. 彻底重建容器(必须!)

bash

运行

docker-compose down -v docker-compose up -d

方案 B:暴力 instant 生效(排障用)

直接覆盖容器内真实配置,立即生效,不用重启

bash

运行

docker exec -it docker-ssrf_proxy-1 sh -c ' cat > /etc/squid/squid.conf << "EOF" http_access allow all always_direct allow all http_port 8194 accel vhost cache_peer sandbox parent 8194 0 no-query originserver client_request_buffer_max_size 100 MB EOF squid -k reconfigure '

六、关键结论(记住这 5 条,永不踩坑)

  1. Dify HTTP 节点 ≠ 普通请求,默认走 Squid 代理
  2. Squid 默认禁止内网,必须手动放行
  3. Squid 规则顺序:allow 在前,deny 在后
  4. 排查必须看容器内配置,不要只看宿主机模板
  5. 不要删除 ssrf_proxy,否则直接 Connection refused

七、一图流速查

plaintext

Dify 内网接口 403 ├── 99% = Squid 配置问题 ├── 不是系统代理问题 ├── 不是环境变量问题 ├── 不是网络不通 ├── 不是服务挂了 ├── 核心:deny all 在 allow 前面 └── 解决:allow all 前置 + 重建容器
http://www.jsqmd.com/news/598958/

相关文章:

  • e1547:让社区浏览体验回归纯粹的定制化浏览器
  • Spacedesk保姆级教程:用旧平板给Windows电脑当副屏,从安装到避坑一步到位
  • 小白学习记录
  • 2025最权威的五大降重复率方案推荐
  • 倒排索引详解
  • 高端智能家居品牌怎么选?2026年适用场景分类指南
  • 苍穹外卖-2025 从零搭建开发环境:IDEA、JDK与Git实战图解
  • 24小时运行不中断:OpenClaw+Qwen3-32B监控网站变更并邮件报警
  • 2026年在职研究生论文降AI工具推荐:理论与实践结合部分如何处理
  • 综合强度信息的激光雷达去拖尾算法解析和源码实现
  • 终极指南:如何5分钟免费安装Fooocus AI图像生成软件
  • OpenClaw+Phi-3-vision-128k-instruct低成本方案:自建多模态助手避坑指南
  • 强化学习(岗位招聘)—— 具身深度强化学习运控岗
  • OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——OpenClaw一人公司:将OpenClaw作为一人公司的终极基础设施
  • NVIDIA Profile Inspector完整指南:解锁显卡隐藏性能的终极免费工具
  • 让你的AI助手读写飞书云文档:OpenClaw + lark-cli 完整配置教程(含懒人方式)
  • 2026届学术党必备的六大降AI率网站推荐
  • 突破性动森存档编辑神器:NHSE让你的岛屿梦想照进现实
  • 零基础玩转DeepSeek-R1推理模型:Ollama一键部署Llama-8B教程
  • 突破Mac NTFS限制:解锁跨平台文件互操作能力
  • 3大核心功能提升50%英雄联盟操作效率的开源工具
  • 19 款AI Agent工具实战指南:从入门到精通
  • Kali 2025.4上部署HexStrike AI踩坑实录:从MCP连接失败到完美运行的完整排错指南
  • neo4j操作 - f
  • Mac版百度网盘SVIP特权免费解锁终极指南:告别限速困扰
  • Nature|把一千个中国人的基因组拼在一起
  • DAY 14
  • 高效全平台资源下载工具:res-downloader从入门到精通
  • AI 免杀 Skill,多层加密 + 指令混淆,轻松过 Defender / 火绒 / 360
  • OZON平台选品指南:揭秘俄罗斯市场的潜力品牌与爆款趋势