作为开发人员,通常都会面临支付、公众号回调、第三方回调等方面的问题,其中一个常见的挑战是内网无法访问。为了解决这个问题,您可以使用内网穿透技术,将内部系统映射到外部,从而使第三方系统能够轻松调用本地的API接口。接下来将详细介绍如何设置FRP内网穿透
本次安装的最新版本: frp_0.52.3
,截止目前最新的版本,和旧版本配置有点区别frp_0.52
版本开始官方支持toml
`yaml 和
json 配置文件。请注意,
ini` 已弃用
准备一台公网云服务器
必要的端口:
bind_port
(例如:7000):服务端监听的主端口,用于客户端连接。dashboard_port
(例如:7500):用于访问FRP的Web管理界面的端口。remote_port
(例如:6000):用于从外部访问内网服务的端口,每个穿透的服务都需一个唯一端口。
防火墙/安全组设置:
- 确保在云服务器的防火墙或安全组中开放上述所有端口。
服务端(FRPS)配置 - Linux
下载与解压:
- 为了方便大家下载,可以直接点下载
https://songzixian.lanzouq.com/b013ut6oj
密码:6chp
- 也点击访问 FRP Releases官方仓库。
- 选择合适的Linux服务器版本下载,例如:
frp_x.xx.x_linux_amd64.tar.gz
。 - 使用
tar -zxvf frp_x.xx.x_linux_amd64.tar.gz
解压文件。
- 为了方便大家下载,可以直接点下载
配置文件
frps.toml
:# 客户端通用配置 [common] # 服务端(云服务器)的公网IP地址 server_addr = "127.0.0.1" # 服务端的bind_port server_port = 7066 # 服务穿透配置 ssh是名称自定义的,保持唯一即可 [ssh] # 代理类型为TCP type = "tcp" # 本地IP地址 local_ip = "127.0.0.1" # 本地服务端口 local_port = 8288 # 远程端口,通过此端口在公网访问本地服务 remote_port = 8077
- 确保文件名为
frps.toml
,并位于解压目录。
- 确保文件名为
- 启动服务端:
前台测试运行./frps -c ./frps.toml
- 在解压目录中后台运行
nohup ./frps -c ./frps.toml &
以在后台启动FRP服务端。 - 使用
ps -ef | grep frps
来检查服务端是否运行。 - 若要停止服务端,使用
kill
命令,如kill -9 [进程号]
。
访问Dashboard:
- 通过浏览器访问
http://[云服务器公网IP]:7500
,使用配置的用户名和密码登录。 - Dashboard提供了对FRP服务和代理统计信息的实时监控。
- 通过浏览器访问
客户端(FRPC)配置 - Linux
下载与解压:
- 同上述下载步骤,但选择适用于Linux客户端的版本。
配置文件
frpc.toml
:[common] server_addr = "云服务器公网IP" server_port = 7000 [ssh] type = "tcp" local_ip = "127.0.0.1" local_port = 22 remote_port = 6000 # 用于外部访问的端口
上面配置单个客户端,如果需要配置多个客户端类似这样配置即可
# 客户端通用配置 [common] # 服务端(云服务器)的公网IP地址 server_addr = "云服务器公网IP" # 服务端监听的端口 server_port = 7000 # SSH服务代理配置 ssh是自定义名称.要唯一 [ssh] # 代理类型,此处为TCP type = "tcp" # 本地SSH服务的IP地址,通常是本机 local_ip = "127.0.0.1" # 本地SSH服务监听的端口 local_port = 22 # 远程端口,外部通过云服务器公网IP和此端口访问本地SSH服务 remote_port = 6000 # Web服务代理配置 web是自定义名称.要唯一 [web] # 代理类型,此处为HTTP type = "http" # 本地Web服务的IP地址,通常是本机 local_ip = "127.0.0.1" # 本地Web服务监听的端口 local_port = 80 # 远程端口,外部通过云服务器公网IP和此端口访问本地Web服务 remote_port = 8000 # 数据库服务代理配置 database是自定义名称.要唯一 [database] # 代理类型,此处为TCP type = "tcp" # 本地数据库服务的IP地址,通常是本机 local_ip = "127.0.0.1" # 本地数据库服务监听的端口 local_port = 3306 # 远程端口,外部通过云服务器公网IP和此端口访问本地数据库服务 remote_port = 33060
- 在这个配置中,
[ssh]
、[web]
和[database]
是代理的名称,每个名称都是唯一的。这些名称用来标识不同的代理配置块,每个块定义了一个内网服务如何映射到云服务器的公网IP地址和特定的远程端口上。确保代理名称在整个配置文件中保持唯一。 - 文件名为
frpc.toml
,确保与FRP客户端程序在同一目录。
- 在这个配置中,
启动客户端:
- 运行
nohup ./frps -c ./frps.toml &
以在后台启动FRP客户端。 - 使用
ps -ef | grep frpc
检查客户端是否运行。 - 若要停止客户端,使用
kill
命令,如kill -9 [进程号]
。
- 运行
客户端(FRPC)配置 - Windows
下载与解压:
- 访问FRP的GitHub发布页面,下载适用于Windows的版本,如
frp_x.xx.x_windows_amd64.zip
。 - 解压下载的文件。
- 访问FRP的GitHub发布页面,下载适用于Windows的版本,如
配置文件
frpc.toml
:[common] server_addr = "云服务器公网IP" server_port = 7000 [ssh] type = "tcp" local_ip = "127.0.0.1" local_port = 22 remote_port = 6000 # 用于外部访问的端口
确保文件名为
frpc.toml
,并与frpc.exe
位于同一目录。3.启动FRP客户端:
- 双击
frpc.exe
或在命令行中运行frpc.exe -c frpc.toml
。 - 推荐使用进入解压目录,使用
cmd
命令支持frpc.exe -c frpc.toml
,这样不会出现闪退的情况
- 双击