草庐IT

一文教会你如何选择远程桌面(五大主流远程软件全面讲解)

几何心凉 2023-04-11 原文

写在前面

作为程序员的我们,随时随地写代码改代码是我们的日常。刚回到家,就被老板、产品经理cue是常有的事。基于这种情况,一般都会随身携带电脑,随时备战,不过每天背着电脑上下班非常不方便。因此资深程序员的解决方案,就是使用第三方远程控制软件,借助这类软件,只要登录账号,就可以随时随地跨设备远程控制,摆脱设备的束缚。

目前市面上可供用户选择的远程桌面工具有很多,比如国产的ToDesk、向日葵和RustDesk,还有国外的TeamViewer、AnyDesk,如此多的远程控制软件,我们又该怎么选择呢?今天给大家从兼容多系统、使用门槛、连接质量、画质延时、远程功能这五大维度,对国内外五大主流远程软件进行全面讲解。

1. 兼容多系统

作为远程桌面软件,适配现在市面上的主流系统非常重要,尤其是对于程序员来说,会时常在不同系统的设备进行切换,若远程软件不能支持在某一系统上使用,那么适用性则会大打折扣,本次测试的五大主流远程基本都能兼容多系统使用。

ToDesk、向日葵、RustDesk都可支持在Windows、Mac、Linux、Android和iOS这五大系统上的使用。而国外的TeamViewer、AnyDesk还会支持freeBSD、Chrome OS等其他领域市场占有率颇高的系统。其中向日葵和TeamViewer控制Android设备需要安装独立的客户端,而ToDesk则是不需要额外安装,只需按照指示进行操作,即可免root远控安卓。

被控平台

主控平台

ToDesk

Windows、macOS、Linux、Android(需购买插件)

Windows、macOS、Linux、Android、iOS

向日葵

Windows、macOS、Linux、Android、iOS(需购买硬件)

Windows、macOS、Linux、Android、iOS

RustDesk

Windows、Linux、macOS

Windows、macOS、Linux、Android、iOS

Teamviewer

Windows、macOS、Linux、Android

Windows、macOS、Linux、Chrome OS、Android、iOS

AnyDesk

Windows、macOS、Linux、Android、iOS(有限支持)

Windows、macOS、Linux、Android、iOS、freeeBSD、树莓派、Chrome OS

2. 使用门槛

一个工具类软件好不好用,上手门槛很关键,尤其是对于远程控制软件来说,若是对远程控制不熟悉的用户,在第一次尝试使用软件时遇到过高的门槛,很大程度会打消使用的积极性,在这一点上,国产远程控制有着先天的优势。

ToDesk和向日葵只需要注册登录就能使用。ToDesk可通过手机验证、微信扫码、APP扫码和账号密码这4种方式登录使用,并且可选择「下次自动登录」,使用起来步骤简单,操作便捷。

向日葵相对来说较为复杂一些,尽管在登录时也有手机验证、微信、APP扫码这3种方式登录,但是在实际使用的过程中,还需要提供windows系统账号名和登录密码,比较麻烦费时。

RustDesk的使用门槛意外的低,下载程序后,直接运行就能用,不需要注册登录。

AnyDesk同样不需要登录,不过免登录容易导致每次重启账号会发生改变。TeamViewer是5个软件里使用门槛最高的远程,同样需要注册登录,不过TeamViewer的注册不支持国内手机号,因此无法便捷的接收验证码,只能通过邮箱注册,输入后还需要通过邮箱进行多个步骤的设置,相对来说使用门槛最高,操作也最复杂。

3.连接质量

远程桌面连接质量的好坏,取决于客户端与目标服务器之间的网络带宽与延时,若软件运营商的服务器布置太少,用户和目标服务器之间的网络质量变得不可控,导致远程桌面连接不流畅、连接稳定性差。来看看今天测试的五大远程软件,它们的服务器布置、使用稳定性和流畅度怎么样。

ToDesk和向日葵的服务器在国内各地都有进行布置,不过ToDesk数量相对更多一些,在全国建立了超200个网络节点,而向日葵在国内只有4个转发机房。

或许是跟服务器的布置数量有关,ToDesk和向日葵的稳定性出现了明显的差异。我在测试ToDesk时,特意延长连接时间,测试表现中途ToDesk没有断开过,稳定性很强。

但是向日葵的稳定性表现却有些令人失望,连接不到半小时,就显示连接已被断开,后面重新连接了几次都出现了这种情况。在搜寻向日葵资料的时候,发现就在前几天,向日葵被外媒曝出漏洞导致木马入侵被各大媒体转载,截止目前,向日葵官方还未就此消息做出回应。

Rustdesk尽管是国产远程桌面,但是其默认的服务器不在国内,连接速度有些慢,不过还算稳定,基本连接几小时没问题。这个软件的最大优势在于它支持自建服务器,如果你有一些IT运维经验和服务部署能力,开源的 RustDesk 就在其官方网站中提供了如何自行搭建中转服务器的教程,可以给自己搭建一个服务器只给自己用,那速度和稳定性也能得到提升。

TeamViewer和AnyDesk因国外软件的原因,服务器也都是布置在国外,因此无论是稳定性还是流畅度都表现不佳,尤其是TeamViewer,时不时判商用行为直接给断连,我个人认为若是用在办公中会很糟心。

4.画质延时

对于程序员来说,若是远程画面过于模糊,会非常影响远程查看和调用公司电脑的代码,而操作延时过高,会造成卡顿和拖影,不仅拉低效率,而且容易造成工作出错,因此画质和延时也是远程桌面非常重要的一环,那么此次测试的五大远程的画质延时表现怎么样呢?

ToDesk的远程画质还原度很高,基本能做到与被控电脑画质一比一映射,无论是文字还是视频图像都能高清呈现,并且ToDesk厉害的是,在保证超清画质的同时,还能兼顾高流畅和低延时,看ToDesk自带的网络诊断窗口,网络好的情况下,延时甚至低至1ms,可以说是相当于没有延时,我测试时远程看大视频也没有出现卡顿或者掉帧的情况,对于我们程序员日常的查看代码那就更没有什么问题了,体验非常好。

向日葵画质比较模糊,远程看到的文字不是很清晰,延时表现也不太好,出现了明显的卡顿。

TeamViewer的画质和ToDesk的画质相当,但是延时非常严重,观看视频时画面甚至卡了几秒钟。

Rustdesk画质一般,播放视频有卡顿。

AnyDesk画质还可以,但是延时明显。

5.远程功能

对于电脑之间的远程控制,这几款远程软件在功能上没有太大的差异,基本的文件传输、远程对话、键鼠映射、桌面控制、远程投屏等都是可以支持的。相对来说,论功能的全面性和丰富度,ToDesk都最为突出,除了基本的远程控制功能,ToDesk针对IT工作者开发了远程终端功能,通过输入CMD命令行远程控制设备,就能够远程执行一些繁琐的命令,实现一机多用,丝毫不会耽误本地电脑的算力。当设备或系统有异常发生,在家就可以远程改代码。

针对更习惯多个显示屏协同操作的代码开发程序员,ToDesk还增加了多屏操作和虚拟屏功能,如程序员在多屏控多屏的情况下,可使用多屏操作功能,连接成功后被控的几个屏幕都能在主控这边全部展现,可以同时兼顾IDE、监视器、文档、网页。

在手机端,ToDesk也深研用户使用习惯,配置了虚拟鼠标,按键与使用手法和电脑鼠标基本无异,无论是左右键还是滚轮滑动,都能达到与电脑鼠标一样的流畅度,非常适用于电脑不在身边、需要用手机远程办公的紧急情况,大大提升了移动办公的便捷性。

写在最后

现如今远程控制软件的快速发展,使得程序员不再局限于单一空间,反而挣脱了时空的束缚,得到了更大的自主性和选择性。因此综合考虑,从系统兼容、使用门槛、连接质量、画质与延时、远程功能这五大方面来看,ToDesk的表现最亮眼,适用于程序员不同的操作场景,通过基础功能和专业功能的共同调用,结合成熟的技术与清晰流畅稳定的使用体验,能最大程度满足国内IT用户的远程需求。

有关一文教会你如何选择远程桌面(五大主流远程软件全面讲解)的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  4. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  5. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  6. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  7. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  8. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  9. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  10. ruby - 如何使用文字标量样式在 YAML 中转储字符串? - 2

    我有一大串格式化数据(例如JSON),我想使用Psychinruby​​同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解

随机推荐