mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
389 字
1 分钟
FRP 内网穿透配置教程(frps + fp-multiuser)
2025-09-12
2026-08-26

FRP 内网穿透配置教程(frps + fp-multiuser)#

简介#

frp 是一个高性能的内网穿透工具,由服务端 frps 与客户端 frpc 组成:服务端部署在有公网 IP 的服务器上,客户端运行在局域网内,从而把内网服务(如 Minecraft、SSH、Web)映射到公网。

本文额外引入 fp-multiuser 插件实现多用户独立 Token 鉴权,适合多个客户端共用一个 frps 的场景。

TIP

架构示意:frpc(内网) --tcp--> frps(公网) --httpPlugin--> fp-multiuser(本地鉴权)

服务端部署流程#

1. 上传并启动 frps#

frps 二进制文件与配置文件放到 /frps 目录,先手动启动验证:

# 创建目录并上传 frps、frps.toml
cd /frps
./frps -c frps.toml

同时创建 /fp-multiuser 目录,上传 fp-multiuser 二进制与 tokens 文件。

NOTE

Debian 系统若缺少 systemd,可先执行 apt install systemd 再使用下面的服务方式托管。

2. 配置防火墙#

# 放行 frp 通信端口与服务端面板端口
sudo ufw allow 7000/tcp
sudo ufw allow 7500/tcp
sudo ufw status | grep 7000
sudo ufw status | grep 7500

3. 配置 systemd 开机自启#

frps.servicefp-multiuser.service 上传到 /etc/systemd/system/ 目录,然后:

# 重新加载服务单元
systemctl daemon-reload
# 启动 frp
systemctl start frps
# 停止 frp
systemctl stop frps
# 重启 frp
systemctl restart frps
# 查看 frp 状态
systemctl status frps
# 配置 frps / frpc 开机自启动
systemctl enable frps
systemctl enable frpc
TIP

frps.service 已配置 ExecStartPre 在启动前自动重启 fp-multiuser,无需手动先后启动。

frps.toml#

bindPort = 7000
# auth.method = "token"
# auth.token = "12345678" # [fp-multiuser]
webServer.addr = "0.0.0.0" # 允许所有IP访问(若只想本机访问,填127.0.0.1)
webServer.port = 7500 # webServer 访问端口(自定义,如7500)
webServer.user = "admin" # 登录用户名
webServer.password = "123456" # 登录密码
[[httpPlugins]]
name = "multiuser"
addr = "127.0.0.1:7200"
path = "/handler"
ops = ["Login"]
NOTE

bindPort 为客户端连接端口,webServer 为管理面板。httpPlugins 把登录鉴权转发到本地 fp-multiuser 插件。

frps.service#

[Unit]
Description=frp server
After=network.target syslog.target fp-multiuser.service
Wants=network.target
Requires=fp-multiuser.service
[Service]
Type=simple
# 核心:启动 frps 前先重启 fp-multiuser(自动重新加载 tokens)
ExecStartPre=/usr/bin/systemctl restart fp-multiuser.service
ExecStart=/frps/frps -c /frps/frps.toml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target

fp-multiuser.service#

[Unit]
Description=FRP Multiuser Auth Plugin
After=network.target
# 声明 frps 依赖这个服务(可选,后续 frps 配置会反向依赖)
[Service]
Type=simple
User=root
# 插件的启动命令(路径必须和你的 /fp-multiuser 一致)
ExecStart=/fp-multiuser/fp-multiuser -l 127.0.0.1:7200 -f /fp-multiuser/tokens
# 进程崩溃时自动重启
Restart=on-failure
RestartSec=5s
# 后台运行
WorkingDirectory=/fp-multiuser
# 停止时强制杀进程
ExecStop=pkill -9 fp-multiuser
[Install]
WantedBy=multi-user.target

tokens#

fp-multiuser 读取的账号映射文件,格式为 用户名=Token

cui123666=1234567890

Token 等同于访问凭证,请勿泄露;如泄露请在 tokens 文件中立即更换。

frpc.toml#

客户端配置示例,将本地的 Minecraft 服务映射到公网:

serverAddr = "ip地址"
serverPort = 7000
auth.method = "token"
#auth.token = "12345678"
metadatas.token = "1234567890"
user = "cui123666"
[transport]
protocol = "tcp"
[transport.tls]
enable = true
[[proxies]]
name = "minecraft"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 映射端口
transport.useEncryption = true
NOTE

usermetadatas.token 需与 tokens 文件中定义的用户名和 Token 对应,remotePort 为公网访问端口。


祝你天天开心!

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

FRP 内网穿透配置教程(frps + fp-multiuser)
https://blog.sywan.top/posts/frp/
作者
屿
发布于
2025-09-12
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00