SSH隧道实现Dify与Ollama跨服务器通信

由于部署大模型的时候,Dify(腾讯云)和Ollama(AutoDL)在不同的服务器上,他们之间无法进行直接通信,这里使用SSH隧道进行转发端口。

在腾讯云服务器(Dify所在)上执行SSH隧道命令:

bash 复制代码
ssh -L 6006:localhost:6006 -N root@<AutoDL公网IP> -p <SSH端口>

作用是:将腾讯云服务器本地的6006端口,通过SSH隧道,转发到AutoDL服务器的6006端口。

如果此时隧道建立成功,在Dify进行配置的时候,基础URL就应该是腾讯云服务器的本机地址,因为Dify访问本地端口,就相当于在访问AutoDL上的服务。

然而,AutoDL的指令无法直接使用

如果将该指令直接在腾讯云服务器上执行就会得到:

此时,还是无法连接到Dify

我们先进行隧道的排查与修复:

(1)确认隧道是否还在运行

腾讯云服务器上执行:ps aux | grep ssh | grep -v grep

可以发现缺少了端口参数转发 -L(之前的SSH命令只是登录到了AutoDL,没有做端口转发)

(2)终止错误的SSH连接

先终止当前错误的SSH连接:kill 763313

(3)重新建立正确的隧道

根据自己原始的SSH内容添加 -g -L参数:

这一步输入密码后不会显示出来,指针也不会移动,直接回车就好。执行后,终端会卡住不动,这是正常现象,说明隧道在运行,也不要关闭这个终端。

(4)验证隧道是否成功

保持隧道终端打开,另开一个腾讯云终端,执行:curl http://127.0.0.1:6006/api/tags

也可查看日志信息(verbose),显示完整的请求和响应过程:

bash 复制代码
curl -v http://127.0.0.1:6006/api/tags

如上图所示即为隧道通了。

|------------------------|---------------------------|
| 参数 | 作用 |
| -C | 压缩数据,加快传输速度 |
| -N | 不执行远程命令,只做端口转发 |
| -g | 允许其他主机连接本地转发端口 |
| -L 6006:127.0.0.1:6006 | 端口转发:本地6006 → AutoDL的6006 |
| -p 23855 | 指定SSH端口 |
[各参数的作用]

(5)在Dify中配置

在Dify的Ollama配置中:

如此,即可在Dify上配置Ollma下的大模型。

相关推荐
布莱克60511 分钟前
队列详解:定义、分类、应用场景及与栈的区别(C/C++ 代码讲解)
c语言·开发语言·c++·队列
CPETW11 分钟前
USB TO I2C_(Excel)_Scan ---- 1000KHz总线速率测试_A
c语言·开发语言·网络·科技·单片机
2601_9622035116 分钟前
【SpringBoot3】面向切面 AspectJ AOP 使用详解
开发语言·前端·python
程序员大雄学编程19 分钟前
微积分43. 无穷积分入门:从概念到Python实战可视化
开发语言·python·学习·微积分
何以解忧,唯有..19 分钟前
LangChain 中 Pydantic 格式输出:结构化输出的完整指南
java·开发语言·langchain
郝学胜-神的一滴28 分钟前
C++11 工程级应用 06:自己造一个类似Python的Range迭代器
开发语言·c++·windows·python·程序人生·microsoft
tachibana230 分钟前
AI Agent 的记忆机制
人工智能·ai·大模型·llm·agent
zh_xuan39 分钟前
c++ jthread
开发语言·c++·jthread
旧梦952740 分钟前
Java 捕获多个异常:从基础语法到最佳实践
java·开发语言
海兰1 小时前
【 Python 量化交易】开篇
开发语言·python·信息可视化·量化交易