Linux下通过rdesktop连接Windows远程桌面

96
zhwhong
0.8 2017.01.03 16:20* 字数 1242

最近在公司要求做学习汇报,同事在windows下做的ppt,然后我用自己电脑Linux连接的汇报用的投影仪,但是将其ppt拷贝过来到我linux下格式显示有点问题,最后索性远程连接他的windows机器控制其桌面进行汇报,也算比较方便。下面就说一下怎么连接windows远程桌面。

一、主角:rdesktop

rdesktop是linux下支持Windows远程桌面连接的客户端程序,在linux系统下可通过它远程访问Windows桌面,支持多种版本。rdesktop是sourceforge下支持GPL协议的一个开源项目,采用RDP(Remote Desktop Protocol,远程桌面协议),几乎可以连接windows的所有版本,诸如NT 4 Terminal Server, 2000, XP, 2003, 2003 R2, Vista, 2008, 7, and 2008 R2等。目前,rdesktop可运行于所有的基于X window平台的Unix系统中。

二、安装

命令行安装,操作很简单。

  • Debian(Ubuntu)系统下执行:
$ sudo apt-get install rdesktop
  • Centos/RedHat可以通过yum命令在线安装:
yum -y install rdesktop
  • Archlinux使用pacman -S也可以安装。

(当然也可以下载源码编译安装)

三、Windows配置

首先需要允许此windows远程访问。

基本操作:计算机---属性---远程设置---远程,

勾选:允许远程连接到此计算机。去掉默认勾选:仅允许运行使用网络级别验证...,(如果不取消这个,在运行时会出现“ERROR: recv: 连接被对端重置”)。

要开启Windows远程桌面,有三个选项,第一个如果是不允许连接到本机,则选择“不允许连接到这台计算机”,这样可以阻止任何人使用远程桌面或 RemoteApp连接到您的计算机。后面两个选项,“允许任意版本远程桌面计算机”和“仅运行使用网络级别身份验证的远程桌面的计算机”,两者差别如下:

  • “允许运行任意版本远程桌面的计算机连接”——如果不确定将要连接过来的计算机操作系统,可以选择这一项。安全性较第三个选项低。
  • “只允许运行带网络级身份验证的远程桌面的计算机连接”——允许使用运行带网络级身份验证的远程桌面或 RemoteApp 版本计算机的人连接到您的计算机。目前Vista、Windows 2008、Windows 7均支持网络级身份验证,Windows XP等可以通过修改注册表等方法支持,如需要请自行GOOGLE搜索。

最简单的做法就是选择允许运行任意版本远程桌面的计算机连接,然后Linux退出远程桌面后,再回到windows关闭允许远程连接就可以了。

网络级别身份验证查看方法:
鼠标点击远程桌面连接左上角的小图标,选中关于,如下窗口,有是否支持提示。

四、rdesktop连接windows远程桌面

打开命令行,仅需要一条命令:

$ rdesktop -f 192.168.1.112  (这里的ip对应自己windows的ip地址)

就ok了。

  • -f参数默认全屏打开,使用Ctrl + Alt + Enter可以退出全屏模式。

如果不想每次都敲命令的,可以简单的写个shell脚本,每次点击就可以连接。


rdesktop使用拓展

Linux下help一下可以看到完整用法:

➜ ~ ➤ rdesktop --help
rdesktop:无效选项 -- -
rdesktop: A Remote Desktop Protocol client.
Version 1.7.1. Copyright (C) 1999-2011 Matthew Chapman et al.
See http://www.rdesktop.org/ for more information.

Usage: rdesktop [options] server[:port]
   -u: user name
   -d: domain
   -s: shell
   -c: working directory
   -p: password (- to prompt)
   -n: client hostname
   -k: keyboard layout on server (en-us, de, sv, etc.)
   -g: desktop geometry (WxH)
   -f: full-screen mode
   -b: force bitmap updates
   -L: local codepage
   -A: enable SeamlessRDP mode
   -B: use BackingStore of X-server (if available)
   -e: disable encryption (French TS)
   -E: disable encryption from client to server
   -m: do not send motion events
   -C: use private colour map
   -D: hide window manager decorations
   -K: keep window manager key bindings
   -S: caption button size (single application mode)
   -T: window title
   -N: enable numlock syncronization
   -X: embed into another window with a given id.
   -a: connection colour depth
   -z: enable rdp compression
   -x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.)
   -P: use persistent bitmap caching
   -r: enable specified device redirection (this flag can be repeated)
         '-r comport:COM1=/dev/ttyS0': enable serial redirection of /dev/ttyS0 to COM1
             or      COM1=/dev/ttyS0,COM2=/dev/ttyS1
         '-r disk:floppy=/mnt/floppy': enable redirection of /mnt/floppy to 'floppy' share
             or   'floppy=/mnt/floppy,cdrom=/mnt/cdrom'
         '-r clientname=<client name>': Set the client name displayed
             for redirected disks
         '-r lptport:LPT1=/dev/lp0': enable parallel redirection of /dev/lp0 to LPT1
             or      LPT1=/dev/lp0,LPT2=/dev/lp1
         '-r printer:mydeskjet': enable printer redirection
             or      mydeskjet="HP LaserJet IIIP" to enter server driver as well
         '-r sound:[local[:driver[:device]]|off|remote]': enable sound redirection
                     remote would leave sound on server
                     available drivers for 'local':
                     alsa:  ALSA output driver, default device: default
         '-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD]': enable clipboard
                      redirection.
                      'PRIMARYCLIPBOARD' looks at both PRIMARY and CLIPBOARD
                      when sending data to server.
                      'CLIPBOARD' looks at only CLIPBOARD.
         '-r scard[:"Scard Name"="Alias Name[;Vendor Name]"[,...]]
          example: -r scard:"eToken PRO 00 00"="AKS ifdh 0"
                   "eToken PRO 00 00" -> Device in Linux/Unix enviroment
                   "AKS ifdh 0"       -> Device shown in Windows enviroment 
          example: -r scard:"eToken PRO 00 00"="AKS ifdh 0;AKS"
                   "eToken PRO 00 00" -> Device in Linux/Unix enviroment
                   "AKS ifdh 0"       -> Device shown in Windows enviroment 
                   "AKS"              -> Device vendor name                 
   -0: attach to console
   -4: use RDP version 4
   -5: use RDP version 5 (default)
➜ ~ ➤ 

比如如下命令:

$ rdesktop -f -a 16 -u username -p password  IP  -r sound:on/off -g 1024x768

说明:

1、username和password分别是目标电脑的帐号和密码,-a 16表示位色,最高就是16位;
2、IP为目标电脑的IP地址(可能需要先连接VPN);
3、sound:on表示传送目标电脑的声音,off则为关闭;
4、-g 后接想要显示的分辨率,使用 -g workarea 可自适应铺满当前linux窗口大小

更多参数

5、使用 -f 参数进入全屏模式,中途可使用Ctrl+Alt+Enter组合键退出全屏(不知道的就郁闷了);
6、-r** disk:share_name=/local-disk** 将本地磁盘映射到远程电脑,其中share_name为显示名称,可自定义,local-disk表示本地linux的一个目录,比如 /data。
7、-r clipboard:PRIMARYCLIPBOARD 允许在远程主机和本机之间共享剪切板,就是可以复制粘贴。

(更多参数详见命令行help结果……)

五、预览

然后就可以正常操作window远程桌面了。

(注:-f参数默认全屏打开,使用Ctrl + Alt + Enter可以退出全屏模式)

Linux
Web note ad 1