基于 Windows + Ubuntu 练习 MuJoCo 模拟
在本地 Windows 电脑上学习 MuJoCo 时,如果服务器是无图形界面的 Ubuntu 环境,最常见的问题是:仿真程序可以运行,但看不到 MuJoCo Viewer 的可视化窗口。本文记录了一套基于 Windows + Ubuntu 服务器的 MuJoCo 可视化配置流程,使用 XFCE 图形桌面与 TigerVNC 搭建远程桌面环境,并通过 SSH 隧道在本地安全访问服务器上的 MuJoCo 仿真画面。该流程适合用于 MuJoCo 入门、强化学习环境调试、机械臂仿真观察,以及后续基于 Gymnasium / Gymnasium-Robotics 的具身智能学习。
服务器配置
| 操作系统 | Ubuntu `22.04.5 LTS` |
| CPU | `16` 核心 |
| 内存 | `80 GB` |
| GPU | NVIDIA GeForce RTX `4090 D`,显存约 `24 GB` |
| NVIDIA 驱动 | `580.76.05` |
| CUDA 兼容版本 | `13.0` |
| Conda | `24.4.0` |
—— 服务器选择可以参考我的配置,我使用的服务器提供商是 AutoDL,具体配置根据任务强度调整。
Ubuntu 配置步骤
环境配置
- 基于ubuntu镜像,在服务器终端执行如下代码:
这一步是在 Ubuntu 服务器上安装 MuJoCo 可视化所需的基础工具、XFCE 图形桌面、TigerVNC 远程桌面服务,以及 OpenGL/Mesa 等渲染依赖,使无显示器的云服务器能够通过 VNC 打开并观察 MuJoCo 仿真画面。
apt-get updateDEBIAN_FRONTEND=noninteractive apt-get install -y \git tmux ffmpeg \xfce4 xfce4-goodies dbus-x11 xauth \tigervnc-standalone-server tigervnc-tools \libgl1 libegl1 libglfw3 libgl1-mesa-dri mesa-utils
- 创建一次性完整 Python 环境 (建议用conda管理环境):
conda create -n mujoco-learning python=3.10 -y
conda activate mujoco-learningpip install \mujoco \numpy scipy matplotlib \imageio imageio-ffmpeg \gymnasium[mujoco] gymnasium-robotics \torch stable-baselines3 tensorboard
MuJoCo 官方 Python 包已经包含 MuJoCo 动态库,不需要单独下载桌面安装程序。
配置 VNC
- 在服务器执行:
vncpasswd
mkdir -p /root/.vnc
- 创建 /root/.vnc/xstartup:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec dbus-launch --exit-with-session startxfce4
- 然后:
chmod +x /root/.vnc/xstartuptigervncserver :1 \-localhost yes \-geometry 1600x900 \-depth 24
其中 ” :1” 对应服务器端口:5900 + 1 = 5901
不要把 VNC 端口直接暴露到公网。-localhost yes 表示 VNC 只监听服务器本机地址,必须通过 SSH 隧道访问,安全性更高。
在配置自动启动之前,每次 AutoDL 重新开机后,需要重新启动一次
tigervncserver :1
Windows 连接方式
- 在 Windows PowerShell 中建立隧道,运行(假设使用 AutoDL 作为服务器提供商):
ssh -CNg -L 5901:127.0.0.1:5901 root@<AUTODL_HOST> -p <SSH_PORT>
其中 root@<AUTODL_HOST> 和 <SSH_PORT> 以及密码 ****通过AutoDL的SSH获取。

保持 PowerShell 窗口运行。
切换 Wi-Fi 后,原 SSH 连接通常会断开,需重新打开 PowerShell 连接。
- 打开本地 TigerVNC Viewer,连接:
127.0.0.1:5901
如果一切正常将进入可视化桌面:

AutoDL 官方说明,个人用户可以使用 SSH 隧道代理任意端口,因此不需要企业认证,也不需要占用平台公开映射的 6006 或 6008 端口。
如果仍然失败,先普通登录 AutoDL:
ssh root@<AUTODL_HOST> -p <SSH_PORT>
在服务器检查 VNC:
tigervncserver -list
如果没有 :1 会话,重新启动:
cd /root/autodl-tmp/repos/mujoco-learning
bash server/start_vnc.sh
启动 MuJoCo Viewer
在 AutoDL 控制台输入
export DISPLAY=:1
python -m mujoco.viewer --[path].xml
切换到 TigerVNC Viewer 即可看到 MuJoCo 环境窗口:

Q & A
记录交互式学习过程中遇到的问题与解决办法,持续更新。
- 在 ubuntu 终端尝试执行 python -m mujoco_viewer 时发生如下报错
/root/miniconda3/envs/mujoco-learning/lib/python3.10/site-packages/glfw/**init**.py:917: GLFWError: (65550) b'X11: Failed to open display :1'
warnings.warn(message, GLFWError)
ERROR: could not initialize GLFW
这个报错说明:DISPLAY=:1 上没有可用的 X/VNC 桌面,所以 MuJoCo Viewer 的 GLFW 窗口打不开。服务器可能经历过重启,尝试输入以下命令后重新运行 mujoco-viewer:
tigervncserver :1
