麒麟OS需手动部署VNC或xRDP实现图形化远程访问:VNC适用于服务器版,配置tigervnc-server并开放5901端口;xRDP推荐用于桌面版,安装xrdp后启用Xorg会话并监听3389端口;均需配置防火墙及SELinux策略。

如果您在麒麟OS上需要实现图形化远程访问,但系统未提供开箱即用的远程桌面功能,则需手动部署VNC或xRDP服务。以下是针对麒麟OS(含桌面版与服务器版)分别搭建VNC与xRDP远程桌面连接的具体方法:
一、安装并配置VNC服务(适用于麒麟服务器版及部分桌面版)
VNC基于RFB协议,以图像帧传输方式工作,兼容性高,适合对音频、USB映射无强需求的管理场景。在麒麟服务器版(基于CentOS/RHEL系)中,推荐使用tigervnc-server。
1、确认系统版本并安装桌面环境(若未安装):
执行 cat /etc/os-release 查看ID字段,若为“kylin”且VERSION_ID为“V10”,则需先安装GNOME或XFCE桌面;运行 yum groupinstall "gnome desktop" -y(服务器版)或 sudo apt install xfce4 -y(桌面版)。
2、安装tigervnc-server:
执行 sudo yum install tigervnc-server -y(麒麟服务器版V10)或 sudo apt install tightvncserver -y(麒麟桌面版基于Debian)。
3、复制并配置服务单元文件:
执行 cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service,随后编辑该文件,在[Service]段内将 User=root 替换为实际登录用户(如kylin),并将 ExecStart 行修改为指向用户主目录下的vnc启动脚本,例如 /usr/bin/vncserver %i -geometry 1280x720 -depth 24。
4、设置VNC密码并启用服务:
切换至目标用户后执行 vncpasswd 设置密码;再执行 sudo systemctl daemon-reload、sudo systemctl enable vncserver@:1.service、sudo systemctl start vncserver@:1.service。
5、开放防火墙端口:
执行 sudo firewall-cmd --permanent --add-port=5901/tcp 并运行 sudo firewall-cmd --reload(服务器版);若使用iptables,则执行 sudo iptables -A INPUT -p tcp --dport 5901 -j ACCEPT。
二、安装并配置xRDP服务(推荐用于麒麟桌面版及信创终端)
xRDP实现RDP协议兼容,支持Xorg会话、本地磁盘映射与更高色彩保真度,更适合日常办公与虚拟桌面场景。在麒麟桌面版(基于Debian)中优先采用APT安装;服务器版则需通过RPM或源码安装适配版本。
1、桌面版(Kylin Desktop V10)一键安装:
执行 sudo apt update && sudo apt install xrdp xorgxrdp -y;安装完成后检查服务状态:sudo systemctl status xrdp,确认显示 active (running)。
2、服务器版(Kylin Advanced Server V10)RPM安装:
下载适配EL8架构的包:wget https://rhel.pkgs.org/8/epel-x86_64/xrdp-0.9.21-1.el8.x86_64.rpm;执行 sudo rpm -Uvh xrdp-0.9.21-1.el8.x86_64.rpm;再安装依赖包 xorgxrdp(需同步下载对应版本rpm并安装)。
3、启用Xorg会话(关键步骤):
编辑 /etc/xrdp/xrdp.ini,定位到[Xorg]节,将 enabled=false 改为 enabled=true;再编辑 /etc/xrdp/sesman.ini,在[Globals]节下确保 Xorg=true。
4、重启服务并验证端口监听:
执行 sudo systemctl restart xrdp;运行 sudo ss -tlnp | grep :3389,确认xrdp进程正监听3389端口。
5、添加用户至ssl-cert组(防证书错误):
执行 sudo adduser xrdp ssl-cert;若使用非root账户登录,还需确保该用户属于 xrdp 用户组:sudo usermod -a -G xrdp
三、防火墙与网络策略配置(通用步骤)
无论选用VNC或xRDP,均需确保底层网络允许对应端口通信。麒麟OS默认启用firewalld或iptables,配置必须显式放行,否则客户端连接将超时或被拒绝。
1、若系统运行firewalld:
执行 sudo firewall-cmd --permanent --add-port=3389/tcp(xRDP)或 sudo firewall-cmd --permanent --add-port=5901/tcp(VNC);随后执行 sudo firewall-cmd --reload。
2、若系统使用iptables:
执行 sudo iptables -A INPUT -p tcp --dport 3389 -j ACCEPT 或 sudo iptables -A INPUT -p tcp --dport 5901 -j ACCEPT;保存规则:sudo iptables-save > /etc/sysconfig/iptables(部分麒麟版本路径为 /etc/iptables/rules.v4)。
3、检查SELinux状态(仅服务器版适用):
执行 getenforce;若返回 Enforcing,临时设为permissive:sudo setenforce 0;如需永久生效,编辑 /etc/selinux/config,将 SELINUX=enforcing 改为 SELINUX=permissive。
四、客户端连接与登录验证
完成服务部署后,须使用标准RDP或VNC客户端发起连接,并正确选择会话类型,否则将出现黑屏、闪退或认证失败。
1、Windows客户端连接xRDP:
打开“远程桌面连接”,输入麒麟OS的IP地址;连接后在登录界面右下角点击“选项”,在“显示”页签中勾选 使用所有显示器;在“体验”页签中将视觉效果设为 低;登录时选择会话类型为 Xorg(非VNC或Xvnc)。
2、Windows客户端连接VNC:
使用TigerVNC Viewer或RealVNC Client,输入 IP地址:5901(冒号后为display号);首次连接可能提示证书不信任,点击“继续”;输入vncpasswd设置的密码,而非系统账户密码(除非已配置PAM集成)。
3、Linux/macOS客户端连接xRDP:
使用 xfreerdp /v:192.168.1.100 /u:kylin /p:mypassword /sec:nla;若遇NLA认证失败,可在xrdp.ini中将 security_layer=rdp 或临时禁用NLA:crypt_level=low。
4、登录后若仅显示灰屏或无法加载桌面:
检查用户主目录下是否存在 ~/.vnc/xstartup(VNC)或 ~/.xsession(xRDP);确保其具备可执行权限,并首行包含 exec xfce4-session 或 exec gnome-session(依所装桌面而定)。










