秘诀-如何远程SSN访问家里的八台电脑(frp 实操方案)

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 再拿一个新端口。

相关推荐
雯宝1 小时前
mnt_init 函数
linux
律宏阔7 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔7 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴7 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千7 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei377 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei377 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei377 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh7 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW7 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux