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下的大模型。

相关推荐
禾小西2 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨2 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
徐小黑ACG2 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
优橙教育3 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
SEO_juper3 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
小易老师AI实战3 小时前
RLHF深度详解(超通俗+原理+工程+对比):大模型对齐的核心基石
人工智能·大模型·sft·rlhf·ppo·人类反馈强化学习·llm 对齐
西柚小萌新3 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛3 小时前
cpp学习笔记--常量指针
java·开发语言·算法
zhengqweasd3 小时前
机房托管服务器怎么选硬盘,机械盘和 SSD 托管场景差异
运维·服务器·github