)
本文记录在 Windows 下通过 xrdp 远程连接 Ubuntu 的完整配置过程以及实际使用中遇到的卡顿、登录卡住等问题供有相同需求的同学参考。文中界面与命令以实际系统版本为准。一、方案说明与前提条件用 Windows 自带的远程桌面连接mstsc连接 Ubuntu需要满足以下几个条件Windows 端电脑具备远程桌面连接功能快捷键winR输入mstsc回车Ubuntu 端安装 xrdp 套件并开启远程桌面相关设置本文使用root 账户登录。出于安全考虑生产环境建议使用普通账户需要时再sudo提权。注意xrdp 需要 Ubuntu 具备图形桌面环境。Ubuntu Desktop 可以直接使用如果是最小化安装或 Server 版无桌面需要先安装桌面例如sudo apt install ubuntu-desktop或更轻量的sudo apt install xfce4。本文环境项目说明WindowsWindows 10 / 11Ubuntu22.04带图形界面网络局域网示例内网 IP192.168.11.38先说结论配置过程本身不复杂但使用体验一般——即使在内网操作也偏慢、有卡顿感偶尔还会出现输入密码后一直登不上、长时间不操作卡在验证界面的问题排查记录见第四节。二、Ubuntu 端安装与配置1. 安装 xrdpsudo apt-get update sudo apt-get install xrdp -y sudo apt-get install tightvncserver -ytightvncserver可一并安装部分教程要求如果 xrdp 使用 xorgxrdp 后端则不是必须的装上也不影响。2. xrdp 服务管理安装完成后 xrdp 默认会自动启动日常使用 systemctl 管理sudo systemctl enable xrdp.service # 开机自启安装后默认已启用 sudo systemctl start xrdp.service # 启动安装后已自动启动 sudo systemctl restart xrdp.service # 重启 sudo systemctl stop xrdp.service # 停止查看运行状态sudo systemctl status xrdp.service显示active (running)即表示服务正常运行。3. 注意系统自带的远程桌面端口冲突Ubuntu 的「设置 → 共享」中自带远程桌面 / 屏幕共享相关选项配图建议Ubuntu 设置中的远程桌面 / 屏幕共享界面这里有一个容易忽略的坑系统自带的远程桌面功能与 xrdp 默认都使用 3389 端口两套同时开启会互相冲突。本文方案以 xrdp 为准建议二选一如果之前开启过系统自带的功能建议先关闭再继续。4. 防火墙放行ufw先查看防火墙状态和已开放的端口sudo ufw status常用的 ufw 命令命令作用sudo ufw enable打开防火墙sudo ufw disable关闭防火墙不建议长期关闭sudo ufw allow 端口号开放端口sudo ufw deny 端口号关闭端口sudo ufw reload重新加载防火墙规则xrdp 默认使用 3389 端口需要放行sudo ufw allow from any to any port 3389 proto tcp # 等效写法sudo ufw allow 3389/tcp sudo ufw reload再次执行sudo ufw status确认应能看到 3389 对应的 ALLOW 记录。配图建议ufw 状态中显示 3389 已放行5. 设置 root 账户密码sudo passwd root按提示输入新密码建议 8 位以上不要过于简单太简单可能被系统拒绝。6. 查看 Ubuntu 的内网 IPifconfig配图建议ifconfig 输出记下内网 IP如果提示command not found可以先安装 net-toolssudo apt install net-tools -y或者直接使用ip addr查看。本文环境的内网 IP 为192.168.11.38以实际输出为准。三、Windows 端远程桌面连接按Win R输入mstsc回车或在开始菜单搜索“远程桌面连接”打开远程桌面连接配图建议远程桌面连接窗口输入 Ubuntu 的内网 IP 地址点击「连接」弹出「无法验证此远程计算机的身份」的提示时选择继续连接配图建议证书身份验证提示选择继续输入用户名root和刚才设置的密码点击确定配图建议输入 root 账户和密码登录成功可以看到 Ubuntu 桌面。四、踩坑记录卡顿与登录问题1. 卡顿在内网也很慢实际体验中即使在内网控制也特别慢操作有明显卡顿。xrdp 默认配置偏保守可以从以下几个方向尝试优化1Windows 客户端侧「远程桌面连接」→「显示」选项降低分辨率和颜色深度如 16 位色「体验」标签按实际网络情况选择较低的连接速度会自动启用压缩、关闭不必要的视觉效果。2调整 xrdp 配置编辑/etc/xrdp/xrdp.inimax_bpp16 tcp_send_buffer_bytes4194304 tcp_recv_buffer_bytes6291456tcp_send_buffer_bytes、tcp_recv_buffer_bytes两项默认被注释默认值 32768可根据实际带宽适当调整修改后重启 xrdp 服务生效。3调整系统网络参数写入/etc/sysctl.confnet.core.rmem_max 12582912 net.core.wmem_max 8388608执行sudo sysctl -p使其生效然后重启 xrdp 服务sudo systemctl restart xrdp4其他方向桌面环境尽量选轻量的如 xfce4GNOME 资源占用更高关闭花哨的壁纸和桌面特效——xrdp 对壁纸的传输效率很低会明显加剧卡顿如果服务器或链路本身带宽有限优化效果有限建议用有线网络再对比测试。2. 输入密码后一直登不上、卡在验证有时输入密码后一直登录不上去长时间不操作也容易卡在验证界面。可以按下面的顺序排查查看服务状态和日志sudo systemctl status xrdp sudo journalctl -u xrdp -n 50确认 3389 端口正在监听并看清是哪个进程在监听排查是否是系统自带远程桌面占用了端口sudo ss -tlnp | grep 3389避免本地会话占用GNOME 下同一账户本地已登录时远程会话可能创建失败建议先注销本地会话再连或专门为远程连接建一个账户Ubuntu 22.04 默认使用 Wayland与 xrdp 不兼容可切换为 Xorg编辑/etc/gdm3/custom.conf取消注释WaylandEnablefalse然后重启系统xrdp 用户缺少证书权限时sudo adduser xrdp ssl-cert sudo systemctl restart xrdp有残留会话导致异常时先查看并清理loginctl list-sessions sudo loginctl terminate-session 会话ID实在连不上时重启一次服务再试sudo systemctl restart xrdp3. 关于 22.04 的教程问题网上能搜到的 xrdp 教程大多是针对 Ubuntu 20.04 的22.04 的教程比较少而且一些 20.04 时代的“偏方”在 22.04 上要慎用——例如为修复黑屏而在/etc/xrdp/startwm.sh里添加unset DBUS_SESSION_BUS_ADDRESS、unset XDG_RUNTIME_DIR的做法有反馈在 20.04 可用但在 22.04 上反而可能导致闪退。本文流程在 22.04 下可以正常建立连接但卡顿和登录稳定性问题仍然存在暂时还没有完善的方案后续有进展再来更新。如果你有更好的解决办法欢迎在评论区交流。五、小结Ubuntu 端安装 xrdp tightvncserver→ 用 systemctl 管理服务 → 留意自带远程桌面的端口冲突 → ufw 放行 3389 → 设置 root 密码 → 用ifconfig查看内网 IPWindows 端mstsc打开远程桌面连接 → 输入 IP → 证书提示继续 → 输入 root 账户和密码遗留问题内网环境仍较卡顿、偶发登录卡住对应的排查与优化思路见第四节。参考链接Xrdp 体验优化减少/解决画面卡顿CSDNUbuntu 远程连接优化博客园How To Enable Remote Desktop Protocol Using xrdp on Ubuntu 22.04DigitalOcean