Mac下使用FreeRDP

FreeRDP是一个远程桌面协议(RDP)的实现,开源免费软件,在Apache许可下发布。要在MacOS系统下安装使用还是有些特别需要注意的地方,记录一下在Mac系统的安装具体步骤方便遇到类似问题的开发者进行参考。

Section1.安装openssl并配置环境变量

如果没有安装openssl请打开 terminalitem2 (以下统称终端)执行以下brew命令安装:

1
$ brew install openssl

配置openssl库包配置路径环境变量

编辑 ~/.bashrc~/.zshrc 配置文件,导出PKG_CONFIG_PATH环境变量,具体如下:

1
export PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig

保存之后要记得source一下配置文件,否则在当前终端下不生效:

1
$ source ~/.bashrc // 或 source ~/.zshrc 

Section2.安装X11及配置环境变量

在终端下执行如下命令,安装xquartz(X11):

1
$ brew install xquartz

设置X11的环境变量

在/tmp/com.apple.launchd.XXXXX目录下找到包含 org.xquartz:0 文件的具体路径。

1
2
$ ls /tmp/com.apple.launchd.7M2pVCoBMU/org.xquartz:0
/tmp/com.apple.launchd.7M2pVCoBMU/org.xquartz:0

将这个路径添加到 ~/.bashrc~/.zshrc 配置文件,具体如下:

1
export DISPLAY=/private/tmp/com.apple.launchd.7M2pVCoBMU/org.xquartz:0

保存之后记得source一下,不然在当前终端下不生效。

1
$ source ~/.bashrc // 或 source ~/.zshrc 

Section3.安装FreeRDP

FreeRDP项目网址为https://www.freerdp.com/,请点击链接打开项目官网。

FreeRDP项目网址

打开后直接点击 Download Now! 进入下载页面,可以看到MacOS下安装FreeRDP,官方推荐使用 brew 进行安装,在终端下执行如下命令安装:

1
$ brew install freerdp

连接远程桌面

成功安装freerdp工具后可以在终端下通过命令连接到远程Windows桌面。注意:Windows系统必须要打开允许远程协助功能,也可是开启3389端口,否则连接不成功!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
$ xfreerdp /v:192.168.1.3:3389 /w:1520 /h:820 /u:PC +wallpaper /sec-rdp /sound +glyph-cache
[12:18:45:473] [83501:0e2fc000] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[12:18:45:473] [83501:0e2fc000] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[12:18:45:473] [83501:0e2fc000] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[12:18:45:473] [83501:0e2fc000] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[12:18:45:473] [83501:0e2fc000] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
[12:18:45:492] [83501:0e2fc000] [INFO][com.freerdp.client.x11] - Property 352 does not exist
[12:18:45:828] [83501:0e2fc000] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[12:18:45:833] [83501:0e2fc000] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[12:18:45:833] [83501:0e2fc000] [INFO][com.freerdp.core] - freerdp_tcp_connect:freerdp_set_last_error_ex resetting error state
[12:18:45:920] [83501:0e2fc000] [WARN][com.freerdp.crypto] - Certificate verification failure 'self signed certificate (18)' at stack position 0
[12:18:45:920] [83501:0e2fc000] [WARN][com.freerdp.crypto] - CN = DESKTOP-6KIP342
Password: 
[12:18:51:547] [83501:0e2fc000] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[12:18:51:547] [83501:0e2fc000] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[12:18:51:562] [83501:0e2fc000] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[12:18:51:751] [83501:0e2fc000] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded mac backend for rdpsnd
[12:18:51:751] [83501:0e2fc000] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel rdpsnd
[12:18:52:415] [83501:0e9a3000] [INFO][com.freerdp.channels.rdpsnd.client] - [dynamic] Loaded mac backend for rdpsnd
[12:18:57:626] [83501:0e2fc000] [INFO][com.freerdp.core] - rdp_set_error_info:freerdp_set_last_error_ex resetting error state
[12:18:57:689] [83501:0e9a3000] [INFO][com.freerdp.channels.rdpsnd.client] - [dynamic] Loaded mac backend for rdpsnd

注意/size:"1520x820"这个参数及值,它可以是这种方式设置本地桌面显示远程桌面的大小,还可以通过 /w:1520/h:820 这种宽和高的方式指定。可以看到指定了一堆的参数,以下是这些具体的参数说明:

  • /v:IP:PORT: 要连接的远程Windows电脑IP和端口号。
  • /size:"1520x820": 设置连接成功后展示的远程桌面的窗口大小。
  • /u:USERNAME: 要连接到远程Windows电脑的用户名。
  • +wallpaper: 使用远程桌面壁纸。
  • /sec-rdp: 关闭RDP协议安全性。
  • /sound: 指定远程连接成功后可以接收到音频输出。
  • +glyph-cache: 开启Glyph缓存。

这些只是使用了一部分,更多FreeRDP命令行接口参数可以参考项目官方GithubWiki页面。

上面的启动过程也一并帖出来了,在加载到 Password: 时提示您输入远程Windows电脑的密码,输入密码后会启动 X11 并载入远程桌面:

FreeRDP项目网址

这个时间你就可以远程操作连接到的Window系统了,它有很多功能,你可以去具体学习一下,如通过调用功能函数库实现不使用密码截图远程登录界面等等吧~

参考:

comments powered by Disqus