Xrdp-从Windows通过RDP连接Ubuntu Linux远程桌面

时间:2020-03-05 15:30:13  来源:igfitidea点击:

Xrdp是一个开放源代码工具,允许用户通过Windows RDP访问Linux远程桌面。

除Windows RDP之外,xrdp工具还接受来自其他RDP客户端(如FreeRDP,rdesktop和NeutrinoRDP)的连接。
Xrdp现在支持TLS安全层。

Xrdp要求

  • xrdp和xorgxrdp软件包
  • 收听3389/tcp。确保防火墙接受连接

在本文中,我将展示如何使用Xrdp工具从Windows机器远程连接到Ubuntu桌面。

1)在Linux上安装

在Ubuntu 18.04上

首先,我们需要在Ubuntu上安装Xrdp

# apt install xrdp
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  xorgxrdp
Suggested packages:
  guacamole xrdp-pulseaudio-installer
The following NEW packages will be installed:
  xorgxrdp xrdp
0 upgraded, 2 newly installed, 0 to remove and 256 not upgraded.
Need to get 498 kB of archives.
After this operation, 3,303 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

我们必须配置polkit规则,以避免在Windows的xrdp登录屏幕上输入用户名和密码后出现身份验证弹出窗口

# vim /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf 
polkit.addRule(function(action, subject) {
if ((action.id == “org.freedesktop.color-manager.create-device” || action.id == “org.freedesktop.color-manager.create-profile” || action.id == “org.freedesktop.color-manager.delete-device” || action.id == “org.freedesktop.color-manager.delete-profile” || action.id == “org.freedesktop.color-manager.modify-device” || action.id == “org.freedesktop.color-manager.modify-profile”) && subject.isInGroup(“{group}”))
{
return polkit.Result.YES;
}
});

重新启动xrdp服务

# systemctl restart xrdp

然后确保服务正在运行

# systemctl status xrdp
● xrdp.service - xrdp daemon
   Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: en
   Active: active (running) since Tue 2016-10-16 02:05:21 WAT; 11min ago
     Docs: man:xrdp(8)
           man:xrdp.ini(5)
 Main PID: 2654 (xrdp)
    Tasks: 1 (limit: 2290)
   CGroup: /system.slice/xrdp.service
           └─2654 /usr/sbin/xrdp

现在确保在系统启动时自动启动服务

# systemctl enable xrdp
Synchronizing state of xrdp.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable xrdp

现在,我们将需要检查IP地址,因为连接时将需要它

# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ef:f6:9b brd ff:ff:ff:ff:ff:ff
    inet 172.16.8.177/24 brd 172.16.8.255 scope global dynamic noprefixroute ens33

我的IP地址是'172.16.8.177'。
因此,请牢记在心。

Xrdp可与端口3389配合使用,因此请确保将其打开。
UFW默认情况下处于禁用状态,因此我们将需要启用防火墙并为xrdp创建规则

# ufw enable
# ufw allow 3389/tcp

现在我们可以在Windows端继续配置

在Centos/Redhat 7上

确保在安装Epel储存库之前

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

现在安装xrdp软件包

# yum update && yum -y install xrdp tigervnc-server

在防火墙中添加规则。
在Centos/RedHat上不是ufw,而是使用firewalld进行配置

# firewall-cmd --permanent --zone=public --add-port=3389/tcp

然后重新加载防火墙

# firewall-cmd --reload

现在启用并重新启动xrdp服务

# systemctl enable xrdp && systemctl restart xrdp

在Windows上检查IP地址以进行远程连接

2)从Windows连接

在Windows机器(例如Windows 10)上,启动默认的远程桌面连接工具。

我们将需要输入计算机的IP地址,并要求我们输入用户名

访问Ubuntu/CentOS的远程桌面

输入IP地址和用户名

现在确认信息并启动连接。
如果我们未在本地注销,则远程登录将失败。

现在将要求我们输入密码