FRP的安装和使用

frp 是一款专注于内网穿透的高性能反向代理工具,支持可以轻松实现从公网访问内网服务(如 Web 服务器、SSH、远程桌面等)。github: FRP
以下是 frp 的使用指南:

1、核心概念

  • 服务端(frps):部署在具有公网 IP 的服务器上,负责接收公网请求并转发给内网客户端。
  • 客户端(frpc):部署在内网机器上,负责将内网服务暴露给服务端。
  • 穿透原理:客户端与服务端建立长连接,公网请求先到达服务端,再通过长连接转发给客户端,最终访问内网服务。

2、安装准备

1、下载适配电脑的压缩包

github release 下载对应的安装包

可使用以下命令查询,对应的芯片架构:

1
uname -m

输出说明:

  • x86_64:Intel 芯片(64 位)。
  • arm64:Apple Silicon 芯片(如 M1/M2/M3/M4)

FRP的文件说明:

  • 服务端文件:frps(执行文件)、frps.toml(配置文件)
  • 客户端文件:frpc(执行文件)、frpc.toml(配置文件)

2、配置server端

server端即为你的线上机器,用户可直接访问的线上环境。

1. 配置frps.toml

1
2
# frps.toml
bindPort = 7000

2. 运行

通过以下命令执行:

1
2
3
4
5
# 前台运行(测试用)
./frps -c frps.toml

# 后台运行(生产用)
nohup ./frps -c frps.toml > frps.log 2>&1 &

2、配置客户端

1. 配置 frpc.toml文件

1
2
3
4
5
6
7
8
9
10
11
# # 公网服务端地址和端口(与服务端 bindPort 一致)
serverAddr = "xxx.xxx.xxx.xxx" # 你的公网ip地址
serverPort = 7000 # server端配置的端口

# 穿透代理配置
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3000
remotePort = 8000

2. 启动客户端

1
2
3
4
5
# 前台运行(测试用)
./frpc -c frpc.toml

# 后台运行(生产用)
nohup ./frpc -c frpc.toml > frpc.log 2>&1 &

3、测试

通过公网访问内网 Web 服务(如 Nginx),这里我将一个公网域名通过proxy_pass 代理到本地的8000端口

1
2
3
4
location / {
# 代理到本地8000端口
proxy_pass http://127.0.0.1:8000;
}

在浏览器内就可以通过公网的域名,直接访问到我本地的机器上3000端口部署的服务了。

总结

通过配置FRP,可快速实现内网服务的公网访问,适用于开发调试、远程办公等场景。更多高级功能(如负载均衡、HTTPS 等)。