
VNC与云服务器
在上多智能体短学期课程的时候,碰到了实验——“基于 IsaacGym 的 Unitree G1 机器人平地行走实验”,其要求是:
前期准备:Isaac Gym Preview 4 Release 目前仅支持 Linux 操作系统(本地运行安装双系统,请勿使用 WSL,系统版本推荐 Ubuntu 20.04/22.04)
没想到双持用户还是逃不开环境的配置😇 整体上看,有两条解决路径:
- 在windows上独立安装一个Ubuntu系统
- 租用云服务器资源,但是需要配置VNC来实现可视化
经过短暂的调研,我发现方案1需要为新系统划分新的磁盘区域,同时下载不小容量的系统。考虑到我大概不会一直在我的windows上用到这个ubuntu,因此我转而采取方案2
整体而言,方案2涉及到的步骤包括:
- 准备云服务器
- 安装桌面环境和VNC服务器端
- 配置VNC
准备云服务器
在一众按月计费的产品中,我终于找到了腾讯云服务的按小时计费的计算资源——高性能应用服务:

选择合适的基础环境,勾选“按量计费”即可
之后可以在腾讯云-高性能应用服务中管理云服务:

首次创建之后默认开机,并且需要“重置密码”来设置一个密码
之后,可以通过ssh连接服务器:
1 | ssh ubuntu@<公网IP> |
公网IP可能随时间变化,注意参考最新的IP
然后输入之前设置好的密码即可连接

安装桌面环境和VNC服务端
VNC(Virtual Network Computing):
- 一种图形化远程控制协议和工具,允许用户通过网络远程访问和操作另一台计算机的桌面环境;
- VNC分为服务器端(VNC Server)和客户端(VNC Viewer)。服务器端运行在被控设备上,客户端运行在需要远程访问的设备上
在服务器领域,尤其是Linux服务器,默认通常只有命令行界面。如果需要图形化桌面环境,可以安装桌面环境并运行VNC Server。这样,远程用户就能通过VNC客户端访问服务器的完整图形桌面,进行可视化操作和管理。
因此,我们需要在之前的云服务器上先后安装桌面环境与VNC服务端,然后通过本地的VNC客户端来可视化访问云服务器端
安装xfce4
Xfce4(通常简称 Xfce)是一款轻量级、易于定制的 Linux/Unix 桌面环境。它的设计目标是实用、快速且节省系统资源
首先,确保系统是最新配置:
1 | sudo apt update |
然后,安装轻量的桌面环境,此处以 xfce4
为例:
1 | sudo apt install xfce4 |
安装TigerVNC
1 | sudo apt install tigervnc-standalone-server |
适用于
Ubuntu 20.04 LTS
及之后的版本
配置VNC Server
设置密码:
1
vncpasswd
启动VNC服务:
1
vncserver :1
这会在5901端口监听VNC连接
如果启动失败,很可能是vnc脚本的配置问题——~/.vnc/xstartup
指定了VNC启动的桌面环境。如果脚本内容与之前下载的桌面环境不匹配,就无法正常启动,此时我们需要改写该文件
- 用nano或vim编辑器打开脚本文件:
1 | nano ~/.vnc/xstartup |
- 将内部的文件改写如下:(以桌面环境xfce4为例)
1 | !/bin/sh |
- 确保脚本文件有执行权限:
1 | chmod +x ~/.vnc/xstartup |
- 重启VNC服务:
1 | vncserver -kill :1 # 关闭当前VNC会话 |

我们可以通过命令 vncserver -list
查看当前的VNC对话
使用VNC客户端连接服务器
此处以realvnc为例——官方的下载地址
安装完毕之后输入VNC server的 IP:端口
:

然后按照提示,输入之前在server初始化的时候设置的密码,即可连接
通过SSH隧道安全连接
查看5901端口监听的地址:
1 | netstat -tlnp | grep 5901 |
如果类似输出:
1 | (base) ubuntu@VM-0-5-ubuntu:~$ netstat -tlnp | grep 5901 |
说明此时云服务器端正在监听本机的端口,可以声明:
1 | vncserver :1 -localhost no |
此时可以监听所有IP。但是这样需要同步在腾讯云的云服务器处改写规则,允许监听所有IP,存在一定风险
如果担心VNC端口暴露在公网不安全,可以用SSH隧道方式进行加密连接:
本地开启端口转发:
1
2
3
4ssh -L 5901:localhost:5901 用户名@服务器IP
启动对话
vncserver :1客户端连接本地端口——在viewer中输入:
1
localhost:5901

至此,我们就可以使用本地的VNC client来操作图形化的云服务器 🎉
附录
可能遇到的问题
使用浏览器查看实验结果
实验中rl运行的结果在logs文件夹中如图所示:

第一个是TensorBoard日志文件,由框架自动生成,记录训练过程中的各种指标
为二进制形式,需要使用 Tensorboard 工具查看
1
2
3
4pip install tensorboard
tensorboard --logdir=.
或者指定名称 tensorboard --logdir=output
后续以
pt
结尾的文件是PyTorch模型权重文件 ,即保存的神经网络模型参数是模型快照
用PyTorch的
torch.load()
函数加载,用于测试、继续训练或推理1
2
3加载pt模型
import torch
model = torch.load('xxx.pt')
我首先尝试使用scp直接传输日志文件到本地,但是传输之后使用上述工具查看时显示:

唔, 我也不知道这是什么情况?可能是传输过程的问题?
于是,我尝试直接在服务器上查看,但是碰到了另一个问题——轻量级的桌面似乎没有自带的浏览器?(我点击下方的浏览器,弹出的却是Terminal),于是有两个方法——
在服务器端安装一个浏览器并查看:
1
2
3
4
5假设在6006端口
sudo apt install chromium-browser
chromium-browser http://localhost:6006使用之前提到过的SSH隧道的方法,将6006端口映射到本地:
1
ssh -L 6006:localhost:6006 user@server
此时我们就可以在本地查看日志:
使用训练完毕的模型
执行play
文件:
假设需要使用的模型快照路径为:
legged_gym/logs/rough_g1/Jul02_14-13-57_rough_g1/model_350.pt
1 | python legged_gym/legged_gym/scripts/play.py \ |
从一个模型快照继续训练
执行train
文件:
假设使用的模型快照与之前的相同
1 | python legged_gym/legged_gym/scripts/train.py \ |
通过
--resume
参数指定继续训练,
新的日志将会在指定的experiment_name
目录下生成
常用的VNC server命令
1 | 启动对话,默认监听本地 |
参考资料
- 标题: VNC与云服务器
- 作者: ffy
- 创建于 : 2025-06-28 18:34:17
- 更新于 : 2025-07-03 11:37:07
- 链接: https://ffy6511.github.io/2025/06/28/服务器/VNC与云服务器/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。