Windows远程桌面简易教程(附一些感悟)
写在前面
-
为什么使用Windows RD而非商业远控软件? Pros and Cons.
Pros:
- 商业远控软件以主机为单位付费,价格昂贵,免费版则有严重的限速和主机数限制,具体表现为延迟高、不稳定,还阉割了部分功能;Windows RD免费、无主机数限制,同时对网络要求不高*,阿里云学生机1核2G基本能够满足需要;
* Windows RD仅视频音频传输需占用较大带宽,基本操作主要占用被控设备CPU - Windows RD采用微软RDP协议,传输“操作”而非桌面图像信息,直接接管远程桌面,被接管设备会自动进入锁屏状态无法看到正在进行的操作,隐私性好同时显示器适配完美,商业远控软件仅可以给定大小运行,否则画面会扭曲;
- 搭配开源程序的Windows RD同样能够实现商业远控软件绝大多数核心功能如各类终端(手机、平板等)非局域网远程控制、通电自启动并进入可控制状态等。
Cons:
- 需要具有公网ip的云服务器进行端口转发;
- 设备支持不如商业远控软件全面,Linux(rdesktop)、MacOS均有相应解决方案但技术难度较大,操作不友好。
- 商业远控软件以主机为单位付费,价格昂贵,免费版则有严重的限速和主机数限制,具体表现为延迟高、不稳定,还阉割了部分功能;Windows RD免费、无主机数限制,同时对网络要求不高*,阿里云学生机1核2G基本能够满足需要;
-
为什么在校园网内也需要具有公网ip的云服务器?
A:一般情况下校园网都具有多个子网,即不同设备连接同一WiFi(就算是同一地点先后连接)所对应公网ip依然不同,意味着即使设备均在校园内也不能视为局域网直接使用远程桌面,还是需要云服务器进行端口转发。
操作部分
Step1:准备实现远程桌面所需要的软硬件
- 将所有Windows设备升级为带远程桌面功能的Windows版本(推荐专业版):未安装操作系统设备可直装win10专业版并用在线激活工具或激活码来激活;若已安装家庭中文版等其他版本可直接升级,无需重装。下面以win10家庭中文版为例解释详细操作步骤,企业版等其他版本也类似:
-
去网上找或淘宝15块左右购买一组升级秘钥和激活秘钥(一般情况下每组秘钥可同时升级多台设备),依次打开[windows设置→系统→关于→更改产品秘钥或升级Windows],点击“更改产品秘钥”,输入升级秘钥,点击确定即可升级。
如果升级秘钥有效但无法升级,可先在[关于→windows更新]中将windows更新到最新版本
升级过程可能突然中断报错,此时可尝试直接重启设备,如果出现“正在配置更新”和“正在添加功能”说明升级实际已经成功了,没成功请重试或咨询卖家 -
升级完成重启后,前述界面应显示版本为Windows10专业版但未激活。此时再次点击更改产品秘钥,输入激活秘钥即可完成激活。完成激活后推荐将windows更新到最新版本。
-
- 下载用于端口转发的frp:在GitHub链接下载最新版本的frp,64位windows系统应下载后缀为
_windows_amd64
的zip文件,并解压。
*如果github下载速度太慢,可以自己想办法或找github代下载网站(如http://gitd.cc/),复制下载链接来代下。 - 下载其他类型终端(如Android)的Windows RD
Step2:配置Frp
-
服务器端配置Frps(CentOS7)
- 下载Step1中GitHub链接中后缀为
_linux_amd64
的文件,若下载zip
文件可提前windows环境中解压,下载tar.gz
文件在linux系统中使用命令解压。//解压ZIP unzip 目录文件名.zip //解压tar.gz tar -zxvf 目录文件名.tar.gz
- 将
frps、frps_full.ini、frps.ini、LICENSE、systemd
文件保留在服务器上自己新建的文件夹中(或将这些文件从Windows系统传到远程服务器上) - 使用
vim
指令修改frps.ini文件内容如下图
其中,user和pwd为登录管理页面的用户名以及密码,port为管理界面的端口号 - 使用命令
nohup ./frps -c frps.ini >/dev/null 2>&1 &
启动,>/dev/null 2>&1 &
会将输出丢弃。如出现报错-bash, permission denied
则修改该文件权限为700chmod frps 700
若要停止该服务则使用ps -aux|grep frp| grep -v grep
查询pid之后使用kill -9 进程号
杀死进程 - 若采用配置了安全策略的云服务器(如阿里云ECS),则需要在控制台添加规则以开放
7000
(frp通信端口,可修改)、dashboard_port
(上图frp控制台端口,可修改),及所有被控设备的remote_port
的TCP权限。
- 下载Step1中GitHub链接中后缀为
-
客户端配置frp[所有需被控制的设备都需要完成以下步骤]
- 双击编辑
frpc.ini
配置文件,根据需要完成以下参数的设置
2 .被控设备联网状态下,win+R输入cmd打开命令行窗口,导向至frpc.exe所在文件夹(如存储在D:\frp目录下则先输入[common] server_addr = 服务器公网ip地址 server_port = 7000 [连接名称] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 任意选择一个未被占用的端口,每台设备连接名称和端口均不能重复
D:
切换至D:再输入cd frp
),运行frpc.exe -c frpc.ini
,如果提示中有“success”则该设备的远程桌面端口(默认3389)已转发至服务器的remote_port端口。
*注意要实现端口转发被控设备的frpc需始终保持运行状态,同时打开远程桌面。测试环境下默认设置即可实现访问,若出现问题请自行咨询或上网搜索答案。
*为使设备始终保持可访问状态,建议插上电源并设置“在接通电源时,使我的电脑保持唤醒状态”即将[电源与睡眠]设置为“从不”。
- 双击编辑
Step3:连接远程桌面
完成上述设置后即可从各终端设备通过远程桌面连接程序访问远程桌面了。
-
以windows为例,搜索“远程桌面连接”,“计算机”栏输入“服务器公网ip:要远程主机的
remote_port
,用户名是需要远程主机的账户名(管理员账户已经默认添加,其他账户可在[远程桌面→选择可访问这台电脑的用户]里添加),点击连接,如果账户有密码输入账户密码(不是远程主机的解锁密码!),显示警告直接忽略即可进入连接。连接上方工具栏监测了连接地址和质量。 -
Android等其他设备APP的连接方式类似。
Step4:设置通电自动开机和服务启动
截止目前我们已经完成了基本设置,在保持被控主机唤醒状态下可以反复执行远程桌面连接。接下来的步骤不是必要的,但在某些情况下会很有帮助。
-
设置通电自动开机
在BIOS中(不是所有主板都支持)将 [Power→Restore on AC Power Loss] 选项设置为 Power On,则即使意外断电当电流恢复时电脑会自动重新启动。
*这里不需要被控主机解锁密码,只需要进入锁屏状态即可 -
设置开机后自动运行frpc
这里需要用到winsw,它将帮助我们以服务形式设置frpc开机自运行。点击下载winsw,下载exe版本即可。
参考:https://blog.csdn.net/atmosphere_/article/details/104018900<service> <!-- 该服务的唯一标识 --> <id>frp</id> <!-- 该服务的名称 --> <name>frp0.27.1-windows-amd64</name> <!-- 该服务的描述 --> <description>frpc客户端 这个服务用 frpc 实现内网穿透</description> <!-- 要运行的程序路径 --> <executable>D:\Software\frp\frp_0.27.1_windows_amd64\frpc.exe</executable> <!-- 携带的参数 --> <arguments>-c frpc.ini</arguments> <onfailure action="restart" delay="10 sec"/> <onfailure action="restart" delay="20 sec"/> <<onfailure action="reboot"/> <!-- 日志模式 --> <logmode>append</logmode> <!-- 指定日志文件目录(相对于executable配置的路径) --> <logpath>logs</logpath> </service>
注意:用EditPlus等编辑器来创建这个文件,不要直接windows新建
方法二: NSSM//注册服务 winsw.exe install //卸载服务 winsw.exe uninstall //启动服务 winsw.exe start //停止服务 winsw.exe stop //重启服务 winsw.exe restart //查看状态 winsw.exe status
如果winsw因各种原因一直无法成功,则可使用NSSM来打包服务。首先下载NSSM,解压后将x64中的NSSM.exe复制到frpc路径下;在该文件夹内启动命令行执行nssm install
出现交互界面,模仿下图设置即可。