• 1. 配置前准备
  • 升级更新(可选)
    # yum update
  • 安装额外yum源
    # yum install epel-release

  • 2. 安装Xfce
  • 1. 安装
    # yum groups install Xfce
  • 2. 配置Xfce(可选)
  • 安装中文字体
    # yum install wqy*
    也可以安装其他字体
  • 安装中文输入法
  • 安装ibus中文输入法
    # yum install ibus.x86_64
    # yum install ibus-libpinyin.x86_64
  • 安装输入法选择器
    # yum install im-chooser.x86_64
  • 设置Xfce中文显示
    # vim /etc/locale.conf
    LANG=en_US.UTF-8改为LANG=zh_CN.UTF-8
  • 配置xfce为默认桌面
    打开用户目录下的.Xclients文件
    # vim ~/.Xclients
    把下面内容写入文件:
    #!/bin/bash
    XFCE="$(which xfce4-session 2>/dev/null)"
    exec "$XFCE"
  • 增加权限
    # chmod +x ~/.Xclients
  • 重启xrdp
    # systemctl restart xrdp
    此时,通过远程桌面登录后,默认显示的就是Xfce桌面了。

  • 3. 安装XRDP
  • 1. 安装
    # yum install xrdp
  • 2. 安装与配置TigerVNC
    安装 # yum install tigervnc tigervnc-server
    详见步骤4
  • 3. 配置
  • 配置xrdp.ini文件
    需配置xrdp.ini,否则远程连接可能无法成功
    # vim /etc/xrdp/xrdp.ini
    把 max_bpp=32 改为 max_bpp=24
  • 配置SELinux
    需配置SELinux , 否则可能无法启动xrdp服务,或者启动出错
    # chcon -t bin_t /usr/sbin/xrdp
    # chcon -t bin_t /usr/sbin/xrdp-sesman
  • 4. 启动xrdp服务
  • 启动服务
    # systemctl start xrdp
  • 设为开机启动
    # systemctl enable xrdp
  • 5. 额外内容
  • 查看xrdp服务是否正常开启
    如果看到Active则说明正常
    # systemctl status xrdp.service
    看xrdp和xrdp-sesman是否正常启动
    # netstat -antup|grep xrdp
  • 设置防火墙(二选一)
  • 关闭防火墙
    # systemctl stop firewalld.service
    # systemctl disable firewalld.servie
  • 打开3389端口
    # firewall-cmd --permanent --zone=public --add-port=3389/tcp
    # firewall-cmd --reload
  • 客户端配置
    使用服务 Windows 自带的远程桌面连接程序进行连接。

  • 4. 安装TigerVNC
  • 1. 安装
    # yum install tigervnc tigervnc-server
  • 2. 设置vnc密码
    # vncpasswd
    如需为其他用户配置密码
    # vncpasswd user
    其中user为用户名,如 root
  • 3. 配置
  • 拷贝配置文件
    # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    其中 vncserver@:1.server 的 1 为服务实例编号。
    VNC服务可以设置多个服务实例。
    一个服务实例编号代表一个服务端口,VNC服务端口从5900开始。
    而 vncserver@:1.server 对应服务端口5901
    以此类推vncserver@:10.server 对应的服务端口为5910
  • 修改配置文件
    # vi /etc/systemd/system/vncserver@:1.service
    将 vncserver@:1.service 中
    ExecStart=/sbin/runuser -l <USER>-c "/usr/bin/vncserver %i"
    PIDFile=/home/<USER>/.vnc/%H%i.pid
    的 <USER> 改为你所需要通过VNC登陆的服务的用户名。
  • 刷新服务、设置自启、启动服务
  • 刷新服务
    # systemctl daemon-reload
  • 设置自启
    # systemctl enable vncserver@:1.service
  • 启动服务
    # systemctl start vncserver@:1.service
    若此处出现
    Job for vncserver@:1.service failed because a configured resource limit was exceeded. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.
    错误,请查看错误解决方案
  • 设置防火墙(如果开启了防火墙)
    # firewall-cmd --permanent --add-service vnc-server
    # systemctl restart firewalld.service
  • 客户端配置
    使用 Tightvnc viewer 或 Realvnc viewer 等客户端进行连接。
    如若配置了XRDP,则需要开设多个服务实例,否则无法进行连接。
  • 额外操作
    如若VNC连接后,只能看到一个空白的桌面并且不能操作。
    此时需要进行额外的操作。
    # vim /root/.vnc/xstartup
    将文件内容替换为
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
startxfce4 &

  • 错误解决方案
    执行设置自启# systemctl enable vncserver@:1.service时出现错误
    解决方法:
    将 vncserver@:1.service 中Type = forking改为Type = simple
    刷新服务
    # systemctl daemon-reload

注:本文章全程使用root用户进行操作