(VPS 服务端 + NAS 客户端,systemd 后台运行)
一、整体说明
架构说明
- VPS:公网服务器,运行
frps(服务端) - NAS:家中或内网设备,运行
frpc(客户端) - 访问流程:
外网 → VPS 公网 IP:端口 → FRP → NAS 内网服务
二、VPS 端部署(frps 服务端)
1️⃣ 环境要求
- 系统:Debian / Ubuntu / CentOS 均可
- 需 root 权限
- 确保 VPS 有公网 IP
2️⃣ 下载 FRP
cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_linux_amd64.tar.gz
tar -zxvf frp_0.56.0_linux_amd64.tar.gz
cd frp_0.56.0_linux_amd64
3️⃣ 配置 frps(服务端配置)
编辑配置文件:
vim frps.toml
示例内容:
bindPort = 7000
auth.method = "token"
auth.token = "你的强密码token"
allowPorts = [
{ start = 20000, end = 30000 }
]
说明:
bindPort:frpc 连接用端口token:VPS 和 NAS 必须一致allowPorts:允许 NAS 映射到 VPS 的端口范围
4️⃣ 测试启动 frps
chmod +x frps
./frps -c frps.toml
看到:
start frps success
说明服务端正常。
5️⃣ frps 设置为开机自启(systemd)
vim /etc/systemd/system/frps.service
内容:
[Unit]
Description=FRP Server
After=network.target
[Service]
ExecStart=/opt/frp_0.56.0_linux_amd64/frps -c /opt/frp_0.56.0_linux_amd64/frps.toml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启用:
systemctl daemon-reload
systemctl start frps
systemctl enable frps
systemctl status frps
6️⃣ VPS 防火墙放行端口
必须放行:
700020000–30000(或你配置的范围)
三、NAS 端部署(frpc 客户端)
1️⃣ 下载 FRP
cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_linux_amd64.tar.gz
tar -zxvf frp_0.56.0_linux_amd64.tar.gz
2️⃣ 创建配置目录
mkdir -p /opt/frp
3️⃣ 配置 frpc(客户端配置)
vim /opt/frp/frpc.toml
示例内容:
serverAddr = "VPS公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "与你VPS一致的token"
[[proxies]]
name = "nas-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5000
remotePort = 20001
说明:
serverAddr:VPS 公网 IP(不要写端口)localPort:NAS 上的服务端口remotePort:外网访问端口(必须在 allowPorts 范围内)
4️⃣ 手动测试 frpc(非常重要)
cd /opt/frp_0.56.0_linux_amd64
chmod +x frpc
./frpc -c /opt/frp/frpc.toml
成功标志:
login to server success
start proxy success
四、NAS 上设置 frpc 后台运行(systemd)
1️⃣ 创建 systemd 服务
vim /etc/systemd/system/frpc.service
内容(适配 NAS / 老 systemd):
[Unit]
Description=FRP Client
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/opt/frp_0.56.0_linux_amd64/frpc -c /opt/frp/frpc.toml
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
2️⃣ 启动并设置开机自启
systemctl daemon-reload
systemctl start frpc
systemctl enable frpc
systemctl status frpc
成功状态:
Active: active (running)
3️⃣ 查看日志(排错用)
journalctl -u frpc -f
五、访问方式
假设:
- VPS IP:
1.2.3.4 - remotePort:
20001
访问地址:
http://1.2.3.4:20001
六、常见错误速查表
❌ unknown field "erverAddr"
- 原因:
serverAddr拼写错误 - 解决:检查 frpc.toml 字段名
❌ systemd 一直 auto-restart
- 原因:配置文件错误 / 拼写错误
- 解决:
journalctl -u frpc
❌ 外网连不上
- VPS 防火墙未放行端口
remotePort不在 allowPorts 范围