本文以 FRP 0.52.0 的 TOML 配置格式为例。使用其他版本时,请先核对对应版本的配置字段。

安装服务端

从 FRP 官方 Releases 页面下载与服务器操作系统和 CPU 架构匹配的发行包。以下以 Linux AMD64 为例:

wget https://github.com/fatedier/frp/releases/download/v0.52.0/frp_0.52.0_linux_amd64.tar.gz
tar -zxvf frp_0.52.0_linux_amd64.tar.gz
cp -r frp_0.52.0_linux_amd64 frp
cd frp

发行包中通常包含 frps(服务端)、frpc(客户端)以及对应配置示例。

服务端配置

编辑 frps.toml:

# frps.toml
bindPort = 7000

# 只接受 TLS 连接
transport.tls.force = true

# 请使用随机生成的长令牌,并在客户端配置相同值
auth.token = "replace-with-a-random-token"

# Dashboard 示例;生产环境建议限制来源 IP 或放在反向代理/认证之后
webServer.addr = "127.0.0.1"
webServer.port = 7500
webServer.user = "replace-with-a-username"
webServer.password = "replace-with-a-strong-password"

不要把真实令牌或管理密码提交到公开仓库。若需要远程访问 Dashboard,应通过防火墙、VPN 或带认证的反向代理控制访问范围。

前台测试:

./frps -c ./frps.toml

使用 systemd 管理

创建 /etc/systemd/system/frps.service:

[Unit]
Description=FRP server
After=network.target

[Service]
Type=simple
ExecStart=/workspace/frp/frps -c /workspace/frp/frps.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target

按实际安装目录修改 ExecStart,然后启动并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps
sudo systemctl status frps

客户端配置

下载与你本地系统和架构匹配的 FRP 客户端,编辑 frpc.toml:

serverAddr = "your_server_ip"
serverPort = 7000
auth.method = "token"
auth.token = "replace-with-a-random-token"

[[proxies]]
name = "example-service"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8000
remotePort = 8000

启动客户端:

./frpc -c ./frpc.toml

Windows 下可使用相同配置格式的 frpc.exe:

frpc.exe -c frpc.toml

HTTP 子域名代理

如果希望通过子域名访问内网 Web 服务,需要在服务端配置 subDomainHost 和 vhostHTTPPort,并在 DNS 中配置相应解析。客户端代理类型改为 http,使用 subdomain 字段。具体示例见《FRP 子域名代理配置说明》。