เป็นไปได้หรือไม่ที่จะเปลี่ยนความละเอียดของวิวเวอร์ที่ระบุระหว่างการเริ่มต้นเซิร์ฟเวอร์ vnc ด้วยอาร์กิวเมนต์บรรทัดคำสั่งเรขาคณิต? ฉันมี vncserver กำหนดค่าไว้สำหรับหน้าจอกว้าง แต่ฉันต้องการดูบนหน้าจอ 1024x768
เป็นไปได้หรือไม่ที่จะเปลี่ยนความละเอียดของวิวเวอร์ที่ระบุระหว่างการเริ่มต้นเซิร์ฟเวอร์ vnc ด้วยอาร์กิวเมนต์บรรทัดคำสั่งเรขาคณิต? ฉันมี vncserver กำหนดค่าไว้สำหรับหน้าจอกว้าง แต่ฉันต้องการดูบนหน้าจอ 1024x768
คำตอบ:
UltraVNC ผู้ชมสนับสนุนการปรับอัตโนมัติดังนั้นมันจะปรับขนาดหน้าต่างดูโดยอัตโนมัติเพื่อแสดงหน้าจอทั้งหมดของเซิร์ฟเวอร์ระยะไกล
ปรับปรุง
มีการถามคำถามเดียวกันนี้เมื่อไม่นานมานี้เกี่ยวกับการล้นสแต็ก: /programming/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
-randr
-geometry 1024x768
ความละเอียดต่ำนี้จะใช้เฉพาะเมื่อคุณเชื่อมต่อครั้งแรก แต่จากนั้นคุณสามารถเปลี่ยนความละเอียดได้เพียงแค่ปรับขนาดหน้าต่างไคลเอ็นต์ให้เป็นทุกอย่างที่คุณต้องการความละเอียดที่ไม่ได้มาตรฐานและความละเอียดโฆษณาที่คุณต้องการ การตั้งค่าของฉัน: openSuse 15.1, GDM, KDE Plasma, ไคลเอนต์ TigerVNC 1.9.0 (Windows)
หากคุณต้องการเปลี่ยนการตั้งค่าโดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ VNC ฉันได้ผลลัพธ์ที่ดีด้วย:
vncconfig -set RandR="1024x768,1600x900"
จากนั้นใช้ xrandr เพื่อเปลี่ยนความละเอียดตามคำแนะนำ fgregg:
xrandr -s 1024x768
xrandr -s 1600x900
ด้วยความละเอียดอัตโนมัติของไคลเอ็นต์TigerVNC Windows VNC (ตัวแสดง) จะทำงานนอกกรอบ ไม่จำเป็นต้องตั้งค่าอะไรบนไคลเอนต์หรือบนเซิร์ฟเวอร์ เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ของคุณเป็นครั้งแรกความละเอียดจะถูกตั้งค่าเป็นอะไรก็ตามที่ตั้งไว้ทางฝั่งเซิร์ฟเวอร์ แต่คุณสามารถเปลี่ยนได้อย่างง่ายดายเพียงแค่ปรับขนาดหน้าต่างไคลเอ็นต์ สำหรับความละเอียดใด ๆ ความละเอียดแบบบ้าคลั่งที่ไม่ได้มาตรฐานใด ๆ ที่คุณต้องการ ความละเอียดเดสก์ท็อประยะไกลพูด KDE ตามความละเอียดหน้าต่างไคลเอ็นต์ของคุณอย่างราบรื่น
ตรวจสอบว่ามีการตั้งค่า "ปรับขนาดเซสชันระยะไกลเป็นหน้าต่างท้องถิ่น" ควรเป็นค่าเริ่มต้น
โปรดอย่าสับสนการเปลี่ยนแปลงความละเอียดอัตโนมัติด้วยการยืดภาพหรือเรียกอีกอย่างว่าการปรับขนาดอัตโนมัติ Caling นี้ไร้ประโยชน์จริงเว้นแต่คุณจะมีความบกพร่องทางสายตา มันทำงานได้เหมือนซูมหรือมองกระจกในเครื่องมือแก้ไขบิตแมปยอดนิยม มันทำให้พิกเซลใหญ่ขึ้น (หรือเล็กลง) โดยการขยายภาพออก มันลดคุณภาพของภาพลงอย่างมากหากคุณยืดออกมาก
สิ่งที่ผู้ใช้ต้องการโดยทั่วไปคือการเปลี่ยนแปลงความละเอียดที่แท้จริงของเซสชันระยะไกล และนั่นคือสิ่งที่ฉันพูดถึงก่อนหน้านี้และนั่นคือสิ่งที่ไคลเอ็นต์ 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: //bintray.com/tigervnc/stable/tigervnc/1.9.0
หากคุณต้องการเฉพาะวิวเวอร์ให้ดาวน์โหลดเฉพาะวิวเวอร์เช่นvncviewer64-1.9.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
ตามคำอธิบายแพ็คเกจxorg-x11-Xvnc
openSuse - เซิร์ฟเวอร์ openSuse 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
ด้วยTightVNC (อย่างน้อย) ถ้าเซิร์ฟเวอร์ (windows) เปลี่ยนความละเอียดหน้าจอไคลเอ็นต์จะเปลี่ยนโดยอัตโนมัติเพื่อให้ตรงกับความละเอียดใหม่
สำหรับ TightVNC ให้คลิกที่ไอคอนรูปเฟือง (การตั้งค่า) และเปลี่ยนคุณภาพของภาพเป็น "สูง" และใช้งานได้ดี
ฉันได้รับการตอบกลับอย่างเป็นทางการไปยังฝ่ายบริการลูกค้า VNC
รุ่นสั้นคือ: ไม่คุณไม่สามารถเปลี่ยนความละเอียดระยะไกลเพื่อให้ตรงกับความละเอียดหน้าจอหน้าต่าง / ตัวควบคุม vnc ท้องถิ่นโดยอัตโนมัติ
พวกเขาบอกฉันว่าเป็นเพราะ RDP เป็นเซสชันการเข้าสู่ระบบจริงดังนั้นหน้าจอจะทำงานเหมือนคุณเป็นผู้ใช้ทั่วไปในระบบควบคุม
VNC เพียงแค่สะท้อนหน้าจอ และไม่ใช่เรื่องเลวร้ายเพราะคุณไม่สามารถแบ่งปันเซสชัน RDP แต่คุณสามารถแบ่งปัน VNC ได้
ฉันแนะนำให้สร้างการกำหนดค่าบนเซิร์ฟเวอร์ vnc เพื่อให้เปลี่ยนหน้าจอเพราะฉันรู้ว่า windows API อนุญาตให้บุคคลที่สาม sw ตั้งโปรแกรมความละเอียดหน้าจอโดยทางโปรแกรม
จากนั้นฉันจะรอ ....