基于 FRP + 云服务器实现安全可靠的远程桌面连接
文章目录
- 基于 FRP + 云服务器实现安全可靠的远程桌面连接
- 什么是 FRP?
- 实现原理
- 配置步骤
- 第一步:准备云服务器
- 第二步:部署 FRP 服务端(云服务器)
- 第三步:部署 FRP 客户端(家用 Windows 电脑)
- 第四步:配置 FRP 客户端开机自启
- 第五步:从公司电脑远程连接
- 安全建议
- 结语
最近,我一直在寻找一种稳定、免费且合规的远程桌面方案。写这篇文章有两个原因:
- 市面上大多数第三方远程桌面软件要么收费昂贵,要么体验极差(卡顿、延迟高、强制广告,甚至存在隐私泄露风险);
- 我所在的公司对软件安装有严格限制,未经批准安装第三方远程工具属于违规操作,轻则警告,重则影响绩效。
而 Windows 自带的「远程桌面连接」(Remote Desktop Connection)虽然安全可靠,却有一个硬性前提:被控电脑必须拥有公网 IP,或者与控制端处于同一局域网内
现实情况是:
- 我家里的电脑没有公网 IP(联系运营商申请不仅麻烦,还可能额外收费);
- 公司网络和家庭网络显然不在同一个局域网。
于是,我开始探索一种既能绕过公网 IP 限制,又不依赖第三方商业软件的解决方案——最终,我选择了FRP(Fast Reverse Proxy)。
什么是 FRP?
FRP 是一个开源的高性能反向代理工具,专为内网穿透设计。它支持 TCP、UDP、HTTP、HTTPS 等多种协议,能将内网服务通过具有公网 IP 的服务器“映射”到外网,从而实现远程访问。
简单来说:
FRP 让没有公网 IP 的电脑,也能被外网访问。
实现原理
我们需要三样东西:
- 一台云服务器(如阿里云、腾讯云、华为云等),自带公网 IP;
- FRP 服务端(部署在云服务器上);
- FRP 客户端(部署在家用电脑上,即被远程控制的那台)。
工作流程如下:
[你的公司电脑] ↓ (连接云服务器的某个端口) [云服务器(公网IP)] ← FRP 服务端 ↑ (反向代理) [家用电脑(内网)] ← FRP 客户端 → 转发本地 3389(远程桌面端口)这样,你只需连接云服务器的指定端口,FRP 就会自动把流量转发到你家里的电脑,实现远程桌面控制。
配置步骤
第一步:准备云服务器
- 购买一台低配的 Linux 云服务器
- 2 核 2G 足够,月费通常不到 10 元,
- 个人推荐阿里云,相对成熟,跳转阿里云购买
- 开放两个端口(以安全组/防火墙规则形式):
7000:FRP 通信端口(可自定义);7001:用于映射远程桌面(RDP 默认端口为 3389,我们映射到公网的 7001)。
注意:Windows 远程桌面默认使用TCP 3389 端口,请确保家用电脑已启用远程桌面(设置 → 系统 → 远程桌面 → 启用)。
第二步:部署 FRP 服务端(云服务器)
下载 FRP(以 Linux AMD64 为例):
## 进入服务器该目录下cd/usr/local## 创建文件夹mkdirfrp## 进入文件夹cdfrp/## 下载frpwgethttps://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_linux_amd64.tar.gz## 解压tar-zxvf frp_0.65.0_linux_amd64.tar.gz## 进入frp文件目录cdfrp_0.65.0_linux_amd64附:FRP 项目地址:https://github.com/fatedier/frp
编辑
frps.toml:[common] bind_port = 7000 token = "your_strong_password_here" # 必须设置,用于客户端认证,密码尽量设置强密码启动服务端:
## 后台启动,默认日志输出到nohup.out下nohup./frps -c ./frps.toml&## 查看启动日志tail-200f nohup.out## 查看frp运行进程ps-ef|grepfrp
注意:可以配置 systemd 实现 frp 进程开机自启,但是我感觉没必要,因为一般云服务器不会关机!!!
第三步:部署 FRP 客户端(家用 Windows 电脑)
在 FRP GitHub Releases 下载Windows 版本(如
frp_0.65.0_windows_amd64.zip);解压后,编辑
frpc.toml:[common] server_addr = 你的云服务器IP server_port = 7000 token = "your_strong_password_here" # 必须与服务端一致 [[proxies]] name = "rdp" type = "tcp" local_ip = "127.0.0.1" local_port = 3389 # Windows 远程桌面默认端口 remote_port = 7001 # 云服务器上暴露的端口双击运行
frpc.exe(或通过命令行启动);看到
[I] [rdp] start proxy success即表示连接成功。
第四步:配置 FRP 客户端开机自启
新建
start.bat,内容如下(放到自己frpc.exe同级目录下):@echo off :home .\frpc.exe -c frpc.toml goto home打开开始菜单,输入 “任务计划程序” 将会自动搜索,接着打开它。
点击右侧的 “创建任务”,名称随意填写,安全选项选择 “不管用户是否登录都要运行”,当然你也可以选择 “只在用户登录时运行”。
选择 “不管用户是否登录都要运行” 可以让你的电脑在断电自动启动后自动运行 frp,你就可以远程桌面连接电脑了。
“使用最高权限运行” 也是可选的,根据个人需要可以选上。
最后勾选 “隐藏”,就不会在启动时弹出命令行窗口了。
接着转到 “触发器” 页,点击新建,选择 “启动时”
接着转到 “操作” 页,点击新建,选择 “启动程序”
在程序或脚本一栏选择第一步创建的
start.bat,下面的 “起始于” 填写start.bat的路径(不要包含start.bat)。例如你的
start.bat在D:\frp\start.bat,那么你只需要在 “起始于” 填写D:\frp\即可。接着返回 “常规” 页,点击确定,此时会要求输入密码,输入你的电脑密码,然后点击确定即可。
ok!以后就会开机自动启动 frp 了,并且不会弹出命令提示符窗口。
第五步:从公司电脑远程连接
被远程电脑需要打开远程桌面选项,允许被远程连接!
在公司电脑上打开「远程桌面连接」(mstsc):
- 计算机:
你的云服务器公网IP:7001 - 用户名/密码:你家用电脑的登录凭据
- 计算机:
点击连接,即可像在局域网内一样操作家里的电脑!
安全建议
- 设置强
token,防止他人滥用你的 FRP 服务; - 限制
remote_port范围(在frps.toml中添加allow_ports = 7000-7100); - 云服务器启用防火墙,仅允许可信 IP 访问 7001 端口(可选);
- 家用电脑设置强密码,并启用账户锁定策略。
结语
通过 FRP + 云服务器,我们不仅绕过了公网 IP 的限制,还规避了公司对第三方软件的管控,同时保证了连接的安全性和稳定性。整个方案成本极低(云服务器月费约 5~10 元),却能带来极大的便利。
如果你也面临类似的远程办公需求,不妨试试这个方案。掌控自己的数据,才是真正的自由。
本文所有操作均基于合法合规前提,请勿用于非法用途!!!