به اشتراک گذاشتن Desktop

شاید براتون زیاد پیش آمده که بخواهید از راو دو یک کامپیوتر دیگه رو مدیریت کنید. یا اینکه تو یه کلاس درس بخواهید Desktop تون رو به اشتراک بگذارید تا همه شاگردان ببینند دارید چی کار می کنید. ابزار های متنوع و متفاوتی ٫چه آزاد و چه تجاری برای این کار وجود دارد .یک از ابزار های کارامد برای این کار سیستم VNC است.



VNC چیست؟

VNC یا Virtual Network Computing یک سیستم به اشتراک گذاری Desktop است که از پروتکل RBF برای کنترل یک کامپیوتر راه دور استفاده می کند. VNC یک سیستم مستقل از سیستم عامل است و شما با هر VNC Viewer بر روی هر سیستم عاملی می توانید به یک سرویس دهنده VNC متصل شوید. نرم افزارهای VNC متفاوتی وجود دارد که می توانید لیستی از آنها را در این آدرس ببینید. VNC اساسا توسط AT & T تحت GPL توسعه داده می شود. برای خوانذن تاریخچه توسعه VNC ٫می توانید به این آدرس مراجعه کنید.


RFB چیست؟

RFB یا remote framebuffer یک پروتکل ساده برای دسترسی از راه دور به محیط گرافیکی کاربر است. و پروتکلی است که بر روی تما سیستم عامل ها قابل اجرا است.

 

 

به اشتراک گذاری Desktop در حال اجرا

این کار بیشتر برای کلاس های درس و یا نمایش مراحل انجام کار به یک شخص در راه دور ٫مفید خواهد بود. در اینجا به معرفی دو ابزار vino و x11vnc خواهم پرداخت.


Vino

یکی از ساده ترین ابزار ها برای به اشتراک گذاری میز کار است. ابتدا باید آن را نصب کنید:

root@debian:~#apt-get install vino

سپس Alt+F2 را بزید و برنامه vino-preference را اجرا کنید. صفحه ای باز می شود که دارای چهار گزینه است:


- Allow other user to view your desktop

در صورتی که این گزینه را تیک بزنید سرور فعال شده و اجازه متصل شدن به clinet ها داده می شود. برای آنکه سرویس دهنده شروع به کار کند باید یک بار logout کرده و مجددا login کنید. برای آنکه مطمئن شوید که سرویس دهنده فعال شده netstat -antp را در ترمینال اجرا کنید ٫vino باید بر روی پورت 5900 به گوش باشد.


- Allow other user to control your desktop

با فعال کردن این گزینه شما به کاربر راه دور این اجازه را می دهید تا کنترل میز کار شما رو داشته باشد و بتاند مانند شما هر عملی را بر روی کامپیوتر انجام دهد در صورتی که در یک کلاس از vino استفاده می کنید می توانید این گزینه را غیر فعال کنید.


- Ask you for confirmation

در صورتی که این گزینه را فعال کنید ٫هر کاربر راه دور که بخواهد متصل شود٫ برنامه از شما کسب تکلیف می کند و شما می توانید آن را قبول یا رد کنید.


- Require the user to enter this password

با کمک این گزینه شما می توانید برای اتصال کاربران راه دور ٫کلمه عبور تنظیم کنید. این کار برای امنیت بیشتر سیستم شما اکیدا توصیه می شود. زیرا که با فعال کردن vino سیستم شما کاملا در خطر دسترسی نفوذگران قرار می گیرد.



x11vnc

شاید بپرسید چه نیازی به جندین برنامه برای انجام یک کار هست ؟ خوب یکی اینکه ممکنه همیشه همه نرم افزار ها در دسترس نباشه. دوم اینکه خیلی ها دوست دارند با نرم افزار هایی کار کنند که انعطاف بیشتری داشته باشد و گزینه های بیشتری را در اختیار آنها قرار دهد و آخرین و مهمترین نکته آن است که از x11vnc برای به اشتراک گذاری هر مدیریت پنجره (gdm,kdm,xdmو ..) و هر میز کاری (gnome, kde, xfce و ...) می توان استفاده کرد .در حالی که vino تنها یکی از ابزارهای gnome است.

برای شروع کار x11vnc را نصب کنید:

root@debian:~#apt-get install x11vnc

پس از نصب ٫تنها با اجرای x11vnc توی ترمینال می تونید به کمک یک VNC viewer از راه دور به آن متصل شوید. علاوه بر آن می تونانید آن را به همراه تعدادی گزینه های دیگر ٫با توجه به نیاز های خود آن را پیکربندی کنید. در اینجا به تعدادی از گزینه هایی که بیشتر مورد نیاز هستند اشاره می کنم. لیست کامل گزینه ها را می توانید در manpage آن مطالعه کنید.



گزینه های x11vnc

storepasswd password file -

با استفاده از این گزینه می توانید برای اتصال به x11vnc کلمه عبور مشخص کنید. می توانید مانن مثال زیر از آن استفاده کنید:

x11vnc -storepasswd xxxxxx path/of/passfile

که xxxxxx کلمه عبور و path/of/passfile محل ذخیره کلمه عبور است.این کار تنها برای ایجاد کلمه عبور است و سرویس دهنده را راه اندازی نمی کند.


forever -

در حالت عادی وقتی سرویس دهنده را راه می اندازیم پس از آنکه اولین اتصال قطع شد ٫سرویس دهنده از حات سرویس دهی خارج شده و برای اتصال بعدی باید مجددا x11vnc را اجرا کنیم. این گزینه باعث می شود که سرویس دهنده همیشه به گوش باشد.


q-

باعث می شود یک سری از پیغامها نمایش داده نشود.


bg-

سرویس را در پس زمینه اجرا می کند.


rfbauth password_file-

باعث می شود تا از client درخواست کامه عبور کند و آن را کلمه عبور موجود در فایل password_file مقایسه کند.


display :0 -

در خواست ها را بر رو ی میز کار شماره 0 اعمال کند. در ادامه در بخش vnc viewer در مورد شماره میز کار ها توزضیح خواهم داد.


viewonly-

این گزینه تنها مال زمانی است که می خواهید کاربران راه دور تنها قادر به مشاهده صفحه میز کار شما باشند و نتوانند آن را کنترل کنند.

گزینه های زیادی وجود دارد که می توانید همه آنها را در manpage مربوطه مطالعه کنید. گزینه هایی مانند scale- , -remote , -sb ,- wait , -rfbport و ....... .


برای مشخص تر شدن نحوه استفاده گزینه ها یک مثال می زنم (فراموش نکنید که دستورات تحت همان کاربری که قرار است میزکارش را به اشتراک بگذارید اجرا کنید) :

behrad@debian:~$ x11vnc -storepasswd givemefive .vncpass

behrad@debian:~$ x11vnc -forever -bg -q -viewonly -rfbauth /home/behrad/.vncpass -display :0

در مثال بالا ابتدا کلمه عبور را برابر givemefive قرار داده و در فایل vncpass. ذخیره کردیم. سپس سرویس دهنده را طوری راه اندازی کردیم که در پس زمینه همیشه بگوش باشد و از کاربران کلمه عبور درخواست کند و میزکار شماره 0 را به اشتراک بگذارد.


به اشتراک گذاری gdm

ممکن است یه سیستم راه دور داشته باشید و بخواهید به آن login کنید از طریق x11vnc می توانید gdm رو به اشتراک بذارید و از طریق آن login کنید.برای این کار ابتدا باید از طریق ssh به سیستم راه دور متصل شویدو سپس سروس دهنده x11vnc را به راه اندازید و سپس به آن متصل شوید:

ssh root@192.168.0.10

بعد از login از طریق ssh ٬به صورت زیر از x11vnc استفاده کنید:

x11vnc -display :0 -q -bg -auth /var/lib/gdm/:0.Xauth

اکنون می توانید از کامپیوتر خودتون به سیستم راه دور متصل شوید(بخش بعد٬ اتصال به سرویس دهنده را مطالعه کنید) و صفحه gdm را بر سیسنم خودتون داشته باشید.توجه داشته باشید استفاده از این مورد برای مواقعی است که سیستم راه دور logout کرده و شما از راه دور می خواهید login کنید. دقت کنید ٬ آدرس /var/lib/gdm در توزیع های مختلف متفاوت است.


اتصال به سرویس دهنده

برای اتصال به سرویس دهنده ابتدا باید یک VNC viewer نصب کنید:

root@debian:~# apt-get install xvncviewr

برای اتصال به سرویس دهنده تنها کافی است آدرس IP سرویس دهنده و شماره میز کار را در ادامه دستور vncviewr بنویسیم.

user@remotehost:~$ vncviewer 192.168.0.1:0

شما می توانید برای تست صحت عملکرد سرویس دهنده با استفاده از آدرس 127.0.0.1 آن را آزمایش کنید( در این حالت دچار VNC Loop خواهید شد که زیاد مهم نیست). واما شماره میز کار; شما علاوه بر میز کاری که بر روی آن در حال کار هستید (‌یعنی میز کار شماره 0) می توانید یک میز کار مجازی در اختیار کاربر راه دور قرار دهید ٫تا علاوه بر اینکه به سیستم شما دسترسی دارد ٫نتواند صفحه شخصی شما را ببیند.


نحوه استفاده از خود vncserve و میزکارهای مجازی دیگه رو در یه نوشته مجزا توضیح می دم . تایپ کردن هم عجب کار طاقت فرساییه ;-)



بهراد اسلامی فر

behrad_es@yahoo.com

www.giveme5.ir


در تاریخ ۱۳۸۵/۶/۲۵ویرایش شد.