نصب محیط گرافیکی در اوبونتو 16.04 Ubuntu به همراه سرویس VNC
خیلی وقتا شده که وقتی صحبت از سرورها میشه، خیلیا ترجیح میدن سمت ویندوز سرورهای مایکروسافت برن چون که رابط کاربری گرافیکی دارند و با استفاده از Remote Desktop میشه بهشون وصل شد و به ساده ترین روش ممکن باهاشون کار رو انجام داد. اما بعضی وقتا حالتی پیش میاد که مجبوریم با یک سرور مبتنی بر لینوکس کارمون رو راه بندازیم و گرچه ترجیح خود من هم استفاده از رابط کامند لاین تو سرورهای لینوکسی هست اما ممکنه خیلیا مثل شما دنبال این باشند که یک رابط گرافیکی بر روی سرور لینوکسیشون نصب کنند تا از شر صفحه سیاه ترمینال راحت بشند. اگر شما هم جزو این دسته از افراد هستید، با این مقاله همراه باشید تا نحوه نصب دسکتاپ گرافیکی، گنوم و همچنین سرویس VNC بر روی اوبونتو 16 آشنا بشید. بر روی بقیه توزیعهای لینوکس هم ممکنه نام پکیجها متفاوت باشه که با کمی جستجو میتونید پیداشون کنید!
نصب محیط گرافیکی، دسکتاپ و سرويس VNC بر روی سرور
۱- خوب با فرض اینکه قبلا سرور مجازی رو از پورتال کاربری سفارش دادید و تحویل گرفتید، اول از همه دستور زیر رو بزنید تا آپدیتهای لازم بر روی سرورتون نصب بشه:
[cc lang=”bash” escaped=”true”] sudo apt-get update && apt-get upgrade -y [/cc]
سپس باید یک دستکاپ گرافیکی روی سرور نصب کنیم. دسکتاپهای زیادی برای سرورهای لینوکسی هستند اما از اونجایی که خیلیا دسکتاپ اصلی و دیفالت اوبونتو رو ترجیح میدند، ما هم همونو نصب میکنیم. دستور زیر پکیج های مربوط به گنوم، دسکتاپ گرافیکی و بقیه پکیجهایی که در محیط گرافیکی لازم هستند رو نصب میکنه:
[cc lang=”bash”] sudo apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y [/cc]
نکته نسبتا مهم
دستور بالایی تمام پکیجهای ابونتو دسکتاپ از جمله پکیچهای office و web browser tools رو در کنار نصب دسکتاپ نصب میکنه. اگر از این موارد بر روی سرور استفاده نخواهید کرد و نمیخواید سرورتون الکی کند بشه، میتونید از دستور زیر استفاده کنید و پکیجهای اضافی رو نصب نکنید:
[cc lang=”bash”] sudo apt-get install –no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y [/cc]
بعد از این که یکی از دستورهای بالا رو زدید، نصب پکیجها شروع میشه. بسته به سختافزار سرورتون یکم زمان میبره تا همه پکیجها نصب بشند. همچنین در طول پروسه نصب ممکنه ازتون پرسیده بشه که آیا یک فایل سیستمی تغییر داده بشه که در اون صورت y یعنی “بله” رو میزنید.
۲- بعد از نصب موارد بالا نوبت به VNC میرسه. سرویس VNC یک سرویس ساده برای مشاهده و ارسال دستورات از یک کلاینت به یک سرور هست. یه چیزی تو مایههای Teamviewer. پکیجهای زیادی هم برای این سرویس وجود داره که یکی از بهترین سرویسهای VNC رو با دستور زیر میتونید نصب کنید:
[cc lang=”bash”] sudo apt-get install vnc4server -y [/cc]
تست و تنظیم سرويس VNC:
۱- خوب اگر مراحل بالا رو درست انجام داده باشید با زدن دستور زیر در ترمینال، سرویس VNC بر روی پورت 5901 شروع به کار میکنه:
[cc lang=”bash”]sudo vncserver :1[/cc]
پورتهای این سرویس از 5900 شروع میشوند و درنتیجه وقتی عدد 1 رو بعد از دو نقطه قرار میدید، این سرویس روی پورت 5901 شروع به کار میکنه. در اولین بار، ازتون پسورد VNC پرسیده خواهد شد که باید یه پسورد دلخواه و البته امن و پیچیده ۸ رقمی رو وارد کنید.
با زدن دستور بالا، تنظیمات مربوط به این سرویس ساخته میشه. در نتیجه دستور زیر رو بزنید تا سرویس متوقف بشه تا بتونیم تنظیماتش رو تغییر بدیم:
[cc lang=”bash”]sudo vncserver -kill :1[/cc]
۲- برای اینکه دسترسی لازم به VNC برای دیدن محیط دسکتاپی که نصب کردیم رو بدیم، باید فایل تنظیماتش رو تغییر بدیم. به همین منظور، فایل ~/.vnc/xstartup زیر رو با ادیتور دلخواهتون ادیت کنید. مثلا من با nano بصورت زیر وارد ادیتور میشم:
[cc lang=”bash”]sudo nano ~/.vnc/xstartup[/cc]
در محیط ادیتوری که باز شده، موارد رو به شکل زیر تغییر بدید تا دسترسیهای لازم رو به سرویس VNC بدید. معمولا ۴ خط پایانی وجود ندارند و شما باید اون ۴ خط رو به آخر فایل درون سرورتون اضافه کنید:
[cc lang=”bash” escaped=”true” line_numbers=”true” class=”ltr”]
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
[/cc]
در نهایت اگر از nano برای ادیت استفاده کرده باشید میتونید با زدن Ctrl+X تغییرات رو ذخیره کنید و از محیط ادیتور خارج بشید.
۳- همونطور که مشاهده کردید، بصورت پیشفرض سرویس VNC بصورت دستی استارت میشه و برای اینکه بعد از بوت اتوماتیک استارت بشه، چند تا کار میتونیم مثل اضافه کردن به فایل crontab میتونیم بکنیم. اما بنظرم راه بهتر اینه که بصورت یه سرویس به سیستمعامل معرفیش کنیم و قرار بدیم که بعد از بوت استارت بشه. برای اینکار ابتدا کافیه دستور زیر رو وارد کنید:
[cc lang=”bash” escaped=”true”]
sudo nano /etc/systemd/system/[email protected]
[/cc]
سپس موارد زیر رو در فایل یکجا کپی پیست کنید و با Ctrl-X فایل رو سیو کنید:
[cc lang=”bash” escaped=”true” line_numbers=”true” class=”ltr”]
[Unit]
Description=Start VNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
[/cc]
البته اگر با یوزری به جز root وارد شده باشید باید عباراتهای User و pidFile رو متناسبا تغییر بدید.
بعد از ایجاد و ویرایش فایل بالا، با زدن دستور زیر ایجاد شدن این سرویس جدید رو به سیستم عامل اطلاع میدیم:
[cc lang=”bash” escaped=”true”]
sudo systemctl daemon-reload
[/cc]
بعد با زدن دستور زیر تنظیم میکنم که بعد از هر بار بوت شدن سرور، سرویس VNC بصورت اتوماتیک روی پورتی که قرار دادیم استارت بشه. مثلا اگر بخوایم بعد از هر بار بوت شدن سیستم عامل سرویس VNC روی پورت 8900 استارت بشه باید از عدد 3000 در دستور زیر استفاده کنیم:
[cc lang=”bash” escaped=”true”]
sudo systemctl enable [email protected]
[/cc]
و تمام! شما سرویس VNC رو با موفقیت روی سرورتون کانفیگ کردید و بعد از هر بار بالا اومدن سرور بصورت اتوماتیک استارت خواهد شد!
در هر زمان…
با وارد کردن دستور های زیر میتونیم سرویس رو بصورت دستی استارت یا متوقف کنیم و یا اینکه status اش رو روی یک پورت خاص ببینیم (به کامنتها دقت کنید):
[cc lang=”bash” escaped=”true” class=”ltr”]
#برای استارت کردن سرویس روی پورت 5901
sudo systemctl start vncserver@1
#برای متوقف کردن سرویس روی پورت 5901
sudo systemctl stop vncserver@1
#برای دریافت وضعیت سرویس روی پورت 5901
sudo systemctl status vncserver@1
[/cc]
اتصال به سرور از طریق VNC
برای انصال به سرور از طریق VNC باید یک نرم افزار کلاینت رو نصب کنید که از پروتکل پشتیبانی میکنه. بصورت خلاصه اگر از یک سیستم لینوکسی بخواید به یک سرور لینوکسی متصل بشید از کلاینتهای زیادی میتونید استفاده کنید که لیست کاملش اینجا هست ولی من با Remmina کار کردم و خوب بوده! برای Mac هم موارد زیادی وجود داره که برای مثال میتونید از RealVNC استفاده کنید. برای سیستمهای ویندوزی هم میتونید از RealVNC یا TightVNC Viewer استفاده کنید.
نصب هر کدوم یک از این نرمافزارها پروسه سادهای داره که فکر کنم سادهتر از چیزی باشه که در این مقاله توضیح داده بشه. صرفا بعد از نصب باید آدرس آی پی سرور رو به همراه پورتی که ست کردید در فیلدی که نامی شبیه به Remote Host داره وارد کنید و دکمه Connect رو بزنید و سپس هم پسوردی که دادید رو وارد کنید.
در پایان…
هر زمان خواستید پسورد VNC رو که در اولین راه اندازی سرویس وارد کرده بودید عوض کنید، کافیه دستور زیر رو بزنید:
[cc lang=”bash” escaped=”true”]
sudo vncpasswd
[/cc]
تلاشمون رو کردیم که آموزش کامل باشه و هر کسی بتونه با وارد کردن دستورها به نتیجه برسه اما اگر مورد یا اشکالی بود در قسمت نظرات یا از طریق تیکت در پورتال کاربری در میان بذارید، حتما تا جایی که بتونیم راهنمایی میکنیم 🙂
بیسار عالی!
ممنونم❤️❤️❤️❤️❤️
سلام علیک
وقت بخیر
چه مقدار حداقل منابع برای نصب موارد نصبی مورد نیاز است و اینکه چقدر از منابع سیستم را اشغال میکنه
ضمنا اگر دستورات بالا را برای centos 5 هم آموزش بدید متشکر میشم
با سپاس
این ابزار عاالیه! چند وقت بود دنبال یه همچین ابزاری بودم.
دمتون گرم.
عامو اگه X خوب بود که رو سرور میذاشتن! بعدشم اونا که X میخان چرا دسکتاپ نصب نمیکنن؟
سلام ببخشید بنده تمام مراحلو رفتم و کاملا درست نصب شد فقط مشکل اینجاس که به root وصل نمیشه یعنی از یوزر Guest استفاده میکنه 🙁 میتونید راهنماییم کنید ؟ ممنون !
سلام من این کار هارو کردم و همه چی اکی ولی ترمینال باز نمیشه در vnc
سلام حال شما خوبه – ممونم از سایت خوبتون – بنده تمام کارها رو انجام دادم – کانکت میشم فقط یک صفه خاکستری رو دارم با سه گزینه تیک دار قسمت بالا
accept clipboard from viewers
send clipboard to viewers
send primary selection to viewers
میشه لطفا راهنمایی بفرمایید چه طوری به دسکتاپ و مرورگر دسترسی داشته باشم . ممنون
سلام حال شما خوبه – ممونم از سایت خوبتون – بنده تمام کارها رو انجام دادم – کانکت میشم فقط یک صفه خاکستری رو دارم با سه گزینه تیک دار قسمت بالا
accept clipboard from viewers
send clipboard to viewers
send primary selection to viewers
میشه لطفا راهنمایی بفرمایید چه طوری به دسکتاپ و مرورگر دسترسی داشته باشم . ممنون با تشکر