采用FRP开源工具实现Dify服务器Agent应用内网穿透
内网穿透解决方案:FRP实现Dify服务器远程访问 为解决内网Dify服务器远程访问问题,作者尝试了花生壳DDNS后发现其存在端口限制和流量计费问题。最终选择开源的FRP软件,成功实现内网穿透。方案包含: 在阿里云ECS(Ubuntu)部署FRP服务端(0.64.0版) 在内网Win11服务器部署FRP客户端 配置双向token认证和安全端口映射 实现Dify WebUI(80→15080)、远程
需求背景
部署了Dify服务器在内网,只有192.168.X.X的内网地址,为了可以随时随地访问服务器上的Agent应用,于是在服务器安装了花生壳DDNS软件,可以采用域名通过Internet随时随地访问Dify服务器,但是花生壳开通的内网映射仅支持有限的端口(如80,443等),而且按流量计费,充的流量很快就用完了,于是就关注有没有好用的内网穿透开源软件,发现FRP是目前人气最高的内网穿透开源软件。试用了一下,果真好用,解决了内网服务器Dify Agent应用通过Internet访问的问题,还解决了内网服务器远程桌面访问的问题,给这个软件的开发者们点赞!
FRP安装
参照官网指导,下载release目录下对应的软件,分别在公网服务器(有公网IP)安装FRP Server,在待穿透私网服务器(无公网IP)安装FRP Client即可。
FRP中文官网
https://gofrp.org/zh-cn/
下载地址
目前FRP最新版本是0.64.0
https://github.com/fatedier/frp/releases

我的公网服务器是阿里云的ECS,CPU型号为Intel,操作系统为Ubuntu,对应FRP Server的安装包为:frp_0.64.0_linux_amd64.tar.gz
https://github.com/fatedier/frp/releases/download/v0.64.0/frp_0.64.0_linux_amd64.tar.gz
我的内网Dify服务器是联想的P3,CPU型号为Intel,操作系统为Win11,对应FRP Client的安装包为:frp_0.64.0_windows_amd64.zip
https://github.com/fatedier/frp/releases/download/v0.64.0/frp_0.64.0_windows_amd64.zip
服务器配置
Ubuntu系统,编辑 /usr/local/src/frp_0.64.0_linux_amd64/frps.toml
# 客户端与服务连接端口
bindPort = 7000
# 客户端连接服务端时认证的密码
auth.method = "token"
auth.token = "12345678" #自行修改为自己的token
# http协议监听端口
vhostHTTPPort = 15499
# web界面配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "12345678" #自行修改为自己的密码
客户端配置
Win11系统,编辑 D:\tools\frp_0.64.0_windows_amd64\frpc.toml
# 可以参考官方配置frpc_full_example.toml,里面有详细配置说明
# https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml
# 填写你的frps server的ip 和 port
serverAddr = "XX.XX.XX.XX" #替换为公网服务器IP地址
serverPort = 7000
# 配置 token 认证,frpc 客户端需指定frps一样的token
auth.method = "token"
auth.token = "12345678" #自行替换为自己的密码
# 在 frp 中,一个代理对应一个需要公开访问的内网服务。
# 一个客户端可以同时配置多个代理,以满足不同的需求。
# 下面配置的是将 win10 远程桌面暴露到 frps_ip 15389端口上
[[proxies]]
name = "windows remote desktop"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 15389
[[proxies]]
name = "searxng web ui"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8081
remotePort = 15081
[[proxies]]
name = "dify web ui"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 15080
后台服务化
在Linux系统和Windows系统下实现FRP后台服务化,可以参考下面文章:
frp v0.57内网穿透搭建和使用(详细教程)
https://zhuanlan.zhihu.com/p/697533940
配置检查
访问 http://你云服务器的IP:7500
显示这样就代表成功。通过访问云服务IP加端口号,可以分别访问Dify web ui,searxng web ui以及windows远程桌面。
问题一:无法访问云服务器7500端口
一般情况是因为云服务器上没有配置安全规则,需要允许接收映射到云服务器的端口。
问题二:Win11增加用户用于远程访问
远程访问由于用户鉴权规则失败,可以添加新的用户,如控制面板增加新的远程访问用户:
按下【Windows + R】键组合,在弹出的运行框中输入“control userpasswords2”,然后点击【确定】按钮。这将打开控制面板的用户账户设置界面,您可以进一步操作来创建新用户。

也可通过组策略编辑,修改远程登录的限制条件。

更多推荐



所有评论(0)