各种踩坑后终于实现使用frp完成远程桌面连接
由于工作需要,经常会在家期间会使用公司电脑,之前使用花生壳、TeamViewer,不是限制流量就是限制使用次数,经常在最关键的时候宕机,后来发现了frp内网映射的方法。经历了整整一周的时间,终于研究明白使用frp完成远程桌面的连接。
frp是什么
简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务 截至本文完成,frp的最新版本为
,本文使用最新版本。
准备工作
需要准备服务器一台(阿里云、腾讯云都有优惠机器,或者有公网IP的实体机也行)
服务端设置
我们以CentOS服务器为例
SSH连接到服务器之后运行如下命令查看处理器架构,根据架构下载不同版本的frp
输入命令
arch
查看结果,如果是“X86_64“即可选择”amd64”, 运行如下命令,根据架构不同,选择相应版本并进行下载
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
解压命令
tar -zxvf frp_0.37.0_linux_amd64.tar.gz
文件夹改个名,方便使用 ,输入以下命令
mv frp_0.37_linux_amd64 frp37
把解压出来的文件夹复制可以到你想要的目录下,也可以像我一样直接放在用户目录下了,进入该目录
cd frp37
查看一下文件
ls -l
frps 是服务端程序,frps.ini 是服务端配置文件
frpc 是客户端程序,frpc.ini 是客户端配置文件
服务端我们需要修改的是 frps.ini 文件
vim frps.ini (如果没有vim命令可以安装也可直接输入vi)
这个文件应有如下格式
[common]
bind_port = 7000
token = abc123
dashboard_port = 7500
dashboard_user = user
dashboard_pwd = password
vhost_http_port = 10080
vhost_https_port = 10443
如果没有必要,端口均可使用默认值,token可自行编译
• “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
• “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
编辑完成后保存(vim不会使用的可以参考我的另外一篇文章)。
之后我们就可以运行frps的服务端了
输入命令
./frps -c frps.ini
如果看到屏幕输出这样一段内容,即表示运行正常,如果出现错误提示,请检查上面的步骤。
2021/06/29 15:58:55 [I] [root.go:200] frps uses config file: frps.ini
2021/06/29 15:58:55 [I] [service.go:192] frps tcp listen on 0.0.0.0:7001
2021/06/29 15:58:55 [I] [root.go:209] frps started successfully
后台运行frp
使用systemctl来控制启动
vim /lib/systemd/system/frps.service
在frps.service(可以命名为xx.service)里写入以下内容
[Unit]
Description=frps service After=network.target syslog.target Wants=network.target
[Service]
Type=simple #启动服务的命令
ExecStart=此处写你的frps的实际安装目录/frps -c 此处写你的frps的实际安装目录/frps.ini
[Install]
WantedBy=multi-user.target
使用以下命令启动frps
systemctl start frps
使用以下命令打开自启动
systemctl enable frps
使用以下命令关闭开机自启动
systemctl disable frps
使用以下命令重启应用
systemctl restart frps
使用以下命令停止应用
systemctl stop frps
使用以下命令查看应用的日志
systemctl status frps
写的frps的后台启动,frpc的话,frps修改为frpc即可。
frpc 客户端
(一) Windows系统
在 Windows上搭建客户端
1.下载文件,下载地址:
,一般选择 windows_amd64
2.解压文件
3. 编辑 frpc.ini
编辑内容如下:
[common]
server_addr = xx.xx.xx.xx
server_port = 7000
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 33389
server_addr 配置为可访问的公网IP
server_port 和服务端(frps.ini)的 bind_port 一致
local_port 为Windows远程桌面的默认端口号 3389
remote_port 为远程桌面共享时使用的端口号
4. 编辑启动文件
方案一:带命令行
新建run.txt文件,复制以下内容
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 路径frp_0.37.0_windows_amd64\frpc.exe -c 路径frp_0.37.0_windows_amd64\frpc.ini",vbhide
保存文件
修改后缀名为 run.vbs
双击run.vbs启动frp
方案二:不带命令行
新建run.txt文件,复制以下内容
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd frp所在路径
frpc -c frpc.ini
exit
保存文件
修改后缀名为 run.bat
双击run.bat启动frp
6.开启开机自启动
键盘按win+r

输入shell:startup

将启动文件(run.vbs或run.bat)的 快捷方式 放入文件夹中(一定要是快捷方式)如下图

(二) 远程连接
a) 搜索“远程桌面连接”

b) 输入 公网 IP
例如:101.11.11.11

c) 输入目标计算机的账号和密码,连接成功
二、MacOS系统
(一)在 Mac 上搭建客户端
1.下载文件,下载地址:
,一般选择darwin_amd64
2.解压文件
3. 配置 frpc.ini
配置内容如下:
[common]
server_addr = xx.xx.xx.xx
server_port = 7000
[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 35900
use_encryption = true
use_compression = true
server_addr 配置为可访问的公网IP
server_port 和服务端(frps.ini)的 bind_port 一致
local_port 为 VNC 的默认端口号 5900
remote_port 为屏幕共享时所输入的IP地址的端口号
4. 启动 frpc
在终端,cd进入文件夹
./frpc -c ./frpc.ini
5. 开启电脑共享
系统偏好设置->共享->远程管理
(二)远程连接
1. Mac连接Mac
使用处于公司局域网的 Mac 测试连接
a) 在Mac电脑桌面,使用快捷键 command + k 唤出连接服务器页面
b) 输入 公网 IP 和 remote_port 指定的端口号
例如: vnc://101.11.11.11:35900

C) 输入用户名和密码进行连接即可

d) 连接成功

2. Windows连接Mac
a) 软件:vnc viewer
b) 下载地址:

d) 输入 公网 IP 和 remote_port 指定的端口号
例如: 101.11.11.11:35900

e) 连接成功
