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
无法登陆界面
解决方法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状态