如何在不重新启动 VNC 服务器的情况下更改其屏幕分辨率?

如何在不重新启动 VNC 服务器的情况下更改其屏幕分辨率?

是否可以使用 geometry 命令行参数更改启动 vnc 服务器时指定的查看器的分辨率?我有一个为宽屏显示器配置的 vncserver,但我想在 1024x768 屏幕上查看它。

答案1

UltraVNC 查看器支持自动缩放,因此它会自动调整查看窗口的大小,以显示远程服务器的整个屏幕。

VNC 查看器

更新

两个都RealVNCTightVNC显示/桌面缩放。

答案2

不久前在 stack overflow 上有人问过同样的问题:https://stackoverflow.com/questions/15816/changing-the-resolution-of-a-vnc-session-in-linux

Nathan Fellman 接受的答案是:

Real VNC 服务器 4.4 包含对 Xrandr 的支持,允许调整 VNC 的大小。使用以下命令启动服务器:

vncserver -geometry 1600x1200 -randr 1600x1200,1440x900,1024x768

然后使用以下方法调整大小:

xrandr -s 1600x1200
xrandr -s 1440x900  
xrandr -s 1024x768  

答案3

TigerVNCWindows VNC 客户端(查看器)自动分辨率开箱即用。无需在客户端或服务器上的任何地方设置任何东西。首次连接到服务器时,分辨率设置为服务器端预设的任何分辨率,但您可以通过调整客户端窗口大小轻松更改它;将其设置为任何分辨率,任何您想要的疯狂、非标准、临时分辨率。远程桌面分辨率(例如 KDE)可顺利遵循您的客户端窗口分辨率。

在此处输入图片描述

在此处输入图片描述

检查是否设置了“将远程会话调整为本地窗口大小”。它应该是默认的。

请不要混淆自动分辨率更改与图像拉伸,也称为自动缩放。除非您有视力障碍,否则这种校准几乎毫无用处。它的工作原理如下飞涨或者镜子在流行的位图编辑器中。它只是通过拉伸输出图像来使像素变大(或变小)。如果拉伸太多,会显著降低图像质量。

用户通常想要的是远程会话的真正分辨率变化。这就是我之前所说的,也是 TigetVNC 客户端能够做到的,前提是服务器具有匹配的功能。自动分辨率可使图像在任何尺寸下都保持清晰。缺点是它也会增加网络带宽。

到目前为止我发现只有 TigerVNC 具有自动解析功能。我测试了 TightVNC(开源)、RealVNC(免费版)和 UltraVNC(开源),但都没有成功,它们最多只能提供无用的自动缩放功能。

TigerVNC 主页:https://tigervnc.org/
TigerVNC 来源:https://github.com/TigerVNC/tigervnc
TigerVNC 在 GitHub 上发布:https://github.com/TigerVNC/tigervnc/releases
TigerVNC 二进制文件下载:https://sourceforge.net/projects/tigervnc/files/stable/

如果你只想要查看器,那么只下载查看器,例如vncviewer64-1.12.0.exe,这只是一个查看器,没有捆绑 VNC 服务器。请注意,TigerVNC 服务器服务会在后台自动、静默地启动,我非常讨厌这可能带来的安全威胁。

我的服务器运行时没有-randr任何设置,只是基本设置-geometry 1024x768。此低分辨率仅在您首次连接时使用,但之后您可以通过调整客户端窗口大小来更改分辨率。如果您好奇,以下是我的完整 VNC 服务器命令:

/usr/bin/Xvnc -log *:syslog:30,TcpSocket:syslog:-1 -inetd -MaxDisconnectionTime=5 -securitytypes=none -displayfd 10 -geometry 1024x768 -AllowOverride=Desktop,AcceptPointerEvents,SendCutText,AcceptCutText,MaxDisconnectionTime,MaxConnectionTime,MaxIdleTime,QueryConnect,QueryConnectTimeOut,AlwaysShared,NeverShared,DisconnectClients,SecurityTypes,Password,PlainUsers -query localhost -once -desktop New session -extension MIT-SHM

根据 openSuse 软件包描述,xorg-x11-XvncopenSuse VNC 服务器基于 TigerVNC 代码构建。因此,在我的例子中,TigerVNC 客户端与 TigerVNC 服务器通信,因此也许这就是为什么一切都如此无缝的原因 :)

我的客户端设置:TigerVNC 客户端 1.9.0(Windows)
我的服务器设置:openSuse 15.1、xorg-x11-Xvnc 1.9.0、vncmanager 1.0.2、GDM、KDE ​​Plasma。

答案4

我写信给VNC客服收到了官方回复。

简短版本是:不,您无法更改远程分辨率以自动匹配本地 vnc 控制器窗口/屏幕分辨率。

他们告诉我,这是因为 RDP 是一个真正的登录会话,所以屏幕表现得就像你是受控系统中的普通用户一样。

VNC 只是镜像屏幕。这并不是一件坏事,因为您无法共享 RDP 会话,但您可以共享 VNC

我建议在 vnc 服务器上创建一个配置以允许屏幕更改,因为我知道 Windows API 允许第三方软件以编程方式设置屏幕分辨率。

那我就等......

相关内容