远程桌⾯连接(mstsc)全攻略
打算从今天开始,写⼀写我经常⽤的,有长时间使⽤经验的东西,与⼤家分享,就从mstsc开始吧!
mstsc应该是在Windows中,除了calc、cmd、notepad、mspaint,我使⽤率最⾼的系统软件了,它真的很好⽤。下⾯我们就来详细介绍⼀下mstsc。
注意:由于本⼈没有⽤过Win8/Win8.1,因此本⽂基本上忽略了Win8。在本⽂中若没有特别说明使⽤的系统,则默认都是按Win10来操作。
1 开启计算机的远程桌⾯连接功能
打开系统属性,打开远程设置,选择“允许远程连接到此计算机”,但是不建议勾选“仅允许运⾏使⽤⽹络级别⾝份验证的远程桌⾯的计算机连接”,如果勾选则WinXP等系统则不能远程控制该计算机。Win7的选项有些不同,但其实是⼀个意思,建议选择“允许运⾏任意版本远程桌⾯的计算机连接”。
另外,上⾯的这个远程协助跟mstsc没关系,不⽤勾选。这个远程协助指的是msra这个命令。
想要计算机能被远程,需要开启Windows防⽕墙。需要注意的是,⼀定要在防⽕墙中给“远程桌⾯”设置允许通过。如果你设置只允许它在专⽤⽹络通过防⽕墙,则⼀定要注意计算机当前使⽤的⽹络是专⽤还是公⽤,如果是公⽤则需改为专⽤。不过最简单的还是允许它专⽤和公⽤都能通过。(Win7中的家庭和⼯作都属于专⽤)
注意:⼀定要关闭远程计算机的⾃动休眠功能!
2 运⾏mstsc
按Win+R,运⾏mstsc。输⼊IP,点击连接,之后输⼊⽤户名和密码即可。可勾选保存凭据。
3 远程设置
分辨率、颜⾊质量、性能这些都很常⽤,下⾯说⼀些不是很常⽤的设置。
在“显⽰”选项卡中,可以设置全屏显⽰时是否显⽰连接栏。如果设置不显⽰,那么在进⼊远程界⾯⼏秒后连接栏就会消失。想要调出连接栏以关闭远程,就得⽤快捷键。
在“本地资源”选项卡中,可以设置远程计算机可以使⽤的本地资源。默认剪贴板是开启的,也就是说,远程计算机和本地计算机共享剪贴板,可以复制⽂字、⽂件等。另外还有⼀个容易被忽视的功能,点击详细信息,⾥⾯可以将驱动器映射到远程计算机,可以是硬盘,也可以是U盘。这样远程计算机就能直接访问本地设备了。
4 快捷键
CTRL+ALT+END: 可发送CTRL+ALT+DELETE到远程计算机。直接按CTRL+ALT+DELETE操作的是本地计算机。
CTRL+ALT+HOME: 如果设置了“全屏显⽰时不显⽰连接栏”,可⽤此快捷键调出连接栏以关闭远程。注意:Win7以下不⽀持。Win7以下设备可按下CTRL+ALT+DELETE,选择任务管理器,这样可以调出开始菜单,在任务栏中关闭,或者直接在任务管理器中关闭,也是可以的。
更多快捷键可以参考。
另外,如果想全屏时最⼩化远程窗⼝,⽐较难,在,⽬前我还没有到⽐较合适的解决⽅案。
5 修改端⼝
远程桌⾯连接默认使⽤3389端⼝,如果想修改默认的端⼝,需运⾏regedit进⼊注册表,修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server\Wds\rdpwd\Tds\tcp和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp的PortNumber键值即可。修改时要注意使⽤的是⼗进制还是⼗六进制⽅式。
修改端⼝后,在远程输⼊IP时,就要显式指定端⼝号,形如ip:port。
若使⽤IPV6地址进⾏远程,IPV6地址必须使⽤中括号,例如[2001:da8:214:1086:747c:abcd:efgh:1c6a]:22。如果不修改端⼝,IPV6地址可以不加中括号。
6 WinXP的⼀些细节
使⽤WinXP进⾏远程时,是进⼊远程计算机界⾯进⾏登录操作(类似进⼊系统前的登录界⾯),因此可以看到远程计算机有哪些⽤户,直接选择并输⼊密码即可,根本不需要我知道远程计算机⽤户名是多少。这也是后来的系统要给出“仅允许运⾏使⽤⽹络级别⾝份验证的远程桌⾯的计算机连接”的选项的原因之⼀。
也正是由于上⾯这⼀的原因,使⽤WinXP远程要想保存凭据,必须在远程前在“常规”选项卡中勾选“允许我保存凭据”,点击连接后,会弹框让你输⼊密码。为什么要这么做?因为直接远程过去的话,所有操作就已经在远程计算机上了,包括输⼊密码,也就没法保存密码了。
由于WinXP的特殊性(安全性低),可能会存在其他系统⽆法远程某机器,但是WinXP可以的情况。如果出现这种情况,⼀定是远程计算机的安全设置出现了问题,可进⼀步排查。例如我今天遇到⼀个Win10电脑不能被远程,提⽰凭据⽆法⼯作的情况,⽤WinXP可以远程过去,其他系统都不⾏,最后发现是组策略某设置的问题,具体解决⽅法是运⾏gpedit.msc打开组策略,到计算机配置->Windows设置->安全设置->本地策略->安全选项->⽹络访问:本地帐户的共享和安全模型,修改为经典模式即可。
7 Win8以后的Microsoft账户问题
由于Win8以后开始使⽤MS账户,由此产⽣了⼀些“⽆法远程”的问题。究其原因,是MS账户的域的问题。
如图所⽰,这是⼀台已登录MS账户的Win10计算机,想远程某个Win7机器时,域被⾃动设置成了MicrosoftAccount,此时输⼊⽤户名密码后,会提⽰凭据⽆法⼯作。这是因为远程计算机本地账户的域不是MicrosoftAccount,因此需要显式指定计算机的域。
以远程我的计算机为例,我的计算机名是fz-DESKTOP,⼯作组为WORKGROUP,⽤户名为fz。在⼀台登录了MS账户的计算机上远程我的计算机时,⽤户名输⼊fz-DESKTOP\fz或
者WORKGROUP\fz就可以正常远程了。
另外,如果远程⼀台登录了MS账户的计算机,使⽤本地账户和MS账户都可以,只是可能需要使⽤相应的域。
UPDATE: 似乎新版本的Win10 10586已经解决了此问题,即使使⽤MicrosoftAccount域也可以登录本地账户。Win8不太清楚。
8 不能⽤mstsc进⾏的⼯作
其实绝⼤多数情况使⽤mstsc都没什么问题,有⼀种情况肯定是不⾏的,那就是对显⽰要求⾼的程序,例如看视频。
其实我们想⼀想就可以知道,⽹络带宽根本不⾜以⽀撑正常的显⽰数据传输,所以MS做了⼀些优化,让我们远程起来不是那么卡。⽽看视频的话,这种优化就没⽤了,因为看视频需要很⾼的帧数。
另外⾳频传输会有⼀定延迟,但是我还没搞清楚为什么,理论上应该是可以做到⽆延迟的(或延迟很低)。
9 多⽤户远程
ssh命令指定端口
对于MS来说,多⽤户同时远程⼀台计算机在技术上并不是难事,不过似乎MS只提供给了Server版这样的功能,普通的系统要⼿动修改系统⽂件的。
其实⼀般是⽤不到这个功能的,有需要或者有兴趣的话可以搜索“Windows 多⽤户远程”。
10 Linux远程Windows
上⾯说的都是Win远程Win的情况,有时候我们也会需要在其他系统上远程Win。
在Linux中,可以使⽤rdesktop这个软件。
以Ubuntu为例,执⾏sudo apt-get install rdesktop安装。给出⼀个常⽤的命令格式:
rdesktop -a 16 -u [username] -p [password] -f -r disk:name=/home/fz -r clipboard:PRIMARYCLIPBOARD -r sound:local [ipaddress]
-a 16: 使⽤16位⾊。
-u username: 指定⽤户名为username。
-p password: 指定密码为password。
-f: 全屏模式。
-r disk:name=/home/fz: 将本地路径/home/fz映射到远程计算机中,并起名为name,使其可被远程计算机访问。
-r clipboard:PRIMARYCLIPBOARD: 共享剪贴板,但不⽀持⽂件操作。(实际使⽤中这个共享剪贴板经常出问题)
-
r sound:local: 映射远程计算机声⾳到本地。
可以按CTRL+ALT+ENTER进⾏全屏/窗⼝模式切换。想要退出远程,也只能先切换到窗⼝模式再退出。
若需指定分辨率,可以把-f换成-g [resolution],例如-g 1920x1080。
若不指定⽤户名和密码,则会进⼊远程计算机的登录界⾯(类似WinXP),但是不能像WinXP⼀样显⽰出远程计算机的⽤户名。
想要让远程计算机执⾏CTRL+ALT+DELETE,直接执⾏即可(它在Linux中不是系统快捷键)。
更多设置可以man rdesktop来查看。
另外,Ubuntu⾃带⼀个Remmina的远程软件,直接执⾏即可打开。它⽀持mstsc的RDP协议,也⽀持SSH、SFTP等等。
11 Android远程Windows
下载安装。
⽤起来很简单,效果如下:
12 OS X远程Windows
虽然我并没有⽤过OS X,不过风刃同学反映他的远程软件想要远程Win10,必须修改远程计算机的组策略,我对此表⽰怀疑,后来发现他⽤的是2010年的,⽽新版Microsoft Remote Desktop只在美区的App
Store可以到,国区没有。所以使⽤美区账号下载即可,链接。这个是⼀直在更新的,上个⽉底刚更新过。
另外,OS X⽤linux的rdesktop也可以的,我让junshi同学测试了⼀下,执⾏brew install rdesktop安装,中间会提⽰需要安装⼀些库,按提⽰装好即可。
也可以在github,下载,可参考安装。(不过这个我没测试)
2018-04-04 UPDATE: 风刃同学告诉我App Store的Microsoft Remote Desktop已经不更新了,现在在Mac上使⽤RDP最好的⽅法是brew cask install microsoft-remote-desktop-beta,这种⽅法还不需要appleid。
13 PPPoE⽤户获取IP
如果是想远程家⾥的电脑,⽽家⾥的电脑使⽤的是PPPoE拨号的话,每次⾃动获取的IP是随机分配的。想要远程就必须知道电脑的IP是多少。
获取IP的访问有很多,如果你有⼀个公⽹服务器的话,这事就简单了。
我的处理⽅法是让该电脑每1⼩时访问⼀次服务器的某个⽹页,该⽹页⽤PHP的$_SERVER['REMOTE_
ADDR']得到访问者IP,并记录下来,通过访问服务器就可以得到家⾥电脑的IP 了。
14 ⾮公⽹IP、⾮固定IP的⼀些⽅案
如果你是⾮固定IP,则情况类似PPPoE,可以⽤上⾯的⽅法解决。但如果你没有公⽹IP,更准确地说是你没有可以直连的IP,那⼜怎么办呢?
你可以使⽤VPN达到这⼀⽬的。同样地,你需要⼀台可以直连IP的服务器,装⼀些VPN软件,让两台机器同时连上VPN,使⽤你设置好的该VPN分配的内⽹IP就可以进⾏远程了。
**2018-08-09 UPDATE: 也可以使⽤frp这种内⽹穿透软件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。