资讯动态

Windows与Linux双向远程桌面配置指南:xrdp、VNC与rdesktop实战

发布时间:2026/10/4 12:25:37 来源:尧图企业网站定制
简介这份PDF资料面向运维人员与系统管理员聚焦Windows与Linux双向远程桌面连接的实现方法解决跨平台远程访问中图形界面缺失、服务配置与端口放行等常见问题。资源包共1个PDF文件大小约64KB内容以CentOS 6.6为例涵盖Windows通过RDP连接Linux、Linux借助rdesktop或tsclient连接Windows以及Linux远程Linux的完整流程。文中具体涉及GNOME图形界面检查与安装、VNCServer与xrdp的部署配置、防火墙放行5900至5905及3389端口、全屏退出快捷键以及xrdp登录失败与最大会话数超限的排错思路。目前已有12738人学习下载适合需要快速掌握跨平台远程桌面配置与故障排查的读者参考。1. 双向远程桌面这件事比想象中更值得折腾很多人第一次接触远程桌面都是从一个很具体的场景开始的手边一台 Windows 笔记本机房或者云上跑着一台 Linux 服务器想直接在图形界面里点两下而不是对着黑漆漆的终端敲命令。反过来也一样Linux 桌面用久了偶尔要连回一台 Windows 机器处理点只能在 Windows 上跑的东西。这时候问题就来了——Windows 连 Linux 大家第一反应是 VNCLinux 连 Windows 大家第一反应是 rdesktop但真到动手的时候端口、防火墙、会话数、颜色深度这些细节一个接一个往外冒翻车往往就翻在这些地方。这份笔记围绕的就是 Windows 和 Linux 之间的双向远程桌面连接以 CentOS 6.6 为例把 Windows 远程 Linux走 xrdp VNC和 Linux 远程 Windows走 rdesktop/tsclient两条链路都拆开讲清楚。它适合两类人一类是刚接手一台 Linux 服务器、需要图形化操作但又不想装一堆重型工具的运维新手另一类是用惯了命令行、偶尔需要跨系统连一下、想把参数和坑一次性搞明白的老手。下面按“先能连上、再连得稳、最后知道哪里会炸”的顺序往下走。2. Windows 远程 Linuxxrdp 加 VNC 这条链路怎么搭Windows 自带的远程桌面走的是 RDP 协议而 Linux 默认并不认 RDP所以中间需要一个翻译层xrdp 干的就是这件事。它监听 3389 端口接收 RDP 请求再转给后端的 VNC 会话去渲染图形界面。理解了这个结构后面每一步配置就都有落点了GNOME 是画图的基础VNC Server 是实际干活的xrdp 是对外的门面。2.1 先确认 GNOME 图形界面在不在远程桌面本质上是把图形界面通过网络传过来如果服务器上压根没装桌面环境后面全是白搭。CentOS 6.6 最小化安装默认是不带 GNOME 的所以第一步先查。# 查询系统里是否已经装了桌面相关的包 rpm -qa | grep desktop如果输出里能看到 gnome-desktop 之类的包说明桌面环境已经就位可以跳到下一步。如果什么都没查到就得先补安装源再装图形界面# 安装 X 窗口系统、中文支持和桌面环境 yum -y groupinstall XWindowSystem Chinese Support Desktop这里三个组包各有分工XWindowSystem 是图形底层Chinese Support 负责中文显示不乱码Desktop 才是 GNOME 本体。少装任何一个后面连上去要么黑屏要么满屏方块。装完之后建议init 5切到图形模式确认一下能正常进桌面再继续。2.2 装 VNC Server 并设好登录密码xrdp 自己不画界面真正渲染的是 VNC 会话所以 VNC Server 必须先装好。在线环境直接 yum离线环境就本地 rpm 安装。# 在线安装 tigervnc-server yum -y install tigervnc-server # 或者离线本地安装版本按自己系统匹配 rpm -ivh tigervnc-server-1.1.0-18.el6.x86_64.rpm # 设置 VNC 登录密码这个密码是连 VNC 会话时用的 vncpasswdvncpasswd会让你输两遍密码这个密码和系统用户密码是两码事别搞混。设完之后要改配置文件把用户和显示号绑上去# 编辑 VNC 服务配置 vim /etc/sysconfig/vncservers # 在文件里加上类似这样一行1 表示显示号root 是登录用户 VNCSERVERS1:root VNCSERVERARGS[1]-geometry 1280x720显示号这个数字很关键它决定了后面端口是 5901 还是 5902。VNCSERVERS1:root里的 1 就是显示号对应端口 590015901。配好之后设开机启动并重启服务chkconfig vncserver on service vncserver restart2.3 装 xrdp 并调颜色深度VNC 就绪后装 xrdp 把 RDP 请求接进来。CentOS 6 的源里不一定有 xrdp所以先补 epel 库。# 安装 epel 扩展源 yum -y install epel-release # 安装 xrdp yum -y install xrdp离线环境可以去 rpmfind.net 搜对应版本比如rpm -ivh xrdp-0.6.1-5.el6.x86_64.rpm。装完先别急着启动改一个关键参数# 编辑 xrdp 主配置 vim /etc/xrdp/xrdp.ini # 把默认的 24 位色深改成 32 位 max_bpp32max_bpp控制颜色深度默认 24 在某些 Windows 客户端上会出现色彩异常或者连接后花屏改成 32 兼容性更好。改完启动服务并设开机自启chkconfig xrdp on service xrdp start2.4 防火墙放行端口服务都起来了连不上十有八九是防火墙。VNC 用 5900 到 5905 这一段按显示号递增xrdp 用 3389。# 放行 VNC 端口段和 xrdp 的 3389 iptables -I INPUT -p tcp --dport 5900:5905 -j ACCEPT iptables -I INPUT -p tcp --dport 3389 -j ACCEPT # 保存规则防止重启后失效 service iptables save端口范围不是固定的你有几个 VNC 会话就放到几。如果显示号开到 3那至少得放到 5903。放行完在 Windows 上打开远程桌面输入 Linux 服务器 IP弹出的 xrdp 登录框里选 sesman-Xvnc 模块填用户名和 VNC 密码就能进桌面了。3. Linux 远程 Windowsrdesktop 和 tsclient 怎么配反过来从 Linux 连 Windows 就简单多了因为 Windows 原生支持 RDPLinux 这边只需要一个 RDP 客户端。rdesktop 是命令行工具tsclient 是它的图形前端两个配合用最顺手。这条链路的核心不在 Linux 端而在 Windows 端有没有把远程桌面服务打开、防火墙有没有放行。3.1 Windows 端先把远程桌面打开这一步在 Windows 上操作不在 Linux 上。右键“计算机”进属性找到“远程设置”在“远程桌面”里选允许运行任意版本远程桌面的计算机连接。如果是 Windows 10 及以上路径在设置里的“系统 - 远程桌面”把开关打开就行。打开之后确认端口。Windows 远程桌面默认监听 3389如果被改过后面连接时要用IP:端口的格式。查端口可以在 Windows 命令行里跑# 在 Windows 的 cmd 里执行看 3389 是否在监听 netstat -ano | findstr 3389有 LISTENING 状态就说明服务在跑。接着放行防火墙# 在 Windows 防火墙里放行 3389或者直接允许远程桌面应用通过防火墙 netsh advfirewall firewall add rule nameRDP dirin actionallow protocolTCP localport33893.2 Linux 端装 rdesktop 和 tsclient回到 Linux装两个包就够了。# rdesktop 是核心的 RDP 客户端 yum -y install rdesktop # tsclient 是图形化前端方便保存会话 yum -y install tsclient装完之后如果你习惯命令行其实一条命令就能连# 直接连 Windows-g 指定分辨率-a 指定色深 rdesktop -g 1280x720 -a 16 192.168.1.100-g是窗口分辨率-a是颜色深度16 位在带宽紧张时更流畅24 位画质更好但吃带宽。如果 Windows 端口不是 3389写成192.168.1.100:13389这种格式。3.3 用 tsclient 保存会话配置命令行每次敲参数麻烦tsclient 可以把配置存下来。在 Linux 桌面里打开“应用程序 - Internet - 终端服务器客户机”点 Add Connection协议选 Windows Terminal Service然后依次填字段填什么说明Name自定义会话名比如 win-serverHostWindows 的 IP端口非默认时写 IP:端口UsernameWindows 用户名域用户写 域\用户名Password登录密码可留空连接时再输Resolution分辨率按显示器实际填Color Depth色深16 或 24保存后主界面双击会话就能连。这里有个细节如果 Windows 账户没设密码RDP 默认是拒绝连接的得先在 Windows 上给账户设个密码或者改组策略允许空密码连接但后者不安全不建议。3.4 Linux 远程 Linux 的 VNC 方式顺带把 Linux 连 Linux 也说一下因为很多人会混。Linux 连 Linux 走 VNC 更直接前提是被连的那台已经装好 VNC Server 并放行了端口。客户端这边同样用 tsclient协议选 VNCHost 填IP:显示号比如192.168.1.100:1密码就是之前vncpasswd设的那个。显示号对应端口 5900显示号填 1 就是连 5901。4. 避坑与排查连不上、连上黑屏、会话爆满怎么破远程桌面这类东西配置本身不难难的是出错时信息不直观。下面几条都是实际会撞上的按“现象 → 原因 → 解决”捋一遍。4.1 登录提示 login failed日志报 no display in range现象用户名密码都对但 xrdp 登录框一直提示xrdp_mm_process_login_response: login failed查/var/log/xrdp-sesman.log看到X server — no display in range is available。原因xrdp 的会话数达到上限了。默认配置下 MaxSessions 比较小之前的会话没正常释放新连接就分不到显示号。解决先清掉残留的 xrdp 进程再调大会话上限。# 杀掉所有残留的 xrdp 进程 ps -ef | grep xrdp | grep -v grep | awk {print $2} | xargs kill -9 # 编辑会话管理配置 vim /etc/xrdp/sesman.ini # 调大最大会话数并让断开的会话自动注销 MaxSessions100 KillDisconnected1 IdleTimeLimit1800 # 重启 xrdp 生效 service xrdp restartKillDisconnected1是关键它让断开连接的会话自动注销不然会话会一直占着显示号。IdleTimeLimit是空闲超时单位秒1800 就是半小时没操作自动断。4.2 连上后黑屏或者只有一片灰现象xrdp 登录成功但进去之后桌面是黑的或者只有一片灰色没有图标。原因GNOME 桌面环境没装全或者 VNC 会话启动时没加载到窗口管理器。解决先确认rpm -qa | grep desktop有输出没有就补装 groupinstall。如果装了还黑屏检查/root/.vnc/xstartup文件确保里面启动了 gnome-session# 查看 xstartup 内容 cat /root/.vnc/xstartup # 确保有类似这行没有就加上 gnome-session 改完重启 vncserver 和 xrdp。4.3 端口放行了还是连不上现象iptables 规则加了但 Windows 远程桌面还是提示找不到计算机。原因规则加在了错误的链上或者被前面的 DROP 规则拦了。-I INPUT是插到最前面如果用-A追加到末尾前面有 REJECT 规则就会先被拦。解决用iptables -L -n --line-numbers看规则顺序确认放行规则在拒绝规则之前。另外 CentOS 6 的 iptables 规则重启会丢记得service iptables save。4.4 全屏之后退不出来现象远程桌面进去默认全屏找不到退出按钮。原因不同客户端退出全屏的快捷键不一样不知道就容易卡住。解决Linux 远程 Linux 走 VNC 时按 F8弹出菜单里点 Exit Viewer 或者取消 Full Screen 勾选。Linux 远程 Windows 走 rdesktop 时按 CtrlAltEnter 切换全屏。这两个组合键记牢能省不少重启客户端的功夫。4.5 颜色异常或者花屏现象连上之后画面颜色不对或者有花屏条纹。原因色深不匹配。xrdp 默认 24 位某些 Windows 客户端协商时出问题。解决把/etc/xrdp/xrdp.ini里的max_bpp改成 32重启 xrdp。rdesktop 这边用-a 24或-a 32显式指定色深别用默认值。5. 把连接做成可复用的脚本和习惯配置调通只是第一步真正省事的是把常用连接固化成脚本下次一条命令或者双击一下就进去。我一般会在 Linux 上给每台常连的 Windows 写一个小脚本放在~/bin下加上执行权限用的时候直接敲名字。#!/bin/bash # 保存为 ~/bin/rdp-win.shchmod x 后可直接运行 # 连接公司内网的 Windows 开发机分辨率 1600x90024 位色深 rdesktop -g 1600x900 -a 24 -u developer -d COMPANY 192.168.1.100-u指定用户名-d指定域这两个参数在域环境里能省掉每次手动输的麻烦。如果密码也不想每次输可以加-p但明文密码写在脚本里不安全我一般用-p -让 rdesktop 交互式提示输入。Windows 连 Linux 这边可以把 xrdp 的连接信息存成.rdp文件双击直接连。用记事本新建一个文件内容如下# 保存为 linux-server.rdp双击即可用远程桌面打开 full address:s:192.168.1.200 username:s:root screen mode id:i:1 desktopwidth:i:1280 desktopheight:i:720 session bpp:i:32full address是目标 IPsession bpp对应色深和 xrdp 那边的 max_bpp 保持一致。这个文件的好处是不用每次在远程桌面里手填 IP发给同事也能直接用。验证连接是否稳定我习惯连上之后跑一个持续的操作比如拖动窗口、打开终端敲几条命令观察有没有卡顿或者断连。如果几分钟内频繁掉线多半是网络抖动或者会话超时设置太短回去看IdleTimeLimit和KillDisconnected这两个参数。另外 xrdp 的日志在/var/log/xrdp.log和/var/log/xrdp-sesman.log连不上时先看这两个文件比瞎猜快得多。从那以后我每次配完远程桌面都会先在本机用telnet IP 端口确认端口通不通再实际连一次最后把连接脚本和 rdp 文件一起归档。这套流程走下来基本不会再出现“配置都对但就是连不上”的玄学问题。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑