使用RD Client来远程桌面

可能你会觉得奇怪,team viewer和向日葵之类的难道不香吗?看起来他们两个都是实现了远程桌面的功能,好像没必要特地用Windows自带的RD Client进行内网穿透之后远程桌面。

实际上team viewer之类的在我的使用范围内不是特别好用,先列举出几条我觉得不好的地方:

  1. 速度慢,画面卡,经常会卡顿。这里是免费版的体验,付费的没试过毕竟还是有点贵
  2. 远程桌面的原理是通过大量截图再发送到服务器再传到远程端,带宽占用极大
  3. 如果使用安卓平板或者iPad进行远程连接,那蓝牙键盘的很多按键都没法正常使用,也就说如果使用iPad或者安卓之类的远程桌面就要忍受几乎不能使用常用快捷键

这是我使用的范围内team viewer之类不好用的地方。RD Client强的地方就在于:

  1. 微软有自己的远程桌面协议,可以在保证清晰度的同时还能不占用很大的带宽。我的frp服务器才5M的带宽,看视屏都不会很卡。并且支持局域网,在局域网内可以直接连接,速度比过frp更快了。
  2. 如果使用RD Client,用平板连上之后,板子就变成了一个Windows触屏版!!就像一个surface一样!屏幕转动后自适应分辨率之类的功能是team viewer之类的无法提供的!
  3. 对键盘的适配,除了win键,几乎所有的按键都能直接在平板上使用!

当然,RD Client并不能直接对标team viewer之类的产品,因为定位是不一样的啊。我只能从个人用户的角度去描述一些缺点,毕竟team viewer提供的是企业级的远程控制服务,能做的事和RD Client不能重叠起来比较的。

所以结论是:

  1. 如果你希望只带一个iPad或者安卓平板或者是一个手机就想远程到自己的电脑进行高强度办公,RD Client是比team viewer更好用的方案
  2. 如果你追求不卡的画面和更高的分辨率,RD Client是一个更好的选择。
  3. 如果你的电脑希望不止提供给一个人使用,而是希望能让多用户同时使用你的电脑,RD Client是个更适合你的方案。
  4. 个人认为如果有性能较好的个人台式机,使用这种方式能最大化自己的远程体验,用Windows笔记本远程到自己台式机简直美滋滋,原汁原味的操作,没有像team viewer之类的繁杂的弹窗,大赞。

1. 配置前的一些准备

接下来我只会讲frp内网穿透来实现远程桌面,如果你有自己的公网IP,那恭喜你不需要搞内网穿透,可以很方便的连接上,Google就知道怎么连了。留下了没有公网IP的泪水

frp需要一个有公网IP的云服务器,也就是需要购置一个VPS。本人是用阿里云的学生机实现的,10块钱一个月5M带宽很划算。aliyun云翼计划传送门。带宽越大越好,所以选轻量服务器,1M的带宽是测过,只能打打字那样子,一到画面多变的时候就会很卡哦~所以不选ESC学生机。

aliyun学生身份认证很简单,24岁以下就算学生了。或者找学生朋友帮忙开一个,或者用ESC买按量付费的服务

域名就看着办吧,有的话最好,没有也没差。

2. 配置frp服务器

frp内网渗透分两个端,一个是服务器端,一个是客户端。也就是说,如果想要完成渗透,需要在服务器配置好后,在自己需要远程控制的电脑配置好frp的服务器,才能正常的完成整个流程。

frp的GitHub入口

2.1 服务器端frp的配置

首先,vps的环境默认为Ubuntu18。其他的发行版命令大同小异,就各自转化一下。

cd /usr/local    # 进入个人的默认的程序安装路径,如果你不喜欢可以自己更换一下
wget clone https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_arm64.tar.gz # 下载frp文件
tar -zxvf frp_0.33.0_linux_arm64.tar.gz # 解压文件
mv frp_0.33.0_linux_arm64 frp # 对文件夹更名
rm frp_0.33.0_linux_arm64.tar.gz # 删除安装包
cd frp # 进入文件夹
# 完成后会进入frp文件夹中

如果GitHub下载得太慢,那就尽量使用使用代理加速。

其中VPS是服务器端,可以只保留有关的服务器的文件

rm frpc    # 删除客户端
rm frpc.ini # 删除客户端配置文件

然后我们去配置一下frps.ini:

vim frps.ini

不懂vim的同学去Google一下:vim 输入 保存

[common]
bind_port = 7000
dashboard_port = 7500
token = 1234567890
dashboard_user = username
dashboard_pwd = 0987654321
vhost_http_port = 10080
vhost_https_port = 10443

讲解一下:

[common]
bind_port = 这里设置你监听的端口
dashboard_port = 这里是设置frp服务器的控制页面
token = 这里设置的是连接服务器的密码之类的,一会要用
dashboard_user = 你的用户名,请自定义
dashboard_pwd = 你的密码,请自定义
vhost_http_port = 可以写可以不写
vhost_https_port = 和上面一样属于可选项

这里注意一下啊,如果你使用的是阿里云的VPS,记得在防火墙或者安全组开放端口,不然的话是连接不上的。开放的端口是上面设置过的端口号哦~

像上面那样配置后之后,我们就去测试一下:

./frps -c frps.ini

看到如下信息:

就是安装成功了~

可以再试试访问你的IP或者你的域名:7500,输入上述你设置的用户名和密码之后,应该是可以访问成功的,页面如下:

这里会有一些小问题,如果后期你还想在这个服务器安装宝塔,会出现问题。服务器会无法正常的连接上。

首先装好宝塔之后,先运行下面的指令:

sudo /etc/init.d/ufw stop

然后记得在宝塔页面也要放行端口。宝塔也把端口锁了,所以你要关两次。

接着为了方便,我们做点小设置。先在ssh终端Ctrl + C中断程序先。然后我们配置一下服务文件。

cd /etc/systemd/system
vim frp.service

在文件中输入如下内容:

[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

其中,ExecStart那里的路径记得改成自己自定义的路径哈。

然后将frp激活为开机启动:

systemctl daemon-reload
systemctl enable frp

这样就完成了frp服务器端配置。我们可以通过systemctl status frp systemctl restart frp systemctl stop frp 之类的命令来查看frp的状态或者是开启关闭frp了。

如果想要查看frp运行时的logsystemctl status frp就可以看到具体的日志了。

2.2 Windows端的frp客户端配置

点击这里下载frp的Windows端

首先就是要把客户端下载好。自己选择想放的位置,随意,不过记得路径不要一会忘掉了。

不出意外解压之后能看到这样的界面。

我们是Windows客户端,配置一下frpc.ini。右键该文件,编辑

[common]
server_addr = xxx.xxx.xxx.xxxx
server_port = 7000
token = 1234567890 [rdp]
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]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

大概讲解一下

[common]
server_addr = 你的服务器IP地址,如果有域名,填写域名即可
server_port = 你在服务器端设置的监听接口,我给的范例是监听7000接口
token = 刚刚在服务器端设置的token,类似于密码之类的东西,如果密码不对是没法连上服务器的 [rdp]# 这里就是个名字,可以自己随便取
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389
# 这一段是在配置远程桌面的接口,Windows的RD Client一般为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
# 上面所有的remote port都可以自己定,定完之后一定要记得在服务器的安全组或者是防火墙打开对应的端口,安装了宝塔的还要再关一次。

测试一下是否配置成功。按住shift,右击自己的frp文件夹,点击在此打开power shell窗口。

输入代码运行frpc.exe

.\frpc.exe -c frpc.ini

看到下面这个图的信息说明已经成功连上了。

这样的话一不小心就会关掉这个窗口,关掉窗口就会关掉这个连接进程。我们希望他不要被关闭,所以写一个bat文件来解决这个问题。新建一个txt文件,编写下面这些代码。

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

文件随便建在哪都可以,写好之后重命名为frp.bat。只要双击这个bat文件就能成功开启frp

然后ssh到你的vps,输入指令systemctl status frp,查看日志。出现如下信息说明连接成功。

如果你想开机自启动这个bat文件,就把文件丢到这个路径:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

如果你想关闭进程,那就Ctrl + shift + esc打开资源管理器关闭一个叫frpc的进程。

3. Windows的远程桌面设置

忘了说了,Windows环境默认为Windows10。

Windows默认是没有开启远程桌面的,要我们手动设置一下。如果以后不想远程桌面了就按这个地方反过来做即可。

win + e打开资源管理器。点击属性。

点击远程桌面,点击启用远程桌面,并点击第二个显示设置。

点击启用网络发现,保存更改后退出。

点击高级设置,开启网络验证。

大概就这样设置好了。

4. 从其他设备连接这台电脑

现在我们可以尝试从别的设备连接电脑了,这个就比较简单了啦。RD Client支持全平台,WindowsAndroidiOSmacos都是可以的。我就只讲WindowsAndroid怎么连,其他基本是同理的,要么就Google一下就能搞定啦~

1. Windows

最简单的,点击左下角的搜索按键,搜索yuan就能找到Windows的连接选项

然后你只需要输入你的IP或者域名,点击连接即可。

途中会要你的用户名,如果你不记得你的用户名,回到你设置远程桌面那里,点击可以远程的用户。

一切顺利的话,应该就能成功连上。其他高级设置各位就自己点点看看吧。

2. Android

Google play搜索RD Client,酷安搜索,或者点击这里下载,我这里分享的是OneDrive网盘,如果很慢就尝试一下代理。

推荐一个tzcylink 次元链接 教程很全,可以尝试一下。这是我的邀请注册链接。

点一下右上角的加号,点击DESKTOP,进入设置

输入你的服务器的域名或者IP地址,点击SAVE

点击刚刚建好的:

会让你输入user和密码,如果你不记得你的用户名,回到你设置远程桌面那里,点击可以远程的用户。密码就是你平时登录的密码(不是PIN)

不出意外就连上了。

3. iOS,MacOS

同理,我没有这些设备,不过知道了frp怎么设置以后剩下的Google应该也搞的定吧!

5. 小结

非常好用哈~,又多了一个奇怪的技能呢~

使用RD Client来远程桌面的更多相关文章

  1. Guacamole 远程桌面

    本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/  该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看. ...

  2. 利用activeX控件在网页里自动登录WIN2003远程桌面并实时控制

    首先要自己配置并打开受控端的WEB远程桌面服务,这个在“添加/删除windows组件”里有,我只在windows 2003 server里试过,没试过XP.下面我们在客户端安装微软提供的远程桌面客户端 ...

  3. windows下远程桌面连接centos

    最近,由于项目需要,必须要在centos下进行操作.习惯了图形界面的我,通过黑框框来远程操作服务器,着实让人难受.但是,windows自带的远程桌面工具貌似不能直接连centos.所以,只能借助其他工 ...

  4. windows 远程桌面研究

    最近因为一个监控相关的项目,深入研究了一下 windows 的 远程桌面的相关知识. 1. 如何让关闭了远程桌面连接的用户,对应的 session 立即退出 windows server. 大家使用 ...

  5. 系统配置 之:远程桌面连接(win7系统)

    本文包括两部分: 1.配置远程桌面连接 2.解决[远程桌面连接不上] 一.远程桌面连接设置 [远程桌面连接配置] Win7系统下的远程桌面连接设置,如果是其他系统或 Win8 及其以上系统,也可作为参 ...

  6. 远程桌面Default.rdp 中各个参数的含义

    存储在 Default.rdp 文件中的设置 默认情况下,将在“我的文档”文件夹中创建 Default.rdp 文件.以下 RDP 设置存储在 Desktop.rdp 文件中: desktopwidt ...

  7. 远程桌面Default.rdp 中各个参数的含义(转)

    存储在 Default.rdp 文件中的设置 默认情况下,将在“我的文档”文件夹中创建 Default.rdp 文件.以下 RDP 设置存储在 Desktop.rdp 文件中: desktopwidt ...

  8. Mac上远程桌面连接Windows Server 2012 R2

    在将一台服务器的操作系统由Windows Server 2012升级为Windows Server 2012 R2之后,在Mac电脑上用微软的远程桌面软件怎么也连不上服务器,错误信息如下: Remot ...

  9. Windows远程桌面连接Ubuntu 14.04

    由于xrdp.gnome和unity之间的兼容性问题,在Ubuntu 14.04版本中仍然无法使用xrdp登陆gnome或unity的远程桌面,现象是登录后只有黑白点为背景,无图标也无法操作.与13. ...

随机推荐

  1. Jmeter接口测试--上传附件

    jmeter接口测试上传附件指引 1.添加HTTP请求取样器--在取样器中的HTTP请求项中对"使用KeepAlive"."对POST使用multipart/form-d ...

  2. 【原创】Linux虚拟化KVM-Qemu分析(四)之CPU虚拟化(2)

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9 ...

  3. RHSA-2018:0007-重要: 内核 安全更新(需要重启、存在EXP)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  4. XML流操作

    /// <summary>         /// 保存XML为指定格式         /// </summary>         /// <param name=& ...

  5. rs232转网络

    rs232转网络 rs232转网络ZLAN5103可以实现RS232/485/422和TCP/IP之间进行透明数据转发.方便地使得串口设备连接到以太网和Internet,实现串口设备的网络化升级.支持 ...

  6. MySQL数据库规范 (设计规范+设计规范+操作规范)

    I 文档定义 1.1 编写目的 为了在软件生命周期内规范数据库相关的需求分析.设计.开发.测试.运维工作,便于不同团队之间的沟通协调,以及在相关规范上达成共识,提升相关环节的工作效率和系统的可维护性. ...

  7. vue-awesome-swiper ---移动端h5 swiper 和 tab 栏选项联动效果实现

    很久之前做小程序时有个类似每日优鲜里储值卡充值界面里的 卡轮播和价格tab栏联动效果,当时觉得新鲜做出来之后也没当回事.直到今天又遇到了一个类似的功能,所以想着总结经验. 实现效果如下图: 图解:点击 ...

  8. C# 创建text文本并写入数据

    /// <summary> /// 创建TXT文本并往里面写入数据 /// </summary> /// <param name="FileName" ...

  9. git 团队协作的一些命令

    1.开分支 git branch 新分支名 例如,在master分支下,新开一个开发分支: git branch dev 2.切换到新分支 git checkout 分支名 例如,在master分支下 ...

  10. 通过代码实现 `OutOfMemory

    通过代码实现 OutOfMemory Intro 来尝试写一个发生 OutOfMemoryException 的代码吧,开启煞笔代码第三篇 -- OutofMemory OutOfMemory Out ...