Virt-Viewer(1) Virtualization Support Virt-Viewer(1)

virt-viewer - نمایشگر رابط گرافیکی دسکتاپ ماشین مجازی

virt-viewer [OPTIONS] [ID|UUID|DOMAIN-NAME]

دستور virt-viewer ابزاری ساده و سبک برای نمایش کنسول گرافیکی یک ماشین مجازی است. دسترسی به کنسول با استفاده از پروتکل VNC یا SPICE انجام می‌شود. ماشین مهمان می‌تواند بر اساس نام، شناسه (ID) یا UUID مشخص شود. اگر مهمان در حال اجرا نباشد، می‌توان به نمایشگر اعلام کرد تا پیش از تلاش برای اتصال به کنسول، تا زمان شروع به کار آن منتظر بماند. نمایشگر می‌تواند برای یافتن اطلاعات کنسول به میزبان‌های راه دور متصل شود و سپس با همان روش انتقال شبکه، به کنسول راه دور نیز متصل گردد.

در برخی شرایط ممکن است نمایشگر نیاز به گرفتن نشانگر ماوس داشته باشد. توالی کلید پیش‌فرض برای رها کردن ماوس "Ctrl_L"+"Alt_L" است، با این حال می‌توان این رفتار را با استفاده از آرگومان "--hotkeys" که در ادامه مستند شده تغییر داد.

گزینه‌های زیر هنگام اجرای "virt-viewer" پذیرفته می‌شوند:

نمایش خلاصه راهنمای خط فرمان
نمایش شماره نسخه برنامه
نمایش اطلاعات درباره اتصال
تعیین نشانی URI اتصال به هایپروایزر
انتظار برای شروع به کار دامنه پیش از تلاش برای اتصال به کنسول
اتصال مجدد خودکار به دامنه در صورت خاموش شدن و راه‌اندازی دوباره آن
سطح بزرگ‌نمایی پنجره نمایش به درصد. بازه ۱۰ تا ۴۰۰.
عدم تلاش برای تونل کردن کنسول از طریق SSH، حتی اگر در URI اتصال اصلی از SSH استفاده شده باشد.
به‌جای ایجاد اتصال مستقیم سوکت TCP/UNIX به نمایشگر راه دور، از libvirt درخواست یک سوکت از پیش متصل‌شده برای نمایشگر می‌کند. این کار نیاز به احراز هویت مستقیم با سرور نمایشگر راه دور را برطرف می‌سازد. این گزینه تنها زمانی کار می‌کند که اتصال به مهمانی برقرار شود که روی همان میزبان برنامه virt-viewer در حال اجرا است. اگر اتصال به مهمان از طریق libvirt ناموفق باشد، virt-viewer به طور خودکار به تلاش برای برقراری اتصال سوکت TCP/UNIX مستقیم عادی بازمی‌گردد.
شروع برنامه با پنجره بزرگ‌شده در حالت تمام‌صفحه

در صورت پشتیبانی، نمایشگر راه دور با فعال یا غیرفعال کردن مانیتورهای اضافی بر حسب نیاز، برای مطابقت با پیکربندی فیزیکی مانیتورهای کلاینت مجدداً پیکربندی می‌شود. این ویژگی در حال حاضر تنها توسط بک‌اند Spice پیاده‌سازی شده است.

برای مشخص کردن مانیتورهای کلاینت مورد استفاده در حالت تمام‌صفحه، بخش پیکربندی (CONFIGURATION) را در ادامه ببینید.

تعیین اینکه آیا تلاش برای تغییر اندازه بافر فریم راه دور برای مطابقت با اندازه پنجره محلی مجاز است یا خیر. این گزینه در حال حاضر به طور پیش‌فرض فعال است، اما توجه داشته باشید که همه سرورها از آن پشتیبانی نمی‌کنند.
مجاز کردن نشست مشترک با چند کلاینت
کنترل نحوه رندر نشانگر ماوس. مقدار "auto" رفتار پیش‌فرض است که از رفتار درخواستی سرور راه دور پیروی می‌کند. این ممکن است شامل رندر نشانگر در بافر فریم توسط سرور راه دور یا ارسال جزئیات نشانگر به کلاینت جهت رندر باشد. مقدار "local" این پیش‌فرض را لغو می‌کند و درخواست می‌کند نشانگر دسکتاپ محلی همیشه صرف‌نظر از درخواست سرور رندر شود. مورد دوم به ندرت مورد نیاز است، اما زمانی که سرور پیکربندی نادرستی داشته باشد که منجر به پنهان شدن نشانگر خود شود، می‌تواند استفاده شود.
چاپ اطلاعات اشکال‌زدایی
تنظیم کلیدهای میانبر عمومی. به طور پیش‌فرض، میانبرهای صفحه‌کلید تنها زمانی کار می‌کنند که ویجت نمایشگر مهمان فوکوس نداشته باشد. هر عملی که در HOTKEYS مشخص شود حتی زمانی که ویجت نمایشگر مهمان فوکوس ورودی دارد نیز موثر خواهد بود. فرمت HOTKEYS به صورت <action1>=<key1>[+<key2>][,<action2>=<key3>[+<key4>]] است. نام کلیدها به حروف بزرگ و کوچک حساس نیستند. اعمال معتبر عبارتند از: toggle-fullscreen، release-cursor، zoom-in، zoom-out، zoom-reset، secure-attention، usb-device-reset، smartcard-insert و smartcard-remove. عمل "secure-attention" یک توالی توجه امن (Ctrl+Alt+Del) را به مهمان ارسال می‌کند. مثال‌ها:
--hotkeys=toggle-fullscreen=shift+f11,release-cursor=shift+f12
--hotkeys=release-cursor=ctrl+alt

توجه داشته باشید کلیدهای میانبری که اتصالی برای آن‌ها داده نشده غیرفعال می‌شوند. اگرچه کلیدهای میانبر مشخص‌شده در اینجا توسط کلاینت مدیریت می‌شوند، همچنان امکان ارسال این ترکیب‌های کلیدی به مهمان از طریق یک گزینه منو وجود دارد.

نگاشت دوباره یا مسدود کردن فشردن کلیدهای ارائه‌شده به میزبان. تمامی شناسه‌های کلید به حروف بزرگ و کوچک حساس هستند و از قواعد نام‌گذاری تعریف‌شده در gdkkeysyms.h بدون پیشوند GDK_KEY_ پیروی می‌کنند.

اجرای برنامه با --debug نمادهای کلیدهای فشرده‌شده را به شکل زیر نمایش می‌دهد:
"Key pressed was keycode='0x63', gdk_keyname='c'"
"Key pressed was keycode='0xffeb', gdk_keyname='Super_L'"

فرمت ارائه نگاشت کلید عبارت است از: <srcKeySym1>=[<destKeySym1>][+<destKeySym2][,<srckeySym2>=[<destKeySym1]

برای مسدود کردن فشردن یک کلید کافیست یک پارامتر خالی به srcKeySym اختصاص دهید.

مثال:
--keymap=Super_L=,Alt_L=,1=Shift_L+F1,2=Shift_L+F2

این کار فشردن کلیدهای Super_L (معمولاً کلید ویندوز) و ALT_L را مسدود کرده و کلید 1 را به Shift F1 و کلید 2 را به Shift F2 بازنگاشت می‌کند.

شروع در حالت کیوسک. در این حالت، برنامه در وضعیت تمام‌صفحه با کمترین رابط کاربری آغاز می‌شود. این حالت مانع از خروج کاربر یا انجام هرگونه تعامل خارج از استفاده از نشست دسکتاپ راه دور می‌شود.

توجه داشته باشید که این به خودی خود نمی‌تواند یک راهکار امنیتی کامل ارائه دهد. سیستم کیوسک شما باید پیکربندی و تنظیمات امنیتی اضافی برای قفل کردن سیستم‌عامل داشته باشد. به ویژه، باید مدیر پنجره را پیکربندی یا غیرفعال کنید، قابلیت‌های نشست را محدود سازید، از مکانیزم راه‌اندازی دوباره/دیده‌بان (watchdog) استفاده کنید، تغییر کنسول مجازی (VT switching) را غیرفعال کنید و غیره.

به طور پیش‌فرض هنگام فعال بودن حالت کیوسک، با قطع اتصال به سرور راه دور، virt-viewer باز می‌ماند. با تنظیم گزینه kiosk-quit روی مقدار "on-disconnect"، برنامه virt-viewer در عوض خارج خواهد شد. لطفاً توجه داشته باشید که --reconnect بر این گزینه اولویت دارد و پیش از خروج تلاش می‌کند مجدداً متصل شود.
اتصال به ماشین مجازی بر اساس id، uuid یا نام آن. این گزینه‌ها متقابلاً مانعه‌الجمع هستند. به عنوان مثال دستور زیر ممکن است بسته به تعداد ماشین‌های در حال اجرا گاهی به ماشین مجازی با شناسه ۲ یا با نام ۲ متصل شود:
virt-viewer 2

برای اتصال همیشگی به ماشین مجازی با نام "2" از گزینه "--domain-name" استفاده کنید:

virt-viewer --domain-name 2

تعداد کمی از گزینه‌های پیکربندی را می‌توان با ویرایش فایل تنظیمات واقع در دایرکتوری پیکربندی کاربر کنترل کرد:

<USER-CONFIG-DIR>/virt-viewer/settings

این فایل یک فایل متنی با فرمت INI است که گزینه‌های برنامه در گروه [virt-viewer] و گزینه‌های مربوط به هر مهمان در گروهی با شناسه UUID مهمان قرار دارد. گزینه‌های برنامه نباید به صورت دستی ویرایش شوند. همچنین یک گروه ویژه [fallback] وجود دارد که گزینه‌های همه مهمان‌هایی را که گروه صریحی ندارند تعیین می‌کند.

برای هر مهمان، پیکربندی اولیه مانیتور تمام‌صفحه را می‌توان با استفاده از کلید monitor-mapping مشخص کرد. این پیکربندی تنها زمانی اعمال می‌شود که گزینه -f/--full-screen مشخص شده باشد.

مقدار این کلید فهرستی از نگاشت‌های بین نمایشگر مهمان و مانیتور کلاینت است. هر نگاشت با نویسه نقطه-ویرگول جدا می‌شود و نگاشت‌ها دارای فرمت <GUEST-DISPLAY-ID>:<CLIENT-MONITOR-ID> هستند.

به عنوان مثال، برای نگاشت نمایشگرهای ۱ و ۲ مهمان به مانیتورهای ۲ و ۳ کلاینت برای مهمان با UUID برابر با e4591275-d9d3-4a44-a18b-ef2fbc8ac3e2، از دستور زیر استفاده کنید:

[e4591275-d9d3-4a44-a18b-ef2fbc8ac3e2]
monitor-mapping=1:2;2:3

مقدار monitor-mapping باید شامل شناسه‌های تمام نمایشگرها از ۱ تا آخرین شناسه نمایشگر مورد نظر باشد؛ برای نمونه "monitor-mapping=3:3" نامعتبر است زیرا نگاشت‌های نمایشگرهای ۱ و ۲ مشخص نشده‌اند.

برای اتصال به مهمانی با نام 'demo' که تحت Xen اجرا می‌شود:

virt-viewer demo

برای استفاده از رابط گرافیکی (GUI) جهت اتصال به مهمان در حال اجرا تحت QEMU:

virt-viewer --connect qemu:///system

برای اتصال به مهمان با شناسه 7 در حال اجرا تحت QEMU:

virt-viewer --connect qemu:///system 7

برای منتظر ماندن جهت شروع به کار مهمان با شناسه یکتای 66ab33c0-6919-a3f7-e659-16c82d248521 و سپس اتصال، و همچنین اتصال مجدد پس از راه‌اندازی دوباره ماشین مجازی:

virt-viewer --reconnect --wait 66ab33c0-6919-a3f7-e659-16c82d248521

برای اتصال به یک کنسول راه دور با استفاده از TLS:

virt-viewer --connect xen://example.org/ demo

برای اتصال به یک میزبان راه دور با استفاده از SSH، یافتن پیکربندی مهمان و سپس برقراری اتصال تونل‌شده به کنسول:

virt-viewer --connect qemu+ssh://root@example.org/system demo

هنگام استفاده از تونل SSH برای اتصال به کنسول SPICE، توصیه می‌شود ssh-agent در حال اجرا باشد تا از درخواست‌های متعدد احراز هویت جلوگیری شود.

برای اتصال به یک میزبان راه دور با استفاده از SSH، یافتن پیکربندی مهمان و سپس برقراری اتصال مستقیم و بدون تونل به کنسول:

virt-viewer --direct --connect xen+ssh://root@example.org/ demo

نوشته‌شده توسط Daniel P. Berrange بر پایه برنامه نمونه GTK-VNC به نام gvncviewer.

گزارش اشکالات به https://gitlab.com/virt-viewer/virt-viewer/-/issues

حق نشر © 2007-2020 متعلق به Red Hat, Inc. و مشارکت‌کنندگان مختلف است. این نرم‌افزار آزاد است. شما می‌توانید نسخه‌های آن را تحت شرایط مجوز عمومی همگانی گنو "https://www.gnu.org/licenses/gpl-2.0.html" بازتوزیع کنید. هیچ‌گونه ضمانتی تا حد مجاز قانون وجود ندارد.

virsh(1)، "virt-manager(1)"، "spice-client(1)"، وب‌سایت پروژه "http://gitlab.com/virt-viewer/virt-viewer"

2025-04-24 Virt-Viewer 11.0