【deepin】通过x11vnc与xrdp实现Windows无缝远程控制deepin桌面

张开发
2026/4/12 4:29:38 15 分钟阅读

分享文章

【deepin】通过x11vnc与xrdp实现Windows无缝远程控制deepin桌面
1. 为什么需要远程控制deepin桌面作为一个长期使用deepin系统的开发者我经常遇到需要在Windows电脑上远程操作deepin桌面的场景。比如在家办公时想用Windows笔记本访问公司的deepin开发机或者给使用deepin的朋友远程解决问题。传统的TeamViewer等工具虽然方便但存在连接速度慢、需要第三方服务器中转等问题。x11vnc和xrdp的组合完美解决了这个痛点。x11vnc可以直接捕获deepin的X11桌面而xrdp则提供了Windows原生远程桌面协议(RDP)的支持。实测下来这种方案延迟低、画质好特别是在局域网环境下几乎感觉不到卡顿。最重要的是完全免费不需要依赖任何第三方服务。2. 环境准备与基础配置2.1 系统要求与初始设置我测试使用的是deepin 20.9社区版当前最新稳定版本无论是物理机还是虚拟机都适用。首先确保系统已经更新到最新sudo apt update sudo apt upgrade -y远程管理需要root权限建议先设置root密码sudo passwd root为了方便后续操作建议开启SSH服务sudo systemctl start ssh sudo systemctl enable ssh注意deepin默认禁止root直接SSH登录建议使用普通用户登录后再切换root。如果确实需要root远程登录需要修改/etc/ssh/sshd_config中的PermitRootLogin选项但不建议这样做。2.2 防火墙配置deepin默认使用ufw防火墙需要放行相关端口sudo ufw allow 3389/tcp # xrdp默认端口 sudo ufw allow 5900/tcp # x11vnc默认端口 sudo ufw enable3. 安装配置x11vnc服务3.1 安装与密码设置x11vnc可以直接通过apt安装sudo apt install x11vnc -y设置访问密码我习惯放在/etc目录下方便管理sudo x11vnc -storepasswd /etc/x11vnc.pass执行后会提示输入并确认密码。这个密码文件会被加密存储后续连接时需要用到。3.2 创建系统服务为了让x11vnc开机自启需要创建systemd服务文件sudo vim /lib/systemd/system/x11vnc.service写入以下内容这是我优化过的参数比默认配置更稳定[Unit] DescriptionStart x11vnc at startup Afterdisplay-manager.service network.target [Service] Typesimple ExecStart/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -o /var/log/x11vnc.log [Install] WantedBymulti-user.target关键参数说明-auth guess自动识别X11认证文件位置-forever -loop保持持久连接-noxdamage提高老旧硬件的兼容性-o /var/log/x11vnc.log输出日志方便排查问题3.3 启动与测试服务启用并启动服务sudo systemctl daemon-reload sudo systemctl enable x11vnc sudo systemctl start x11vnc检查服务状态sudo systemctl status x11vnc如果看到active (running)就说明服务启动成功了。可以用VNC客户端如TightVNC测试连接地址填deepinIP:5900。4. 安装配置xrdp服务4.1 基础安装xrdp的安装同样简单sudo apt install xrdp -y安装完成后会自动创建xrdp服务。检查状态sudo systemctl status xrdp4.2 优化配置默认配置可能需要调整编辑配置文件sudo vim /etc/xrdp/xrdp.ini建议修改以下参数port3389 max_bpp24 # 色彩深度 use_compressionyes对于deepin特别需要设置正确的会话类型sudo vim /etc/xrdp/startwm.sh在文件开头添加export GNOME_SHELL_SESSION_MODEdeepin export XDG_CURRENT_DESKTOPdeepin4.3 解决常见问题xrdp连接后黑屏试试这个解决方案sudo sed -i s/allowed_usersconsole/allowed_usersanybody/ /etc/X11/Xwrapper.config音频重定向需要额外安装sudo apt install pulseaudio-module-xrdp5. Windows远程连接实战5.1 使用原生远程桌面连接在Windows搜索远程桌面连接输入deepin的IP地址点击连接。首次连接会提示证书警告勾选不再询问后继续。登录界面选择Xorg会话输入deepin的用户名和密码不是x11vnc的密码。连接成功后就能看到完整的deepin桌面了。5.2 高级技巧与优化多显示器支持 在远程桌面连接的高级选项中可以设置远程会话使用多个显示器。本地资源重定向 可以映射本地磁盘、打印机等设备到远程会话在远程桌面连接 → 本地资源 → 更多中勾选需要重定向的设备网络优化 如果感觉卡顿可以尝试降低颜色深度到16位禁用壁纸和动画效果在xrdp.ini中调整use_compressionyes6. 安全加固建议6.1 修改默认端口降低被扫描的风险修改xrdp端口sudo sed -i s/port3389/port53389/ /etc/xrdp/xrdp.ini记得同步更新防火墙规则。6.2 使用SSL加密生成自签名证书sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/xrdp/key.pem -out /etc/xrdp/cert.pem -days 365 -nodes然后在xrdp.ini中配置ssl_protocolsTLSv1.2, TLSv1.3 certificate/etc/xrdp/cert.pem key_file/etc/xrdp/key.pem6.3 限制访问IP如果只在固定网络使用可以限制访问来源sudo ufw allow from 192.168.1.0/24 to any port 533897. 常见问题排查连接被拒绝检查防火墙设置确认服务正在运行sudo systemctl status xrdp查看日志sudo tail -f /var/log/xrdp.log登录后闪退检查startwm.sh配置是否正确尝试在登录界面选择不同的会话类型Xorg或Xvnc画面卡顿降低颜色质量关闭桌面特效检查网络带宽我在实际使用中发现deepin与xrdp的配合偶尔会有小问题特别是在升级系统后。遇到问题时可以尝试重新安装xrdpsudo apt purge xrdp x11vnc sudo apt install xrdp x11vnc记得备份你的配置文件。这套方案我已经稳定使用了一年多基本上能满足日常远程办公的所有需求。对于开发者来说能够在Windows下无缝操作Linux环境工作效率提升非常明显。

更多文章