搭建Frp服务远程访问家中设备

227 阅读3分钟

frp内网穿透

适用场景

远程访问家中的内网设备

设备准备

  1. 公网服务器
  2. 控制设备
  3. 被控设备

搭建过程

下载frp安装包

目前最新版:v0.61.0(github.com/fatedier/fr…
amd架构:
Linux:frp_0.61.0_linux_amd64.tar.gz
Macos(M1):frp_0.61.0_darwin_amd64.tar.gz
Windows:frp_0.61.0_windows_amd64.zip

服务端服务搭建

下载frp
# 1. 下载(scp传输或者wget下载)
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
# 2. 解压frp
tar -zxvf frp_0.61.0_linux_amd64.tar.gz
# 3. 重命名
mv frp_0.61.0_linux_amd64 frp
# 4. 移动到系统执行目录
mv frp /usr/bin/frp

# rp_0.61.0_linux_amd64文件夹内容解析 start
# frpc 客户端程序
# frpc.toml 客户端程序
# frps 服务端程序(服务端搭建使用)
# frps.toml 服务端配置文件
# License 许可证
# 文件夹内容解析 end
修改frps.toml配置文件
# 客户端需要访问的端口,可以随意修改
bindPort = 7000
 
# 授权方式
auth.method = "token"
# 授权码,请改成更复杂的
auth.token = "authToken"
 
# dashboard 服务配置,"0.0.0.0" 为本机所有 ip
webServer.addr = "0.0.0.0"
# dashboard 配置的端口,可以随意修改
webServer.port = 7500
# dashboard 配置的用户名和密码,修改成自己的
webServer.user = "user"
webServer.password = "password"
使用systemd管理frps
  1. 创建frps.service文件:vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
 
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/bin/frp/frps -c /usr/bin/frp/frps.toml
 
[Install]
WantedBy = multi-user.target
  1. 使用systemd命令管理frps服务
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
杀掉frps进程方式
# 查找PID
ps -ef | grep frps
# 杀掉frps进程
kill -SIGTERM PID
访问管理段

被控设备、控制设备

下载frp

github.com/fatedier/fr…

修改frpc.toml配置文件
被控设备
# 服务器 ip 与端口配置
serverAddr = "ServerIP"
serverPort = 7000
 
# 服务器 token 配置
auth.method = "token"
auth.token = "authToken"
 
## 配置本地的端口接听,name对于访问者来说就是serverName
## Windows桌面远程访问配置
[[proxies]]
name = "stcp-home"
type = "stcp"
secretKey = "secretKey"
# 本地需要访问的 ip 与端口
localIP = "127.0.0.1"
localPort = 3389

## 虚拟机远程ssh访问配置
[[proxies]]
name = "stcp-centos1"
type = "stcp"
secretKey = "secretKey"
# 本地需要访问的 ip 与端口
localIP = "127.0.0.1"
localPort = 22
控制设备
# 服务器 ip 与端口配置
serverAddr = "ServerIP"
serverPort = 7000
 
# 服务器 token 配置
auth.method = "token"
auth.token = "authToken"
 
## windows远程桌面访问者的配置,name不可一致
[[visitors]]
name = "stcp-mac"
type = "stcp"
serverName = "stcp-home"
secretKey = "secretKey"
bindAddr = "127.0.0.1"
bindPort = 6000

## 虚拟机ssh访问者的配置
[[visitors]]
name = "stcp-mac1" 
type = "stcp"
serverName = "stcp-centos1"
secretKey = "secretKey"
bindAddr = "127.0.0.1"
bindPort = 6001
配置启停脚本
# 在frpc.exe同级目录下
@echo off
echo Starting frpc service...

:: 检查是否已有运行中的 frpc 进程
tasklist /FI "IMAGENAME eq frpc.exe" | find /I "frpc.exe" >nul
if %ERRORLEVEL% EQU 0 (
    echo frpc is already running.
    pause
    exit
)

:: 启动 frpc 程序并让它以后台进程运行
start /b frpc -c frpc.toml

echo frpc service started and running in the background.
pause
@echo off
echo Stopping frpc service...

:: 查找运行中的 frpc 进程并关闭
tasklist /FI "IMAGENAME eq frpc.exe" | find /I "frpc.exe" >nul
if %ERRORLEVEL% EQU 0 (
    echo Found frpc process. Stopping...
    taskkill /IM frpc.exe /F
    echo frpc service stopped.
) else (
    echo No running frpc process found.
)

pause

Windows11设置

  1. 开启远程桌面:系统-远程桌面-开启
  2. 开启OpenSSH服务(SSH需要):系统-可选功能-添加可选功能(OpenSSH 服务器)-重启系统

远程连接

远程桌面

127.0.0.1:6000

远程SSH

127.0.0.1:6001

参考

使用 frp 实现 windows 远程_frp windows-CSDN博客