OpenVPN|实现远程桌面控制

前言:本文是写给在校大学生的(毕竟资金有限),不过对远程桌面控制感兴趣的朋友也可以了解一下。

以下是主笔的碎碎念:

  • “快要开学了,准大一的你是不是要为自己的大学生活准备一台能战四年甚至出来工作后还能再撑几年的电脑呢?”
  • "上大学后我可是要变大忙人!我肯定要一台方便携带配置不需要太高的电脑就行了"
  • “大学不就是换个地方玩电脑嘛,而且台式又比较便宜,同样的价格,笔记本配置又不如台式机,同类的配置,笔记本性能顶多就台式机的百分之七八十,我要上满血配置又买不起”(一般桌面级配置,macbookpro顶配了解一下,不贵嘛!前者普遍一两万,后者也就五万多,学生还能优惠两三千买多一个妙控键盘和妙控板。也就是说原价的macbookpro还送妙控外设套装,赚翻了!买到就是赚到。)
  • 那么小伙伴你是属于哪一种呢?
  • 难道我们就不能以适合的预算支出既能获取台式机的高性能又兼顾笔记本轻便携带的特点么?当然可以!接下来就和“技术哥”一起来了解一下桌面远程连接。

注:本篇文章我们将以外网来怎么通过openvpn来实现非内网环境下的远程连接着重来讲。顺便传授一些额外知识。

一:市面上的那些远程连接桌面工具

  • 首先给大家介绍市面上公众认可的几款远程连接桌面软件工具:
OpenVPN|实现远程桌面控制

  • AnyDesk 都说最流畅 ,是teamviewer前员工基于UDP协议做的,通过服务器协商,最后数据连接通过服务器中转,连接速度由本地网络和远程网络决定。
  • Splashtop 商业版每年60刀,外网连接反馈速度还可以但帧率不高 有明显延迟感 并且需要购买付费 私人版ios软件30RMB买断制但是XX助手你懂的 体验要比商业版遭得不行
  • Teamviewer 目前是免费,不管是内网还是外网连接体验都不错。对电脑和移动设备配置有一定要求(笔者用iPhone 6P和ipadmini 1体验下来,一句话:两个世界)
  • Top last:向日葵 体验几分钟后就删掉了
  • 还有很多等等......

但这就这些软件也有它存在的弊端:

  • AnyDesk是国外软件,服务器在国外。因此外网体验不能说太理想,基本连不上没有黑屏功能 即使内网体验很棒 但完全没意义了。
  • Splashtop 需要收费,而且延迟虽然不算高但是即便是两三秒的延迟也是很难接受的
  • Teamviewer 确实强大,外网延迟很小,基本可以说是同步了

最终的总结:虽说远程桌面连接的技术已经有很成熟的软件公司在营运,并且都有黑屏功能和禁止被控端输入可以一定程度保护自己的隐私。但也有一些电脑不知道为何不能使用黑屏功能,而这类软件终究只是普通的画面捕捉传输工具,并且还要容忍被软件套死的约束,作为一个程序猿的角度来说这样的实现方式我是拒绝的。

OpenVPN|实现远程桌面控制

二:接下来是技术哥的方案

(1)我们需要的设备配置

OpenVPN|实现远程桌面控制

  • 首先 ,电脑使用win10的远程桌面连接功能(一般中等的配置已经可以完全满足作为输出端的性能要求了)
  • 系统 :win10专业版、企业版(家庭版虽然没有自带这个功能,当然是可以通过修改策略组和创建注册表来补充这个功能,但这又是一个巨坑,作为经常摔坑的人来说,好好的干嘛非得去找坑踩呢。)
  • 移动设备使用window的RemoteDesktop client的app 因为我们的电脑一般都是用window系统那么对于移动设备来说我用微软家的Remote Desktop clients是为了最大的兼容支持。并且当你移动设备连接电脑的时候,电脑是会进入锁定模式的。也就是要么你用电脑操作桌面要么是自己的电脑跟移动设备连接。奔着这一点去,远程桌面连接确实是是我的不二之选。

注意:只有给电脑登录账号设置密码,才可以成功远程连接到电脑。这就是微软自带功能和自家软件相比那些第三方软件的优势所在,至少安全性和隐私权是掌握在自己手里而不是第三方来的承诺。

(2)我们需要连接外网

  • 那么最基本的软件(Remote Desktop client)我们有了,电脑和移动设备我们也有了。那么我们就可以通过内网环境体验一下我们在最顺畅的网络环境下设备硬件配置是否达到符合我们流畅操作的要求。事实证明流畅度是要比top前三还要丝滑的,并且当你移动设备登陆的时候,电脑就会进入锁屏状态,这样在操作隐私上就得到了保护。
  • 万事俱备只欠东风,接下来我们重中之重就是要解决外网的问题了,而这也是最难最令人头痛的事情。因为我们知道在复杂的网络世界中层层叠叠,根据tcp/ip的网络结构你永远不知道有多少个上层路由服务器在驾驭着你。稍微细想就如你两台电脑放在一起,连着不一样的内网。假如它们的网络节点在上面七层、八层、十层的路由服务器中,那它们直接交换数据是不是就要A电脑往上走,走到节点路由服务器然后又往下传到B电脑?看似近在眼前,实则远在天边。
  • 那么要实现这个远程连接我们就要根据上述情况在电脑上设置走一遍这条路?相信我,了解一下局域网、广域网、城域网、因特网。你就不会这么干了,并且也十分不科学。
OpenVPN|实现远程桌面控制

(3)搭建服务器的重重困难

  • 那么有人说了不就是一个内网穿透技术嘛。是的,目前市面上有花生壳、nat123(主流软件)提供内网穿透服务。但别忘了这些软件也是要需要收费,就如花生壳开通服务贵就算了,带宽还少,如果要实现teamviewer 的顺畅千兆的带宽都不为过,何况人家teamviewer还不是靠这来盈利,而你在花生壳提带宽就要加钱,还不是一般的贵,一般人明显消费不起。
  • 所谓羊毛出自羊身上,不管是上述的直接提供远程连接软件还是内网穿透服务软件,最终的成本费用还不是让消费者自己付么?虽然有便有贵,但长期来讲对个人来说是一笔不划算的费用。这也是远程桌面连接技术明明是一个这么好的技术但也无法普及大众更无法一丝动摇笔记本电脑市场的无奈。
OpenVPN|实现远程桌面控制

  • 既然这些软件的实现原理,内网穿透原理都知道了,那么我们只要有一个自己的服务器在 搭建ngrok服务器进行端口映射实现内网穿透不就可以了嘛。且不说ngrok服务器容不容易搭建还需要懂得一点GO语言的开发以便将来出现问题的时候进行维护。对于没有学过编程的人来说十分的不友好。
OpenVPN|实现远程桌面控制

  • 当然讲到服务器当然离不开现成的NATAPP隧道,NATAPP可以注册用户购买免费的穿透域名来使用实现远程控制。但是由于是免费的隧道带宽必然是很小的。因此远程操作体验必然也是糟糕的。其实还有sunny-Ngrok这家隧道公司哦,相比NATAPP,sunny的带宽比较良心10块钱就能租用200兆带宽的Ngrok服务器。

(4)实现方案选用OPENVPN

  • 其实讲了这么多,不管我们是用现成的软件,还是去找提供内网穿透服务的运作商。整套原理的实现方案是不变的,无非就是你实现的过程逐层简化,中间流经服务器交换的次数减少而已。那么最后就来讲一下为什么我们会采用OPENVPN的实现方案吧:
  • VPN相信大家也不陌生,最常用的就是翻墙去看外面的世界。除此之外就没有人着重其他用途了。使用VPN不仅将中间服务器交换次数降到最低,还相比繁琐的搭建设置配置更加的简化。其实treamviewer之所以能将外网延迟实现得跟内网相似其实也是大致用了VPN的原理。只需要一台有一台服务器作为VPN服务端,再将电脑和手机作为客户端。就能直接构成一个局域网。而且服务器我们选择一些国外的VPS一般都拥有千兆的网络带,不过考虑到毕竟是国外服务器由于距离远的问题会有延迟这种的东西(一般国内电信延迟1~30MS),所以在挑选VPS的时候尽量选择近的地区例如香港、新加坡、日本是比较理想的,最重要的是可以顺便翻墙啊!像一些美国洛杉矶的服务器对亚洲地区有优化也是不错的。笔者现在所用的就是洛杉矶的VPS延迟在170ms左右。

OK!服务器既然选好了就开始进行我们的重头戏OPENVPN服务器的搭建吧!

  • 由于几天折腾下来里里外外试过各种vps服务器,最终确定了远程桌面的反馈速度因素是以延迟为主要因素,次要是电脑硬件配置和网络带宽。
  • 因此笔者这里以学生为群体,可以使用腾讯、阿里的学生云服务器,不仅可以作为个人专属云盘还可以良好体验远程操作的便捷。
  • 第一步 : 购买服务器,公众号先前已经有相关web服务器搭建教程,同样有介绍怎么购买学生云服务器。目前学生优惠的服务器有很多,像阿里、腾讯、华为这些国内服务器延迟基本都在10ms内,大家可以自由选择。
  • 1.系统我就尽量选择Centos,因为这在实现过程中笔者遇到坑最少的。
  • 2.先提前在服务器控制台的安全策略(防火墙)打开相应的端口,在这里我们只需要使用VPN的默认的UDP协议端口1194即可。
  • 第二步 : 购买服务器成功后等待开通就可以在控制台里找到公网IP。服务搭建宝塔,宝塔不仅可以作为一个web环境的管理后台,还可以作为普通的使用界面,后面在用到配置文件上传下载我们用得上。那么用SSH连接工具putty来进行连接。
OpenVPN|实现远程桌面控制

OpenVPN|实现远程桌面控制

  • 当你成功进入就可以开始负责粘贴代码去安装了。
OpenVPN|实现远程桌面控制

  • 选择y,等待。
OpenVPN|实现远程桌面控制

  • 安装成功,登录地址输入账号密码,记忆力不好的同学一定要在设置改账号密码。
  • 在宝塔安全选项再一次开放端口1194。因为当你安装宝塔后又相当于给服务器的端口拉了一道闸,因此你需要再一次开闸。(不知道宝塔的同学请自行复习技术哥第一篇文章)
  • 之后开始安装OPENVPN。复制命令行wgethttps://git.io/vpn -O openvpn-install.sh&& bash openvpn-install.sh (这是国外大神做的一键脚本,在IT行业要懂得用轮子,虽然我们可以一步一步安装环境依赖,服务端文件配置。但明显是不明智的。)
OpenVPN|实现远程桌面控制

  • 这一步要将IP地址重新改为外网。因为国内服务器还有一个大一点的局域网,
OpenVPN|实现远程桌面控制

  • 协议选择UDP,一定要UDP!因为远程桌面连接流畅度的秘诀就是要UDP协议。
OpenVPN|实现远程桌面控制

  • 端口默认1194,可以改,但新手的话其实也没有必要。
OpenVPN|实现远程桌面控制

  • NDS选择默认第一个,如果选择其他也不是不可以,但多多少少会有坑。笔者就试过用谷歌DNS要么就使用客户端连不上VPN要么连上也打不开其他网站,所以最哈默认选择根据服务器自己的DNS来设置。
OpenVPN|实现远程桌面控制

  • 最后一步就是输入命名生成客户端配置文件,
OpenVPN|实现远程桌面控制

  • 在这里改不改也没关系,因为后面我们还会再执行脚本创建新的配置文件来使用,任意键开始执行一键操作,接下来只要等待就可以了。
OpenVPN|实现远程桌面控制

  • 接下来我们就要在自己的手机和电脑安装OPENVPN客户端。由于客户端下载需要翻墙到官网,我们已经为你准备好下载地址。(由于限制,地址链接技术哥会放在第一条评论中)
OpenVPN|实现远程桌面控制

OpenVPN|实现远程桌面控制

  • 然后右键客户端使用管理员权限运行,如果不使用管理员权限也会有连接不上VPN的坑。
OpenVPN|实现远程桌面控制

  • 再次运行脚本就可以创建新用户。一个用户生成一个配置文件,一个配置文件只能一个客户端使用。因此我们根据我们的设备至少生成两个文件。
OpenVPN|实现远程桌面控制

  • 电脑连接大功告成获得分配内网IP10.8.0.2!
  • 接下来就是手机,笔者手机为ios,由于手机软件OPENVPN在中国大陆商店下架,因此需要读者自己准备一个国外APPLE ID,其实只要网上搜一下也有一些网站、公众号分享。
  • 当下载好后怎么将配置文件导入手机?
  • 我们可以通过发email的方式。比如笔者就是通过QQ邮箱附件发送
OpenVPN|实现远程桌面控制

  • 将文件发给自己就好,然后手机微信进入邮箱打开邮件下载文件。
OpenVPN|实现远程桌面控制

  • 打开
OpenVPN|实现远程桌面控制

  • 添加
OpenVPN|实现远程桌面控制

  • 连接
OpenVPN|实现远程桌面控制

  • 获取IP10.8.0.3。

这时候就成功搭建成一个局域网了。接下来手机测试一下吧!

OpenVPN|实现远程桌面控制

由于学生云服务器分配的带宽只有一兆,即便是在延迟十秒左右的环境也难免会有将近0.1~0.25秒直接的延迟,但是作为在校远程“工作”来说,确实不错的哦!


分享到:


相關文章: