要通过 RDP(远程桌面协议)连接到 WSL 中的 Ubuntu 24.04,核心思路是在 Ubuntu 中安装一个 RDP 服务器(通常是 xrdp),然后使用 Windows 自带的“远程桌面连接”(mstsc.exe)工具进行连接。

方案一:安装 xRDP(主流且稳定)

这是最常用且兼容性最好的方案。

1. 准备工作:更新系统 在 WSL 的 Ubuntu 终端中,先执行更新命令,确保软件包列表是最新的:

1sudo apt update && sudo apt upgrade -y

2. 安装桌面环境与 xRDP (推荐选择 Xfce) 如果你不需要完整的 GNOME 桌面,轻量级的 Xfce 会更稳定、资源占用更少。

1# 安装 xfce4 桌面和 xrdp 服务
2sudo apt install xfce4 xrdp -y
  • (备选)安装 GNOME 桌面:如果偏好完整的 Ubuntu 体验,可以安装 ubuntu-desktop。但由于 GNOME 对 WSL 环境要求更高,可能更容易出现问题。
    1sudo apt install ubuntu-desktop xrdp -y
    

3. 配置 xRDP

  • 修改端口:为避免与 Windows 本身的 RDP 服务冲突,通常将 xrdp 的端口改为 3390
    1# 备份原配置文件
    2sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
    3# 修改端口
    4sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
    
  • 指定桌面环境(关键步骤):需要配置 xrdp 在连接时启动正确的桌面环境。
    • 如果使用 Xfce 桌面,执行以下命令:
      1# 创建 .xsession 文件,告诉系统启动 xfce4 会话
      2echo "xfce4-session" > ~/.xsession
      
      或者,直接编辑 /etc/xrdp/startwm.sh,在文件末尾 test -x /etc/X11/Xsession && exec /etc/X11/Xsession 这行之前加入 startxfce4。修改后该文件对应部分应类似:
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
exec startxfce4
        test -x /etc/X11/Xsession && exec /etc/X11/Xsession
*   **如果使用 GNOME 桌面**,需要额外步骤来设置环境变量并启用 Systemd。操作相对复杂,建议优先使用 Xfce。
  • 将 xrdp 用户添加到 ssl-cert 组:这一步可以解决部分权限问题,让连接更顺畅。
    1sudo adduser xrdp ssl-cert
    

4. 启动 xRDP 服务 完成配置后,启动服务并设置开机自启:

1sudo systemctl enable xrdp --now

(如果遇到 systemctl 命令报错,可尝试使用 sudo service xrdp start

5. 在 Windows 中连接

  • 获取 WSL IP 地址:WSL 的网络环境是隔离的,因此需要使用其 IP 地址,而非 localhost。在 Ubuntu 终端中运行:

    1ip addr show eth0 | grep inet
    

    记下输出的 IP 地址,例如 172.28.112.1

  • 发起连接

    • 在 Windows 中按 Win + R,输入 mstsc 并回车,打开“远程桌面连接”。
    • 在“计算机”栏中输入你刚才记下的 WSL IP 地址和端口号 3390,格式为 IP:3390(例如 172.28.112.1:3390)。
    • 点击“连接”,在弹出的登录界面中,输入你 WSL Ubuntu 的用户名和密码,并将“Session”选择为 Xorg,即可登录到 Ubuntu 桌面。

方案二:使用 Ubuntu 24.04 内置 RDP 功能

Ubuntu 24.04 的 GNOME 桌面环境内置了对 RDP 的支持,配置相对简单。但此方案要求 WSL 中已安装并配置好完整的 GNOME 桌面环境

1. 在 WSL Ubuntu 中启用远程桌面

  • 在 Ubuntu 桌面中,打开“设置”(Settings)。
  • 导航至“系统”(System) -> “远程桌面”(Remote Desktop)。
  • 开启“远程登录”(Remote Login) 开关,并设置好用户名和密码。

2. 在 Windows 中连接 与方案一类似,使用 Windows 远程桌面连接(mstsc),但端口可能不同。

  • 获取 WSL IP 地址ip addr show eth0 | grep inet
  • 发起连接:在 mstsc 中,输入 IP:3389(这是 Ubuntu 24.04 内置 RDP 服务的默认端口)。

常见问题与解决

  • 连接失败或闪退

    • 检查 xRDP 服务:确保服务已启动:sudo systemctl status xrdpsudo service xrdp status
    • 确认 IP 和端口:再次确认 WSL IP 地址没有变化,并确保使用的是 3390 端口。
    • 尝试切换桌面:如果使用 GNOME 有问题,可以切换到更稳定的 Xfce 方案。
    • 查看 xRDP 日志:检查 /var/log/xrdp.log 文件,寻找错误线索。
  • WSL IP 地址变化 WSL2 的 IP 地址在系统重启后可能会改变。建议每次连接前都重新运行 ip addr show eth0 | grep inet 获取最新 IP。也可以考虑在 Windows 的 hosts 文件中为 WSL 设置一个固定的主机名,但最稳妥的方式仍是每次连接前确认。

  • 登录后黑屏

    • Session 类型错误:在 xRDP 登录界面,确保 Session 选择的是 Xorg
    • 桌面环境未正确启动:检查 ~/.xsession 文件或 /etc/xrdp/startwm.sh 文件的配置是否正确指向了桌面环境(如 startxfce4)。
    • Wayland 兼容性:Ubuntu 24.04 默认使用 Wayland,可能与 xRDP 不兼容。可以尝试在 Ubuntu 登录界面(如果有)将桌面会话切换为 “Ubuntu on Xorg”。

如果仍然遇到困难,可以尝试重启 WSL:在 PowerShell 或 CMD 中运行 wsl --shutdown,然后重新启动 Ubuntu,再次尝试连接。