Linux RDP远程桌面连接Windows

远程桌面协议RDP(Remote Desktop Protocol)是Microsoft开发的专有协议,它为用户提供图形界面以通过网络连接到另一台计算机。

Windows可以通过VNC远程桌面连接Linux,反过来却不行。但是确实需要远程桌面控制Windows,那么可以利用 rdesktopxfreerdp,两者均是Linux下支持Windows远程桌面连接的客户端程序。

安装

rdesktop
ubuntu:
sudo apt install rdesktop
arch/manjaro:
sudo pacman -S rdesktop

xfreerdp
ubuntu:
sudo apt get install freerdp
arch/manjaro:
sudo pacman -S freerdp

rdesktop

在此之前需要让Windows支持远程协助,可以在系统属性-远程中开启:【允许远程协助连接这台计算机】+【允许远程连接到此计算机】,如果勾选了【仅运行运行使用网络级别身份验证的远程桌面单位计算机连接】,那么 rdesktop 无法连接,报错信息:

1
2
3
Core(warning): Certificate received from server is NOT trusted by this system, an exception has been added by the user to trust this specific certificate.
Failed to initialize NLA, do you have correct Kerberos TGT initialized ?
Failed to connect, CredSSP required by server (check if server has disabled old TLS versions, if yes use -V option).

解决方法有两种:1)不勾选该选项;2)使用 xfreerdp

rdesktop 192.168.xxx.xxx 默认选项就可以远程桌面连接Windows(需要输入用户口令)。
rdesktop一些常用选项:
-u : Windows用户
-p : Windows口令(非PIN)
-g : 窗口大小,如 1366x768
-f :全屏
-a : 色彩深度 :8, 15, 16, 24, 32
-r sound :支持声音
-r clipboard:支持剪切板
-r disk: 远程连接时挂载本地文件目录

详细信息 man rdesktop

examples

1
2
3
% rdesktop 192.168.1.6
% rdesktop -u user -p - -f
% rdesktop -u user -p passwd -g 1366x768 -r sound -a 32 -r clipboard:PRIMARYCLIPBOARD -r disk:MyDir=/mnt/shared 192.168.1.6

xfreerdp

xfreerdp选项比较多,不过掌握基本的也就够了

1
2
3
4
5
6
7
8
9
10
/v:<server>[:port] 默认端口 3389
/w、/h 窗口大小
/size:<width>x<height> 窗口大小,如 1024x768
/f 全屏
/workarea Use available work area
/bpp:<depth> 色彩深度
/u:<user>[@<domain>]
/p:<password>
/d:<domain> 域,可选
+fonts 平滑字体

examples

1
2
3
4
5
% xfreerdp /v:192.168.1.6
% xfreerdp /u:user /p:passwd /v:192.168.1.6 /f
% xfreerdp /bpp:32 +fonts /u:user /p:passwd /v:192.168.1.6 /workarea
% xfreerdp /bpp:32 +clipboard +fonts /u:user /p:passwd /workarea /sound /drive:shared,/mnt/shared /v:192.168.1.6
% xfreerdp /bpp:32 +clipboard +fonts /u:user /p:passwd /size:1366x768 /sound -v:192.168.1.6:3389