xrdp简介

Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP之外,xrdp工具还接受来自其他RDP客户端的连接,如FreeRDP,rdesktop和NeutrinoRDP。 Xrdp现在支持TLS安全层。

1 安装xrdp

(请查看自己系统的位数,命令行输入arch, 如果是32位使用则选择i386,如果是64位,请选择x86_64,epel包的名字会对应的改变,查找的方法是到镜像网站http://mirrors.ustc.edu.cn/fedora/epel/7上进入到对应的目录,查到以epel-release开头的RPM包)

# 具体epel版本需要去http://mirrors.ustc.edu.cn/fedora/epel/找对应的版本
wget http://mirrors.ustc.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-7.noarch.rpm 
rpm -Uvh epel-release-7-7.noarch.rpm
yum install xrdp

可能需要的包openssl10依赖

如果依赖链接失效可以去http://mirror.centos.org/centos寻找对应版本的包

yum install http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm

2 安装 tigervnc

yum install tigervnc tigervnc-server

为用户设置vnc密码

vncpasswd root #为root用户设置vnc密码

如果需要其他用户vnc登入,也可以为其设置密码

passwd user

3 配置xrdp.ini文件,否则远程连接可能无法成功

vim /etc/xrdp/xrdp.ini

把max_bpp=32, 改为max_bpp=24

4 配置SELinux , 否则可能无法启动xrdp服务,或者启动出错

chcon -t bin_t /usr/sbin/xrdp
chcon -t bin_t /usr/sbin/xrdp-sesman

启动xrdp服务,并设置为开机启动

systemctl start xrdp
systemctl enable xrdp

6 查看xrdp服务是否正常启动

方法一

systemctl status xrdp.service #如果看到Active则说明正常
netstat -antup|grep xrdp #看xrdp和xrdp-sesman是否正常启动

方法二

systemctl status xrdp.service
ss -antup|grep xrdp

7 关闭防火墙,或者打开防火墙3389端口

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.servie

或者打开3389端口

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

无法登陆界面

rocky 安装iptables rocky 安装xrdp_rocky 安装iptables

解决方法1

关闭图形界面,init 3

init 3 # 启动完全多用户模式
init 5 # 启动X11图形界面
init 6 # 重启

原因:
在远程登录之后只有一个terminal,gnome根本不启动,提示一个could not acquire name on session bus错误。要host退出gnome(注销图形界面的用户,回到gdm的登录界面)

在X下terminal创建会话的用户明显已经登录gnome了,同一个登录用户当然不能在两个gnome下工作了,所以就会出现could not acquire name on session bus错误。

所以要使用vnc,只要在host的tty1~tty6下或者远程ssh登录后创建vnc会话就可以以gnome方式登录了。登录后还是打开一个很大的terminal窗口,关闭即可。

解决方法2

$ vncserver

New 'local-Kylin:1 (root)' desktop is local-Kylin:1

Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/local-Kylin:1.log

打开 “~/.vnc/xstartup” 文件,添加两行

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

重启Vnc

$ vncserver   -kill   :1
$ vncserver   :1     # 加上选项:  -geometry   <WIDTH>x<HEIGHT>  可设置分辨率
$ systemctl restart xrdp # 重启xrdp
$ systemctl status xrdp.service
$ ss -antup|grep xrdp # 查看xrdp状态

rocky 安装iptables rocky 安装xrdp_kylin_02