RD Client远程控制PC

文章目录

  • 1.RD Client
  • 2.内网穿透
  • 3.配置frp服务器
  • 4.客户端设置
  • 5.Windows远程桌面设置
  • 6.在iPad上连接PC

1.RD Client

RD Client强的地方就在于:

1)微软有自己的远程桌面协议,兼容性方面更好,可以在保证清晰度的同时还能不占用很大的带宽。
2)如果使用RD Client,用平板连上之后,平板就变成了一个Windows触屏版,就像一个surface一样。屏幕转动后自适应分辨率之类的功能是team viewer之类的无法提供的。

2.内网穿透

RD Client这么好用,但是配置起来比较麻烦。因为它默认状态下只支持局域网,当然如果你用的校园网,所有设备都在同一个局域网下,自然可以无视这个限制了。但是很多情况下,我们并不能满足访问设备和被访问设备在同一个局域网下,这时怎么办呢?内网穿透可以解决这个问题。
注:如果你的访问设备和被访问设备可以保证在同一局域网下,可以直接跳到第五节

内网穿透,也叫NAT穿透。因为IPv4的原因,公网ip有限,所以大部分设备都是没有公网ip,只有内网ip,处于局域网中,通过NAT设备跟拥有公网ip设备进行一对多的ip映射,从而达到在Internet内通信。NAT是Network Address Transform的意思,网络地址转换。我们家中的windows主机和ipad pro都没有公网ip,属于百度百科中的两个设备都在NAT设备之后的情况,那这时候就需要一个拥有公网ip的设备来帮助我们搭建通信链路了。云服务器就可以闪亮登场了。

那我们怎么做到上述说的NAT穿透呢?这就涉及到另外一个关键词了,frp。它其实是一个反向代理应用。类似的应用还有很多,例如ngork,大家自己挑。那什么是反向代理?

反向代理是指客户端向代理服务器发送请求,代理服务器转发给内网中的真实处理服务器,获取到内容后返回给客户端,代理服务器对客户端隐藏了真实处理服务器,客户端不需要知道真实处理服务器的信息。代理服务器代理的是服务器,与之相对还有正向代理。在我们现在的情形中,windows主机和ipad pro即作为client,又做server,通过云服务器的frq服务,建立起通信链路。他们只要各自与云服务器建立连接就可以,windows主机做client时,发送请求给云服务器,服务器转发给被代理的server ipadpro,而ipadpro当client时,发送请求后服务器转发给被代理的windows主机。这样双向通信就建立起来了,而且双方不需要获取对方的ip。当然,他们与云服务器的通信通过了NAT设备。

具体原理可以用下面这个图来展示
RD Client远程控制PC_第1张图片
当你使用iPad远程控制PC时,作为frp客户端的PC将数据包通过互联网发送到frp服务器,再由服务器转发给iPad。

3.配置frp服务器

我们需要搭建一个frp服务器来进行内网穿透

我在前些日子是购买过一台阿里云服务器,正好拿来做frp服务器。frp内网渗透要配置两个端,一个是服务器端,另一个是客户端。

frp已经在github开源,我们在下面这个网站下载frp的linux服务端压缩包和Windows客户端压缩包。

或者直接使用wget命令远程下载

wget https://github.com/fatedier/frp/releases/download/v0.41.0/frp_0.41.0_linux_amd64.tar.gz

然后解压

tar -zxvf frp_0.41.0_linux_amd64.tar.gz

可以看到文件夹里有这些文件
在这里插入图片描述
frpc frpc.ini 这两个文件没有用,是可以删去的。
我们来配置frps.ini文件。
在linux命令行输入vi frps.ini,添加如下内容。(如果不懂linux和vim编辑器的操作,建议自行百度去熟悉一下)

[common] bind_port = 7000 //客户端和服务端连接的端口
dashboard_port = 7500 //服务端仪表板的端口
token = 1234567890 //客户端和服务端连接的口令,可自行修改
dashboard_user = username //仪表板页面登录的用户名,可自行修改
dashboard_pwd = 0987654321 //仪表板页面登录的密码,可自行修改
vhost_http_port = 10080 //用不到这个功能,可写可不写,直接删去也可以
vhost_https_port = 10443 //同上

然后:wq退出保存即可,之后./frps -c frps.ini就可以运行frps服务端了。

此时访问x.x.x.x(你的ip地址或域名):7500输入之前设置的dashboard_user和dashboard_pwd即可访问仪表盘界面。

Ctrl+C停止frps运行,因为我们需要使用 nohup命令将其运行在后台。

输入如下命令

nohup ./frps -c frps.ini &

输出nohup: ignoring input and appending output to 'nohup.out'代表运行正常。

现在我们Ctrl+C,frps依然会在后台运行。

4.客户端设置

与服务器端类似,从github上下载windows相应版本的frp程序,解压在本地,同样可以删除frps和frps.ini文件。
编辑frpc.ini文件,与服务器端类似

[common]
server_addr = x.x.x.x //服务器ip地址或域名
server_port = 7000 //填入服务器上填写的bind_port
token = 1234567890 //更改与服务器端填写的一致
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389 //配置远程桌面的接口,Windows的RD Client一般为3389接口

保存后在此路径下cmd运行下.\frpc.exe -c frpc.ini,输出如下信息即成功

2022/04/01 13:03:37 [I] [service.go:326] [13672e6cbf701b85] login to server success, get run id [13672e6cbf701b85], server udp port [0]
2022/04/01 13:03:37 [I] [proxy_manager.go:144] [13672e6cbf701b85] proxy added: [ssh rdp smb]
2022/04/01 13:03:37 [I] [control.go:181] [13672e6cbf701b85] [ssh] start proxy success
2022/04/01 13:03:37 [I] [control.go:181] [13672e6cbf701b85] [rdp] start proxy success
2022/04/01 13:03:37 [I] [control.go:181] [13672e6cbf701b85] [smb] start proxy success

此时访问x.x.x.x(你的ip地址或域名):7500可以看到如下界面:
RD Client远程控制PC_第2张图片
可以看到客户数量为1。Perfect!

但是此时如果关闭电脑上的cmd窗口就会关掉这个进程,导致连接中断。可以写一个bat让他运行在后台并新建一个定时任务让他开机自启动(或者直接把它放在Windows开机自启动文件夹C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)。

关于.bat的编写,我找到了其他人写的脚本

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd D:\romoteDesk\frp_0.41.0_windows_amd64
frpc -c frpc.ini
exit

但奇怪的是,这个脚本运行起来会提示错误。
我将倒数第二行改为了.\frpc.exe -c frpc.ini,然后运行bat脚本,不报错了,但是依然没有成功连上服务器。找了半天,各种方法都试了,我选择。。。放弃(最近太忙了,等闲了再来搞这个问题)。此时一直将cmd窗口挂在前台就可以一直保持连接,千万不要远程访问时手残,把cmd关了,那就真的芭比Q了。

5.Windows远程桌面设置

windows默认是没有开启远程桌面的,我们在Windows搜索“系统”。
RD Client远程控制PC_第3张图片
不支持啊,这可怎么办呢?

别着急,如果你的操作系统是Windows10专业版,这个界面是直接有一个按钮可以开启远程桌面的,但如果你是家庭版,就需要一些额外操作了。

使用RDP Wrapper让家庭版获得远程桌面功能。在这个链接下载RDP Wrap压缩包。

解压后打开文件夹,以管理员身份运行install.bat文件。

接着打开RDPConf.exe,如果是下图状态,即配置成功。
RD Client远程控制PC_第4张图片
如果出现not listening not supported,90%的可能是rdpwrap.ini有问题。在issue页找对应版本的rdpwrap.ini。
注意:一定要找对应版本的.ini文件,比如上图中我的RDP Wrapper是10.0.19041.1503,如果使用了其它版本的rdpwrap.ini,结果肯定还是not listening not supported(我一开始没有在意版本对应问题,在网上被很多人坑了,浪费了很多时间)

下载好rdpwrap.ini后,
1)以管理员身份运行cmd,输入命令net stop termservice, 回车,终止运行Remote Desktop Service。
2)用下载得到的对应版本的的rdpwrap.ini去替换C:\Program Files\RDP Wrapper 目录里面旧的 rdpwrap.ini
3)在cmd命令行输入命令net start termservice, 回车,恢复运行Remote Desktop;
4)点击“RDPConf.exe”,全绿。

此时可以用RDPCheck检测一下,有下图所示登录回显即表示成功。
RD Client远程控制PC_第5张图片

6.在iPad上连接PC

在App Store上下载RD Client,添加电脑,电脑名称即为服务器ip地址加上在windows上frpc.ini中填写的remote_port端口号,然后在用户账户上添加你的windows域\账户或账户@域,再输入密码即可远程控制你的windows桌面了。注意该密码是你第一次登录你的电脑时设置的密码,如果你忘记了,可以百度。
如果不知道自己电脑的域\账户,可以在cmd命令行键入whoami查看。

你可能感兴趣的:(远程桌面,经验分享)