> 技术文档 > 采用FRP开源工具实现Dify服务器Agent应用内网穿透_frp0.64.0

采用FRP开源工具实现Dify服务器Agent应用内网穿透_frp0.64.0


需求背景

部署了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.gzhttps://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.ziphttps://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 = 7500webServer.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 和 portserverAddr = \"XX.XX.XX.XX\" #替换为公网服务器IP地址serverPort = 7000# 配置 token 认证,frpc 客户端需指定frps一样的tokenauth.method = \"token\"auth.token = \"12345678\" #自行替换为自己的密码# 在 frp 中,一个代理对应一个需要公开访问的内网服务。# 一个客户端可以同时配置多个代理,以满足不同的需求。# 下面配置的是将 win10 远程桌面暴露到 frps_ip 15389端口上[[proxies]]name = \"windows remote desktop\"type = \"tcp\"localIP = \"127.0.0.1\"localPort = 3389remotePort = 15389[[proxies]]name = \"searxng web ui\"type = \"tcp\"localIP = \"127.0.0.1\"localPort = 8081remotePort = 15081[[proxies]]name = \"dify web ui\"type = \"tcp\"localIP = \"127.0.0.1\"localPort = 80remotePort = 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”,然后点击【确定】按钮。这将打开控制面板的用户账户设置界面,您可以进一步操作来创建新用户。

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