利用frp和RDClient实现远程控制电脑


前言

想要在外面可以控制家里的电脑,家里的宽带不是公网ip(查看光猫网关信息的广域网地址,再在百度搜ip关键字,出现的ip地址如果和光猫里的广域网地址不一样,那就不是公网ip),之前也用过例如teamviewer、向日葵这类软件,都有个人免费版,不过都有一定的限制,升级的话还挺贵的,所以就用frp和RDClient来实现外网远程控制家里内网的电脑(当然也不是完全免费的)。

以下统一名称(我使用的设备):
访问用户:控制端(华为手机鸿蒙系统,iPad)
公网服务器:服务器端(腾讯轻量应用服务器)
内网电脑:客户端(windows 11 电脑)

一、frp和RDClient

1.frp

frp 是一个专注于内网穿透的高性能的反向代理应用,可以让内网的设备暴露在互联网中,使得外网的设备可以访问。原理是通过拥有公网ip的服务器作为中继,外网访问用户可以通过这个服务器来访问内网的设备(例如pc、nas等)
简单的frp内网穿透原理

2.RDClient

RDClient其实是windows自带的远程桌面连接软件,这样就不需要下载其他软件,可以访问远程电脑上的资源。而且在局域网内连接很方便,只需要输入客户端的ip地址、用户名和密码,就能轻松连接,并且延迟很低。
官网地址:RDClient

二、购买服务器

因为需要公网服务器作为中继,所以需要买一个公网服务器。这里我买了腾讯的轻量应用服务器,首先是轻量应用服务器的带宽高,远程控制时候不会太卡,300G流量也够用,相比云服务器虽然不限流量,可是带宽低,提高带宽价格又挺高的。其次是腾讯在做秒杀活动,只需要40块一年,果断买了。我的服务器装的是Centos 7.9,宝塔Linux面板,就是腾讯默认首选的,用Xshell来和服务器连接,用Xftp上传文件到服务器。

二、下载安装frp

1.服务器端

  • 上传frp文件并解压缩,编辑配置文件

首先下载对应版本的frp,因为我的服务器是Linux,所以我下载的frp_0.40.0_linux_amd64.tar.gz
frp下载:frp release各版本下载地址
下载完后把压缩包上传到服务器
xftp上传文件
把压缩包解压,解压后的文件夹改名为frp,并移动到/usr/local目录下,因为习惯放在这里,也是可以改的

tar -zxvf frp_0.40.0_linux_amd64.tar.gz
mv frp_0.40.0_linux_amd64.tar.gz frp
mv frp /usr/local

这里我们只需要服务端的配置,所以把客户端的配置都删除

rm frpc
rm frpc.ini

接下来,编辑服务端的配置文件,转到frp目录下并用vim打开frps.ini文件

cd /usr/local/frp
vim frps.ini

编辑frps.ini里的内容:

[common]
#设置监听端口
bind_port = 7000
#设置连接服务器的授权码,客户端需要用
token = 12345

#设置frp服务器的控制页面端口
dashboard_port = 7500
#frp服务器控制页面的用户名和密码,这个是可选的
#dashboard_user = abc
#dashboard_pws = 1234567
  • 在防火墙打开需要的端口

要将frps.ini文件里的端口打开,先是在系统防火墙里打开

firewall-cmd --zone=public --list-ports    查看已经打开的端口
firewall-cmd --zone=public --query-port=7000/tcp  查看7000端口是否打开
firewall-cmd --zone=public --add-port=7000/tcp --permanent  打开7000端口
firewall-cmd --zone=public --add-port=7500/tcp --permanent  打开7500端口
firewall-cmd reload
firewall-cmd --zone=public --list-ports   再次查看已经打开的端口,确认是否已开启

在系统防火墙开启了需要端口后,打开腾讯轻量应用服务器的控制台,在面板的防火墙选项卡里添加两条规则,开启7000和7500端口
控制台防火墙添加规则
然后开启frps

./frps -c frps.ini

如果出现下面的提示,说明启动成功
启动frps

  • frp后台运行并自启动

为了可以让frp在服务器后台自动启动运行,先Ctrl+C停止运行当前的frps,后进入system文件夹里,创建一个frp.service文件

cd /etc/systemd/system
vim frp.service

frp.service文件内容,其中ExecStart里的路径是上面加压缩后frp文件夹的路径

[Unit]
Description=frp service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart=on-failure # or always, on-abort, etc

[Install]
WantedBy=multi-user.target

保存退出后,输入以下命令

systemctl daemon-reload
systemctl enable frp     下次开机后,自动启动frp
systemctl start frp      开启运行frp
systemctl status frp     查看frp状态

systemctl restart frp    如果修改了frp配置后,使用此命令重启frp

frp运行状态

  • 打开frp控制面板测试
    在浏览器输入“公网ip:7500”(绑定了域名的就输入域名),如果在之前的frps.ini文件里设置了控制面板的用户名和密码,就会弹出登录框,登录后显示frp控制面板就说明frp运行正常
    frp登录框
    frp控制面板

2.客户端

  • 下载frp文件并解压缩,编辑配置文件
    同样下载frp文件并解压缩,放在自己习惯的位置并把文件夹改名为frp
    frp文件
    这里是在客户端,同样的也可以把frps和frps.ini文件删除,编辑frpc.ini
[common]
server_addr = 175.178.178.23
server_port = 7000
token = 12345   #服务器端frps.ini里的token,要一致

#[]随意取名,3389是windows远程控制的端口
[rdclient]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

#以下是根据需要可选的
#配置网络文件共享系统
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002

#通过ssh远程连接
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
  • 测试是否配置成功
    在frp文件夹里打开windows terminal(powershell),运行frpc.exe
    在这里插入图片描述
    打开后输入运行命令,如果出现下图的运行结果,说明frp运行成功
.\frpc.exe -c frpc.ini

运行frp

  • frp设置后台运行,并开机自启动
    上面的运行方法,命令行对话框关闭后frp程序也会关闭,而且不能开机自启动。为了让frp程序可以在后台运行,并且可以开机自启动,这里用winsw程序把frp变成系统服务。【winsw下载地址
    下载完成后,把exe文件放在frp文件夹目录下面,创建一个winsw.xml文件并编辑
<service>
    <id>frp</id>
    <name>frp</name>
    <description>用frp内网穿透</description>
    <executable>frpc</executable>
    <arguments>-c frpc.ini</arguments>
    <logmode>reset</logmode>
</service>

同样在此目录下打开windows terminal(powershell),输入以下命令

winsw install

接着win+R打开运行对话框,输入service.msc命令打开本地服务管理,找到frp服务并打开属性,左以下选择后并启动服务
frp服务属性设置
frp服务属性设置并启动
成功启动后,在服务器端查看frp状态,看到下面的记录,就说明客户端frp和服务器端的frp连接成功
连接成功


三、控制端设置并测试连接

访问用户可以使用多种设备访问,这里用windows电脑、iPad和安卓手机来测试。

  • windows电脑
    在开始菜单搜索远程控制,出现如下对话框,输入服务器端的公网ip,输入用户账户就可以直接连接
    在这里插入图片描述

  • ipad
    在Appstore下载安装Microsoft远程桌面app,添加电脑,输入用户账户就可以连接
    在这里插入图片描述
    在这里插入图片描述

  • 安卓手机
    在应用市场或Google play下载“Microsoft Remote Desktop”app,同样的在添加连接那里输入公网ip和用户账号就可以连接,
    这里提供app的下载资源:
    https://pan.baidu.com/s/1RDsMRkKQYTK5l_YlVdmuXA?pwd=mcky
    提取码:mcky
    上传到CSDN的资源
    在这里插入图片描述
    在这里插入图片描述


四、总结

这里有几点要注意的:

  • 服务器端的frp文件除了利用上传这个方法,还可以用wget命令,直接在服务器端下载

  • windows系统客户端还需要打开允许远程协助和远程桌面
    打开控制面板,选择系统和安全,点击允许远程访问,在打开的对话框里把远程协助选上,下面的远程桌面选择允许远程连接此计算机,并勾上仅允许运行使用网络级别身份验证
    在这里插入图片描述
    在这里插入图片描述
    然后点击选择用户,这里显示的账号,就是控制端需要输入的账号,密码是此账号建立时设置的密码,非PIN码
    在这里插入图片描述
    在这里插入图片描述

  • 目前github因为一些原因访问和下载的速度都很慢,这里推荐一个下载的网站,只需要把下载链接放进去,这个网站会下载保存,然后再从这个网站上下载下来会快挺多的。[下载网站]
    在这里插入图片描述

最后,在同一局域网内远程控制电脑,只需要知道客户端在局域网的ip地址,就可以直接连接,可以在路由器里静态绑定客户端的ip,这样避免了因为客户端自动获取ip而造成ip地址更改。而如果需要在外网远程控制电脑,除非有公网ip,否则就需要公网服务器作为桥梁,利用frp的内网穿透技术,把内网客户端映射到服务器端,从而暴露在公网上使控制端连接控制。

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小唐笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值