soarli

Ubuntu通过RDP协议远程Windows系统
前言近期由于特殊情况需要通过直接运行版的Ubuntu系统远程连接Windows系统,于是投入了一些时间稍加研究了一...
扫描右侧二维码阅读全文
22
2022/06

Ubuntu通过RDP协议远程Windows系统

前言

近期由于特殊情况需要通过直接运行版的Ubuntu系统远程连接Windows系统,于是投入了一些时间稍加研究了一下(没少踩坑),经过了两天的体验,在此简单做个记录。

rdesktop方案

注:1.8版本以上可以连接Windows 10系统,若使用低版本则会报“Error:连接被重置”错误信息。

1.修改源列表文件

sudo vi /etc/apt/sources.list

在末尾添加以下信息:

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

2.更新软件源

sudo apt-get update

3.下载deb安装包

wget https://cdn4.soarli.top/files/rdesktop_1.8.3-2build1_amd64.deb

4.安装rdesktop

sudo dpkg -i rdesktop_1.8.3-2build1_amd64.deb

image-20220622031802092

5.修复错误

sudo apt-get install libgssglue1

image-20220622031932984

6.使用

普通运行:

rdesktop IP:Port (i.e. rdesktop 192.168.1.1:22)

将本地盘符传输到服务器的运行:

rdesktop IP:Port -r disk://aa=/home/GALAXY

其中,aa为在服务器上虚拟盘符的地址名称,/home/GALAXY为本地待传输的地址。

此外,rdesktop还有一些其他的操作命令:

-f 全屏

-a 16位色

默认端口是3389(linux 22 sh)

注意:windows 的服务中的 Terminal Servies 需要开启。我的电脑 右键 属性 远程中,勾选 允许远程用户链接到此计算机。另外,退出的时候选择注销,而不是关机!

更多参数:

-u xxxxxx 登录用户,可选

-p xxxxxx 登录密码,可选

-r clipboard:PRIMARYCLIPBOARD 重要,剪贴板可以与远程桌面交互

-a 16 颜色,可选,不过最高就是16位

-z 压缩,可选

-g 1024x768 分辨率,可选,缺省是一种比当前本地桌面低的分辨率

-P 缓冲,可选

-r disk:wj=/home/magicgod 映射虚拟盘,可选,会在远程机器的网上邻居里虚拟出一个映射盘,功能很强,甚至可以是软盘或光盘

-r sound:off 关闭声音,当然也可以把远程发的声音映射到本地来。

例:

rdesktop -f 192.168.1.1:22 -u GALAXY -p woshimima -r disk://aa=/home/GALAXY
rdesktop -u administrator -p xxxxx  -a 16  -f  192.168.1.98
其中:
-a 16 表示16位色 -f 表示全屏  

freerdp方案

1.下载deb安装包

wget https://cdn4.soarli.top/files/freerdp2-x11_2.0.0_git20170725.1.1648deb+dfsg1-7_amd64.deb

2.安装freerdp

sudo dpkg -i freerdp2-x11_2.0.0_git20170725.1.1648deb+dfsg1-7_amd64.deb

3.使用

使用时指定ip、用户名和密码即可。其中各参数定义如下:

 /v:<server>[:port]     Server hostname
 /port:<number>         Server port
 /u:[<domain>\]<user> or <user>[@<domain>]  Username
 /p:<password>          Password
 /f                     Fullscreen mode

比如全屏显示远程电脑:

$ xfreerdp /v:192.168.2.31 /u:zhangsan /p:123456 /f

比较重要的参数有:

+fonts (default:off)    Enable smooth fonts (ClearType)
+aero (default:off)     Enable desktop composition
+window-drag (default:off)  Enable full window drag
+menu-anims (default:off)   Enable menu animations
+clipboard (default:off)    Redirect clipboard
/sound:[sys][dev][format][rate][channel][latency][quality]  Audio output (sound)
/audio-mode             Audio output mode
/network:[modem|broadband|broadband-low|broadband-high|wan|lan|auto]  Network connection type

例如开启ClearType、window-drag和clipboard:

$ xfreerdp /v:192.168.2.31 /u:zhangsan /p:123456 /f +fonts +window-drag +clipboard

启用音频输出:
audio-mode的参数为: 0 - redirect;1 - leave on server (or laptop); 2 - disable audio。当使用/audio-mode:1时,表示在远程电脑上输出音频,可以参考https://superuser.com/questions/1048829/how-to-keep-sound-on-remote-when-using-xfreerdp-remote-desktop-connection

$ xfreerdp /v:192.168.2.31 /u:zhangsan /p:123456 /f +fonts +window-drag +clipboard /audio-mode:0 /sound

实际使用时,由于局域网电脑是动态ip,可以通过nmblookup命令根据主机名称获取远程电脑ip,例如:

$ nmblookup -U server -R 'zhangsan'
192.168.2.31 zhangsan<00>

完整脚本如下:

#! /bin/sh

ip=$(nmblookup -U server -R 'zhangsan' | awk -F "[ /]+" '{print $1}')
xfreerdp /v:$ip /u:zhangsan /p:123456 /f +fonts +window-drag +drives +menu-anims +aero /bpp:32 /monitors:1 +glyph-cache +clipboard  /network:auto  /gdi:hw /audio-mode:0 /sound

我的脚本:

xfreerdp /v:172.xx.xx.xxx /port:xxxx /u:xxxxxx /f +fonts +window-drag +clipboard

Remmina方案

连接操作:

打开软件,点击左上角的 “+” 加号图标。

基本参数

  • 服务器,IP , 默认3389
  • 用户名 ,(windows登录名)
  • 密码 ,(windows登录密码)
  • 色深, 真彩色(24bpp) 一定要改,不然会报错
  • 协议:选RDP(带windows图标的)
  • Pre Command : command %h %u %t %p %g --option
  • Post Command: /path/to/comand -opt1 org %u %t -opt2 %U %p %g

这个方案最后才留意到,简单测试了一下发现切换窗口没有FreeRDP好用,这个还是留作应急使用吧。

注:颜色一定要改,不然会报错!

打开界面

image-20220622042800669

评价:

  • 免安装,ubuntu自带。
  • 同时支持RDP和VNC协议。
  • 不用强制Windows 解除 (仅允许运行使用网络级别身份验证的远程桌面)
  • 初始连接速度快

其他

  1. 360弱口令攻击拦截功能可能会误拦连接请求(首次使用时不要多次输错密码)
  2. FreeRDP顶部没有返回浮窗,体验很好
  3. Ctrl+Alt+Enter可以切换全屏状态

参考资料:

https://www.jianshu.com/p/f6fcf5b56fe3

https://zhuanlan.zhihu.com/p/339632982

https://www.cnblogs.com/nulige/p/7766807.html

https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds

https://blog.csdn.net/qq_33764934/article/details/103511226

https://blog.csdn.net/snake1900/article/details/105973471

https://blog.csdn.net/qq_24574309/article/details/78434623

https://blog.csdn.net/u012300744/article/details/80267225

https://blog.csdn.net/kevinhg/article/details/5934462

https://blog.csdn.net/jonsenwu/article/details/104663867

https://blog.csdn.net/weixin_45702256/article/details/111885572

https://www.cnblogs.com/geoffreyone/p/9899732.html

最后修改:2022 年 06 月 22 日 04 : 50 AM

发表评论