前言
今天来说一下远程桌面这个东西。
常用的远程桌面协议有 RDP/VNC/SPICE 三种,对比如下:
其中SPICE只用于Linux系统,我没有研究过。Linux的话真要用到图形界面的话,VNC也就足够使用了。
RDP
windows系统自带的远程桌面连接(mstsc),正是基于RDP协议。这一协议的特点是,被控制端图形显示方面的计算由控制端完成。
举例来说,我们知道影视行业中Houdini特效制作软件因为需要用到GPU加速,在没有显卡的设备上打开会报错提示找不到显卡驱动等。
那么这里有两个机器,A机器没有显卡,B机器有显卡和驱动。那么使用A机器,通过windows自带远程桌面连接B机器,在B机器上打开Houdini软件,会报错吗?
答案是会的,因为在这个时候,图形计算是交给A机器来做的,而A机器没有显卡,会调用CPU来完成图形运算,因此导致B机器上的Houdini软件识别不到显卡驱动,从而报错。
这里有一个小技巧,如果使用帧率(FPS)测试软件查看的话,就会发现windows远程桌面默认最高帧率是30FPS,局域网内虽然基本够用但还是有点卡顿,那么有没有办法提高到60FPS呢?
当然有,没有我说它干啥?
注册表中找到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
这一项,添加键值DWMFRAMEINTERVAL=15
,类型是DWORD(32-位)
值(D)。
然后就能享受最高60FPS的远程桌面了。
下面放一下Linux的RDP远程使用方式。
#linux上安装rdesktop,用于linux访问windws远程桌面 #安装 yum install rdesktop #如需要在界面上使用需要安装 yum install tsclient #使用命令行访问,-f 全屏 -a颜色 -c L 连接类型 rdesktop -f -a 16 119.0.0.100:1234 #使用rdp协议访问 linux yum install xrdp #启动xrdp服务 xrdp
VNC
而VNC协议则恰恰相反, 被控制端图形显示方面的计算由被控制端自行完成,控制端仅做实时展示和鼠标键盘等操作的传递等。
不过使用VNC远程,需要在被控制端安装VNC server端,而控制端使用VNC viewer来进行远程连接。
需要注意的是,VNC远程时,不能传输声音,无法通过远程桌面自身传输文件,流畅性相比windows的远程桌面(RDP)略逊一筹。
那么再回到上面那个例子,假如A机器使用VNC远程B机器,这时就能正常打开和使用Houdini了。
这里有一个坑,在为被控制端安装VNC server端时,如果使用windows远程桌面(RDP)远程安装的话,安装过程中会报错,原因也是因为调用了控制端的图形计算。
那如果被控制端是个虚拟设备,无法连接显示设备,只能远程那怎么办呢?
下面这个CMD命令就是答案。
@%windir%\system32\tscon.exe 0 /dest:console @%windir%\System32\tscon.exe 1 /dest:console @%windir%\System32\tscon.exe 2 /dest:console @%windir%\System32\tscon.exe 3 /dest:console @%windir%\System32\tscon.exe 4 /dest:console
原理很简单,既然需要本地图形计算,那就让被控制端自己登陆生成桌面,踢掉当前远程用户。
简单来说,管理员身份打开一个CMD窗口,鼠标复制上面这些命令,最后面多复制一个换行,在VNC server安装到正式安装时(也就是安装选项都确认完后,点击按钮开始安装时),在按下安装按钮之后,右键粘贴到CMD窗口中(因为有换行符,因此会自动执行)。
这个过程必须足够快,也许迟疑两三秒就会导致安装失败,那就只能多试几次了。是的,考验手速的时候到了。
之后你的windows远程桌面就会被这几行命令关闭(实际是因为被控端自己登陆桌面导致被挤掉) ,然后可以泡杯咖啡之类,等个五六分钟再连接上看看安装是否成功。因为安装过程中连接windows远程也会导致安装失败,所以建议多等几分钟。
VNC server安装后需要激活,这里直接放上激活码吧,省去注册麻烦了。
BQ24G-PDXE4-KKKRS-WBHZE-F5RCA BQ24G-PDXE4-KKKRS-WBHZE-F5RCA 8ZEZH-QPANM-NX3A5-8C4TS-8B97A 7AB4X-3YNXF-C5MRR-59DJG-7HGNA UPL8P-CN2MT-85ERA-N3E3B-GERDA X24XP-V247M-HEMNV-ZTMZK-FNB7A
下面放一下Linux上VNC安装和设置。
#安装 yum install tigervnc-server #vnc服务器启动 vncserver #查看连接 vncserver -list #修改访问密码 vncpasswd #关闭vncserver vncserver -kill :n #配置文件修改 vim /etc/sysconfig/vncservers # VNCSERVERS="2:myusername" sessionnumber,用户名 # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost" VNCSERVERS="1:root" # display port and username VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd"
最后再放一个小技巧吧,当你用windows远程桌面远程搭建Thinkbox(就是那个拥有deadline农场管理软件和krakatoa等知名特效插件的公司)家的license服务器一直注册失败时,试试用VNC远程搭建,会有惊喜哦。
至于原因,我想是因为它在读取显示相关的设备的硬件ID之类用于计算注册码吧。
时间会带你去最正确的人身边,
请先好好爱自己,
然后那个还不知道在哪里的人,
会来接你。
《岁月的童话》
——高畑勋
评论
194181 296865Rapidly and easily build your web traffic and PR, which provides Web site visitors to add your page to any social bookmarking site. 943440
438933 398215Id require to verify with you here. Which is not one thing I normally do! I take pleasure in reading a submit that will make individuals feel. Moreover, thanks for permitting me to remark! 164434