FRP 内网穿透完整部署文档
FRP 内网穿透完整部署文档

FRP 内网穿透完整部署文档

(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 防火墙放行端口

必须放行:

  • 7000
  • 20000–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 范围

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注