frp 完整实操方案
整体架构:
1 台有公网 IP 的 VPS(服务端 frps)←‑‑‑内网穿透‑‑‑8 台家里内网主机(客户端 frpc‑01 ~ frpc‑08)
前提条件:
① 你要有一台公网 VPS(阿里云 / 腾讯云等),VPS 安全组放行端口:frp 服务端口、每台机器映射端口
② frp 全部开源免费,流量走你自己 VPS,无第三方中转,性能稳定,适合长期管理 8 台主机
③ 下面示例 VPS 公网 IP:120.x.x.x,frp 服务端口用 7000,dashboard 端口7500,先记下来,部署时替换成你自己 VPSIP
第一部分:VPS 上部署 frps(frp 服务端,一般用 CentOS/Rocky/Ubuntu 都可以)
步骤 1:下载 frp 二进制包(统一版本,建议 v0.61.0,所有机器版本一致,避免兼容报错)
bash
先到github查看最新包,这里以linux amd64为例
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
tar -zxvf frp_0.61.0_linux_amd64.tar.gz
cd frp_0.61.0_linux_amd64
目录内文件说明:
frps:服务端程序(VPS 运行)
frpc:客户端程序(家里 8 台内网机器运行)
*.ini:示例配置文件
步骤 2:部署 frps 程序、配置文件
bash
cp frps /usr/local/bin/
mkdir -p /etc/frp
cp frps.ini /etc/frp/
编辑服务端配置 /etc/frp/frps.ini
ini
common
bind_port = 7000
token,连接密钥,家里所有frpc必须填一模一样,自定义一个长字符串
token = MyHomeFrp@2026
web监控面板,可选,查看在线客户端
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = Admin@123456
步骤 3:VPS 防火墙 + 云厂商安全组放行端口
云平台控制台安全组放行入站端口:7000/tcp、7500/tcp,后续每台机器 SSH 映射端口也要预留端口段,例如端口段:22001‑22008
如果 VPS 本机 firewalld 开启:
bash
firewall-cmd --add-port=7000/tcp --permanent
firewall-cmd --add-port=7500/tcp --permanent
firewall-cmd --add-port=22001-22008/tcp --permanent
firewall-cmd --reload
步骤 4:systemd 托管 frps 开机自启
新建文件 /etc/systemd/system/frps.service
ini
Unit
Description=frps service
After=network.target syslog.target
Service
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
Restart=on-failure
Install
WantedBy=multi-user.target
启动并设置开机自启
bash
systemctl daemon-reload
systemctl start frps
systemctl enable frps
systemctl status frps
此时 VPS 端部署完成,可以打开浏览器访问 http://VPSIP:7500 进入 frp 监控面板。
第二部分:家里内网 8 台 Rocky8.6 主机部署 frpc 客户端(单台示例,剩下 7 台改配置即可)
每一台内网机器操作逻辑一样,仅配置内的名字、映射端口不一样。以第一台 192.168.1.200 为例。
步骤 1:下载同样版本 frp 包
bash
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
tar -zxvf frp_0.61.0_linux_amd64.tar.gz
cd frp_0.61.0_linux_amd64
cp frpc /usr/local/bin/
mkdir -p /etc/frp
cp frpc.ini /etc/frp/
步骤 2:编辑客户端配置 /etc/frp/frpc.ini(第一台机器示例)
ini
common
VPS公网IP
server_addr = 120.x.x.x
server_port = 7000
token必须和frps.ini完全一致
token = MyHomeFrp@2026
ssh-k8s-01
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 22001
ssh‑k8s‑01:唯一名称,8 台机器名字不能重复,第二台写ssh‑k8s‑02以此类推
remote_port = 22001:VPS 上对外开放的端口,第二台22002,直到22008,一一对应 8 台机器
第二台机器 frpc.ini 片段示例:
ini
ssh-k8s-02
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 22002
步骤 3:Rocky8.6 本机 firewalld 不需要额外放行端口(frpc 向外发起连接,是出站流量),不用开端口
步骤 4:给 frpc 做 systemd 服务开机自启
新建 /etc/systemd/system/frpc.service
ini
Unit
Description=frpc service
After=network.target
Service
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
Restart=on-failure
Install
WantedBy=multi-user.target
bash
systemctl daemon-reload
systemctl start frpc
systemctl enable frpc
systemctl status frpc
单台部署完成。剩下 7 台内网主机重复上面整套步骤,只修改 frpc.ini 里的区块名和 remote_port 端口。
第三部分:外网访问方式
在外网任意机器 ssh 连接:
bash
第1台
ssh root@VPS公网IP -p 22001
第2台
ssh root@VPS公网IP -p 22002
......
ssh root@VPS公网IP -p 22008
第四部分:关键点、坑点、安全加固
版本统一:frps 和全部 frpc 版本号必须完全一样,版本差异大会连不上。
端口规划不能冲突:remote_port 每台一个独立端口,不能重复。VPS 安全组一定要提前放行 22001‑22008 端口段,漏放端口直接连不通。
token 一定要复杂,不要用简单字符串,相当于 frp 之间连接密码。
不建议直接把 22 端口暴露公网,后续可以再加一层安全:VPS 端限制来源 IP 白名单(云安全组只放你外网固定公网 IP,其他人无法访问端口)。
如果你家里 8 台机器需要同时转发 Harborweb 页面,就再加一条 tcp 转发段,local_port 填 harbor 端口 (一般 80/443),remote_port 再新开一段端口。
对比 cpolar:frp 流量走你自有 VPS,无流量限制;cpolar 是第三方中转,免费版端口地址会变。frp 前期需要购置 VPS,一次性投入,长期稳定。
可选扩展:如果后续要转发 Win10 的 RDP (3389)
就在 Win10 上同样部署 frpc,配置一条 tcp 转发,local_port=3389,remote_port 再拿一个新端口。