如何在 Ubuntu 上更改虚拟屏幕分辨率(通过 VNC 连接而不连接真实显示器)?

GJ.*_*GJ. 12 linux resolution xrandr ubuntu

我有一个 Ubuntu 服务器,无法物理访问它,只能通过 ssh/vnc。

它停留在 1680x1050 分辨率上,并且在系统显示设置中菜单被禁用,因为没有检测到连接的真实显示器。

我需要将分辨率降低到例如 800x600。

当我尝试:

$ xrandr --output VGA1 --mode 800x600
Run Code Online (Sandbox Code Playgroud)

我越来越:

xrandr: cannot find mode 800x600
Run Code Online (Sandbox Code Playgroud)

即使我第一次尝试,结果也是一样的:

$ xrandr --newmode "800x600_60.00"   38.25  800 832 912 1024  600 603 607 624 -hsync +vsync
Run Code Online (Sandbox Code Playgroud)

道具是:

$ xrandr --prop
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 4096 x 4096
VGA1 disconnected 1680x1050+0+0 (normal left inverted right x axis y axis) 593mm x 371mm
  1680x1050 (0x43)  146.2MHz
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock   65.3KHz
        v: height 1050 start 1053 end 1059 total 1089           clock   60.0Hz
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 11

听起来您正在使用 vino 服务器通过 VNC 共享桌面。尽管我认为您可以更改您的 /etc/X11/xorg.conf,或者现在的任何 X 配置文件,但我还有另一个建议。保留 X 配置并为您的 vnc 创建另一个会话。


安装 vnc

$ sudo apt-get install vnc4server
Run Code Online (Sandbox Code Playgroud)

创建 vnc 启动和停止脚本

文件

#!/bin/sh

vncserver :12 -name "My-Server" -geometry 1600x1100
Run Code Online (Sandbox Code Playgroud)

vnc-kill.sh

#!/bin/sh

vncserver -kill :12
Run Code Online (Sandbox Code Playgroud)

12 只是一个任意的显示数字。当您连接到服务器时,您将使用它。它可以是除 0 之外的任何数字。这是 vino 服务器默认使用的(我认为)。不要忘记 chmod +x 脚本。

可选:启动时启动 vnc 会话

将 vnc.sh 添加到您的 /etc/rc.local 中,以便在计算机启动时启动会话。sudo vi /etc/rc.local 并将其添加到“exit 0”之前的末尾

su - YourUserName -c "/home/YourUserName/bin/vnc.sh"
Run Code Online (Sandbox Code Playgroud)

我在这里以用户身份运行 vnc 服务器。我不希望服务器在根上下文下运行。当然,替换“YourUserName”。或者,你不需要把它放在这里,你可以 ssh 并手动运行“vnc.sh”脚本。您的来电。

设置你的 vnc 密码

(这个和其他vnc桌面密码是分开的)

$ vncpasswd
Run Code Online (Sandbox Code Playgroud)

编辑您的 vnc 会话文件

$ vi ~/.vnc/xstartup
Run Code Online (Sandbox Code Playgroud)

注释掉所有内容并将其放在最后

gnome-session &
Run Code Online (Sandbox Code Playgroud)

测试一下

运行您的 vnc.sh 脚本并从另一台计算机连接。

vncviewer.exe -connect Server:12
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,它非常适合新桌面。但是,我需要使用已经存在各种打开窗口的现有桌面。有没有办法可以连接到具有不同几何形状的原始显示器 :0? (2认同)

And*_*ter 1

您可以考虑更改 VNC 服务器上的分辨率吗?我不确定您的设置,但如果 VNC 服务器位于虚拟机上,您可以检查 vncserver 实例化点并更改-geometry那里的标志吗?

或者,我会查看 xorg.conf 并添加您正在寻找的模式,因为xrandr它说它不可用。本文涵盖 xorg.conf 编辑的基础知识