温馨提示×

ubuntu tigervnc如何切换分辨率

小樊
37
2025-11-23 06:23:47
栏目: 智能运维

Ubuntu 下 TigerVNC 切换分辨率的实用方法

一 临时切换分辨率

  • 查看当前会话与显示名:在 VNC 会话中执行
    • vncserver -list(确认显示编号,如 :1
    • xrandr(查看输出名,通常为 VNC-0
  • 直接指定新分辨率(会立即生效,但下次启动会恢复)
    • vncserver -kill :1
    • vncserver :1 -geometry 1920x1080
  • 说明:显示编号 :1 对应端口 5901(5900 + 显示编号)。

二 会话内动态切换并持久化到模式列表

  • 若目标分辨率不在列表中,先生成并添加模式(以 1600x900@60Hz 为例):
    • cvt 1600 900 60
    • xrandr --newmode “1600x900_60.00” 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
    • xrandr --addmode VNC-0 “1600x900_60.00”
    • xrandr --output VNC-0 --mode “1600x900_60.00”
  • 之后可在会话内随时用 xrandr 切换:
    • xrandr --output VNC-0 --mode “1600x900_60.00”
  • 提示:上述模式只在当前会话有效,重登后会丢失;如需持久,见下节的服务配置方式。

三 使用 systemd 服务设置默认分辨率

  • 编辑对应实例的服务文件(以 :1 为例):
    • sudo systemctl edit --full vncserver@:1.service
  • [Service] 的 ExecStart 行加入 -geometry 参数,例如:
    • ExecStart=/usr/bin/vncserver :%i -geometry 1920x1080 -localhost no
  • 使配置生效并重启:
    • sudo systemctl daemon-reload
    • sudo systemctl restart vncserver@:1.service
  • 说明:这是 Ubuntu 上 TigerVNC 推荐的做法,可确保每次启动都使用设定分辨率。

四 常见问题与排查

  • 客户端里没有目标分辨率:先用 xrandr 确认输出名(如 VNC-0),再用 cvt 生成模式并 –newmode/–addmode/–output 添加后切换。
  • 设置后黑屏或客户端断开:这是添加新模式后的常见现象,重新连接即可看到新分辨率生效。
  • 端口与防火墙:显示编号 :1 对应端口 5901;确保云服务器或本机防火墙放行该端口。

0