Ubuntu 20.04

نصب و پیکربندی VNC در اوبونتو 20.04

Virtual Network Computing یا VNC یک سیستم اتصال است که به شما امکان می دهد از صفحه کلید و ماوس خود برای تعامل با یک محیط دسکتاپ گرافیکی روی یک سرور مجازی از راه دور استفاده کنید. این امر باعث می شود مدیریت فایل ها ، نرم افزارها و تنظیمات روی یک سرور مجازی از راه دور برای کاربرانی که همچنان با خط فرمان احساس راحتی نمیکنند ، آسانتر شود.
در این راهنما ، با TightVNC یک سرور مجازی VNC را روی سرور مجازی اوبونتو 20.04 تنظیم کرده و از طریق یک تونل SSH با ایمنی به آن وصل می شوید. سپس از یک برنامه کلاینت VNC بر روی دستگاه محلی خود استفاده میکنید تا از طریق محیط دسکتاپ گرافیکی با سرور مجازی خود ارتباط برقرار کنید.
پیش نیازها
برای تکمیل این آموزش ، به موارد زیر نیاز دارید:
• یک سرور مجازی Ubuntu 20.04 شامل یک کاربر ادمین غیر ریشه و فایروال تنظیم شده با UFW .
• یک کامپیوتر محلی با یک کلاینت VNC نصب شده . کلاینتVNC که استفاده میکنید باید از طریق تونل های SSH اتصالات را پشتیبانی کند.
o در ویندوز ، می توانید از TightVNC ، RealVNC یا UltraVNC استفاده کنید.
o در macOS ، می توانید از برنامه داخلی اشتراک گذاری صفحه استفاده کنید ، یا می توانید از یک برنامه cross-platform مانند RealVNC استفاده کنید.
o در لینوکس ، می توانید گزینه های بسیاری از جمله vinagre ، krdc ، RealVNC یا TightVNC را انتخاب کنید.
مرحله 1 – نصب محیط دسکتاپ و سرور مجازی VNC
به طور پیش فرض ، یک سرور مجازی Ubuntu 20.04 با محیط دسکتاپ گرافیکی یا سرور مجازی VNC همراه نیست ، بنابراین ما با نصب آن ها کار را شروع خواهیم کرد.
برای انتخاب سرور مجازی VNC و محیط دسک تاپ گزینه های بسیاری برای شما وجود دارد. در این آموزش بسته هایی را برای جدیدترین محیط دسک تاپ Xfce و بسته TightVNC موجود از مخزن رسمی اوبونتو نصب خواهید کرد. Xfce و TightVNC هر دو به دلیل وزن کم و سرعت شناخته شده اند که اطمینان حاصل می کند اتصال VNC حتی در اتصالات کندتر اینترنت هموار و پایدار خواهد بود.
بعد از اتصال به سرور مجازی با SSH ، لیست بسته های خود را به روز کنید:
⦁ $ sudo apt update

اکنون Xfce را به همراه بسته xfce4-goodies نصب کنید ، که حاوی چند تغییر برای محیط دسک تاپ است:
⦁ $ sudo apt install xfce4 xfce4-goodies

در حین نصب ، ممکن است از شما خواسته شود یک مدیر نمایشگر پیش فرض برای Xfce انتخاب کنید. مدیر نمایشگر برنامه ای است که به شما امکان می دهد از طریق یک رابط گرافیکی وارد یک محیط دسک تاپ شوید. فقط هنگام اتصال با کلاینت VNC از Xfce استفاده خواهید کرد و در این بخش های Xfce از قبل به عنوان کاربر غیر ریشه اوبونتو وارد سیستم می شوید. بنابراین برای اهداف این آموزش ، انتخاب شما برای مدیر صفحه نمایش اهمیتی ندارد. یکی را انتخاب کنید و ENTER را فشار دهید.
پس از اتمام نصب ، سرور مجازی TightVNC را نصب کنید:
⦁ $ sudo apt install tightvncserver

در مرحله بعدی ، دستور vncserver را برای تنظیم رمز ورود دسترسی VNC ، ایجاد فایل های پیکربندی اولیه و شروع یک مثال سرور مجازی VNC اجرا کنید:
$ vncserver

از شما خواسته می شود یک رمز ورود را برای دسترسی از راه دور به دستگاه خود وارد کرده و تأیید کنید:
Output
You will require a password to access your desktops.

Password:
Verify:

رمز عبور باید بین شش تا هشت کاراکتر باشد. گذرواژه‌های بیش از 8 کاراکتر به صورت خودکار کوتاه خواهند شد.
پس از تأیید گذرواژه ، می توانید یک گذرواژه view-only ایجاد کنید. کاربرانی که با رمز ورود view-only به سیستم وارد می شوند ، قادر به کنترل نمونه VNC با ماوس یا صفحه کلید خود نخواهند بود. اگر می خواهید چیزی را با استفاده از سرور VNC خود به دیگران نشان دهید ، این گزینه مفید میباشد ، اما ضروری نیست.
سپس این فرآیند فایلهای تنظیمات پیش فرض لازم و اطلاعات اتصال را برای سرور ایجاد می کند. علاوه بر این ، یک نمونه سرور پیش فرض را در پورت 5901 راه اندازی می کند. این پورت ، پورت نمایشگر گفته می شود و توسط VNC به :1 شناخته میشود. VNC می تواند چندین نمونه را در سایر پورت های نمایش راه اندازی کند: :2 به پورت 5902 و :3 به 5903 اشاره میکند و به همین ترتیب:
Output
Would you like to enter a view-only password (y/n)? n
xauth: file /home/sammy/.Xauthority does not exist

New ‘X’ desktop is your_hostname:1

Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

توجه داشته باشید که اگر هر زمان خواستید رمزعبور خود را تغییر دهید یا یک رمز ورود view-only اضافه کنید ، می توانید با دستور vncpasswd این کار را انجام دهید:
⦁ $ vncpasswd

در این مرحله ، سرور مجازی VNC نصب و راه اندازی می شود. اکنون بیایید آن را پیکربندی کنیم تا Xfce را راه اندازی کرده و از طریق یک رابط گرافیکی به سرور مجازی دسترسی داشته باشیم.
مرحله 2 – پیکربندی سرور مجازی VNC
سرور مجازی VNC باید بداند که در هنگام راه اندازی چه دستوراتی را اجرا کند. به طور خاص ، VNC باید بداند که به کدام دسکتاپ گرافیکی وصل شود.
این دستورات در یک فایل پیکربندی به نام xstartup در پوشه .vnc تحت دیرکتوری هوم شما قرار دارند. اسکریپت راه اندازی هنگامی ایجاد شد که در مرحله قبل vncserver را اجرا کردید ، اما برای راه اندازی دسکتاپ Xfce ، اسکریپت خودمان را ایجاد خواهیم کرد.
از آنجا که می خواهیم نحوه پیکربندی سرور مجازی VNC را تغییر دهیم ، ابتدا نمونه سرور مجازی VNC را که با استفاده از پورت 5901 در حال اجرا است با دستور زیر متوقف کنید:
⦁ $ vncserver -kill :1

خروجی باید به این شکل باشد ، اگرچه یک PID متفاوت را مشاهده خواهید کرد:
Output
Killing Xtightvnc process ID 17648
قبل از تغییر فایل xstartup ، از نسخه اصلی نسخه پشتیبان تهیه کنید:
⦁ $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

اکنون یک فایل xstartup جدید ایجاد کرده و آن را در ویرایشگر متن خود باز کنید:
⦁ $ nano ~/.vnc/xstartup

خطوط زیر را به فایل اضافه کنید:
~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

خط اول یک  shebangاست. در فایل های قابل اجرای متن ساده در پلتفرم های * nix ، یک shebang به سیستم می گوید که چه مفسری را برای انتقال آن فایل برای اجرا وارد می کند. در این حالت ، شما فایل را به مفسر Bash ارائه می دهید. این امر به شما امکان می دهد كه هر خط پی در پی را به صورت دستوراتی اجرا کنید.
اولین دستورالعمل موجود در فایل ، xrdb $ HOME / .Xresource ، به چارچوب رابط کاربری گرافیکی VNC میگوید فایل .Xresources کاربر سرور مجازی را بخواند. Xresource جایی است که یک کاربر می تواند تنظیمات خاصی از دسکتاپ گرافیکی ، مانند رنگ های ترمینال ، تم های مکان نما و رندر فونت ، تغییراتی ایجاد کند. دستور دوم به سرور مجازی می گوید که Xfce را راه اندازی کند ، در این قسمت تمام نرم افزارهای گرافیکی مورد نیاز خود را برای مدیریت راحت سرور مجازی خود پیدا خواهید کرد.
پس از افزودن این خطوط ، فایل را ذخیره کنید و ببندید. اگر از nano استفاده کرده اید ، این کار را با فشار دادن CTRL + X ، Y ، سپس enter انجام دهید.
برای اطمینان از اینکه سرور مجازی VNC قادر به استفاده صحیح از این فایل راه اندازی جدید خواهد بود ، باید آن را عملیاتی کنیم.
⦁ $ chmod +x ~/.vnc/xstartup

اکنون ، سرور مجازی VNC را رستارت کنید.
⦁ $ vncserver -localhost

توجه کنید که این بار این دستور شامل گزینه -localhost است که سرور مجازی VNC را به رابط حلقه برگشت سرور مجازی شما متصل می کند. این امر باعث می شود VNC فقط اتصالات منبعی را که روی آن نصب شده است مجاز بداند.
در مرحله بعد ، شما یک تونل SSH بین دستگاه محلی و سرور مجازی خود ایجاد می کنید ، در واقع VNC را فریب میدهید که اتصال حاصل از دستگاه محلی شما را از سمت سرور مجازی تان بداند. این استراتژی یک لایه امنیتی بیشتر در اطراف VNC اضافه خواهد کرد ، زیرا تنها کاربرانی که قادر به دستیابی به آن هستند ، کسانی هستند که از قبل دسترسی به SSH به سرور مجازی شما دارند.
خروجی مشابه این را مشاهده خواهید کرد:
Output
New ‘X’ desktop is your_hostname:1

Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

با پیکربندی موجود ، آماده هستید از دستگاه محلی خود به سرور مجازی VNC وصل شوید.
مرحله 3 – اتصال ایمن به دسکتاپ VNC
VNC در هنگام اتصال از پروتکل های ایمن استفاده نمی کند. ما برای اتصال ایمن به سرور مجازی خود از یک تونل SSH استفاده خواهیم کرد و سپس به کلاینت VNC می گوییم به جای برقراری ارتباط مستقیم از آن تونل استفاده کند.
یک اتصال SSH را روی رایانه محلی خود ایجاد کنید که به طور ایمن به اتصال محلی برای VNC منتقل شود. شما می توانید این کار را از طریق ترمینال در لینوکس یا macOS با دستور SSH زیر انجام دهید:
⦁ $ ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

در اینجا منظور از گزینه های این دستور ssh چیست:
⦁ -L 59000: localhost: 5901: سوئیچ -L مشخص می کند که پورت داده شده در رایانه محلی (59000) باید به هاست داده شده و پورت روی سرور مجازی مقصد (localhost: 5901) یعنی پورت 5901 در مقصد که به your_server_ip شناخته میشود، ارسال گردد. توجه داشته باشید که پورت محلی که مشخص کرده اید تا حدودی دلخواه است؛ تا زمانی که پورت به سرویس دیگری متصل نشده باشد ، می توانید از آن به عنوان پورت انتقال برای تونل خود استفاده کنید.
⦁ -C: این پرچم فشرده سازی را فعال می کند که می تواند در به حداقل رساندن مصرف منابع و سرعت بخشیدن مفید باشد.
⦁ -N: این گزینه به ssh می گوید که شما نمی خواهید دستورات راه دور را اجرا کنید. این تنظیم هنگامی مفید است که شما فقط می خواهید پورت ها را ارسال کنید.
⦁ -l sammy your_server_ip: سوئیچ -l به شما امکان می دهد تا به محض اتصال به سرور مجازی ، کاربر مورد نظر خود را وارد کنید. حتماً sammy و your_server_ip را با نام کاربر غیر ریشه و آدرس IP سرور مجازی خود جایگزین کنید.
توجه: این دستور یک تونل SSH ایجاد می کند که از طریق پورت 22 در هر دستگاه ، یعنی پورت پیش فرض برای SSH ، اطلاعات را از پورت 5901 در سرور مجازی VNC شما به پورت 59000 در دستگاه محلی شما منتقل می کند. با فرض اینکه از راهنمای پیش نیاز ستاپ اولیه سرور مجازی اولیه برای اوبونتو 20.04 پیروی کرده باشید ، یک قانون UFW اضافه کرده اید تا امکان اتصال به سرور مجازی خود را از طریق OpenSSH فراهم کند.
این کار نسبت به باز کردن فایروال سرور مجازی شما برای اتصال به پورت 5901 ایمن تر است ، زیرا این امر به هر کسی امکان دسترسی به سرور مجازی شما از طریق VNC را می دهد. با اتصال به یک تونل SSH ، دسترسی VNC به ماشین هایی که از قبل دسترسی به SSH به سرور مجازی دارند را محدود می کنید.
اگر از PuTTY برای اتصال به سرور مجازی خود استفاده می کنید ، می توانید با کلیک راست روی نوار بالای پنجره ترمینال ، یک تونل SSH ایجاد کنید و سپس بر روی گزینه Change Settings… کلیک کنید:

شاخه CONNECTION را در منوی درختی در سمت چپ پنجره PuTTY Reconfiguration پیدا کنید. شاخه SSH را باز کرده و بر روی Tunnels کلیک کنید. در صفحه Options controlling SSH port forwarding ،59000 را به عنوان Port Source و localhost: 5901 به عنوان مقصد وارد کنید ، مانند این:

سپس برای اجرای تونل بر روی دکمه Add و سپس دکمه Apply کلیک کنید.
پس از راه اندازی تونل ، از یک کلاینت VNC برای اتصال به localhost:59000استفاده کنید. از شما خواسته می شود با استفاده از رمزعبور تنظیم شده در مرحله 1 ، تأیید اعتبار کنید.
پس از اتصال ، میزکار پیش فرض Xfce را مشاهده خواهید کرد. باید چیزی شبیه به این باشد:

همانطور که در اینجا مشاهده می شود ، می توانید در دیرکتوری هوم خود با مدیر فایل یا از خط فرمان به فایلها دسترسی پیدا کنید:

CTRL + C را در ترمینال محلی خود زده تا تونل SSH را متوقف کرده و به حالت عادی خود بازگردید. این کار بخش VNC شما را نیز قطع می کند.
اکنون می توانید سرور مجازی VNC خود را پیکربندی کنید تا به عنوان یک سرویس سیستمی اجرا شود.
مرحله 4 – اجرای VNC به عنوان یک سرویس سیستم
در مرحله بعدی ، سرور مجازی VNC را به عنوان یک سرویس سیستمی تنظیم خواهیم کرد تا بتوانیم مانند هر سرویس دیگر ، آن را بنا به نیاز ، راه اندازی ، متوقف و مجدداً راه اندازی کنیم. این کار همچنین راه اندازی VNC در حین ریبوت سرور مجازی را تضمین می کند.
ابتدا با استفاده از ویرایشگر متن مورد علاقه خود ، یک فایل واحد جدید با نام /etc/systemd/system/vncserver@.service ایجاد کنید:
⦁ $ sudo nano /etc/systemd/system/vncserver@.service

نماد @ در انتهای نام به ما اجازه می دهد تا آرگومانی را که می توانیم در پیکربندی سرویس استفاده کنیم ، وارد کنیم. از آن برای مشخص کردن پورت نمایشگر VNC استفاده خواهیم کرد که می خواهیم هنگام مدیریت سرویس استفاده کنیم .
خطوط زیر را به فایل اضافه کنید. حتماً مقدار کاربر ، گروه ، WorkingDirectory و نام کاربری را در مقدار PIDFILE تغییر دهید تا با نام کاربری شما مطابقت داشته باشد:
/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy

PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

فرمان ExecStartPre اگر قبلاً در حال اجرا باشد VNC را متوقف می کند. دستور ExecStart ، VNC را شروع می کند و عمق رنگ را به رنگ 24 بیتی با رزولوشن 1280×800 تنظیم می کند. می توانید بنا به نیازهای خود این گزینه های راه اندازی را تغییر دهید. همچنین توجه داشته باشید که فرمان ExecStart  دوباره شامل گزینه -localhost میباشد.
فایل را ذخیره کنید و ببندید.
سپس ، سیستم را از وجود فایل واحد جدید آگاه کنید.
⦁ $ sudo systemctl daemon-reload

فایل واحد را فعال کنید.
⦁ $ sudo systemctl enable vncserver@1.service

1 بعد از علامت @ نشان می دهد که کدام شماره نمایش سرویس باید روی آن ظاهر شود ، در این حالت پیش فرض : 1 است، همانطور که در مرحله 2 بحث شد.
اگر هنوز نمونه فعلی سرور مجازی VNC در حال اجرا است آن را متوقف کنید.
⦁ $ vncserver -kill :1

سپس آن را شروع کنید همانطور که هر سرویس سیستمی دیگری را شروع می کنید.
⦁ $ sudo systemctl start vncserver@1

با این دستور می توانید تأیید کنید که شروع شده است:
⦁ $ sudo systemctl status vncserver@1

اگر به درستی شروع شود ، خروجی باید به این شکل باشد:
Output
● vncserver@1.service – Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago
Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
Main PID: 39795 (Xtightvnc)

سرور مجازی VNC شما اکنون آماده است تا هر زمان که سرور مجازی تان بوت میشود ، استفاده گردد و می توانید آن را با دستورات systemctl مانند سایر سرویس های سیستمی مدیریت کنید.
با این حال ، هیچ تفاوتی در طرف کلاینت وجود نخواهد داشت. برای اتصال مجدد ، دوباره تونل SSH خود را شروع کنید:
⦁ $ ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

سپس با استفاده از نرم افزار کلاینت VNC خود اتصالی به localhost: 59000 برقرار کنید تا به سرور مجازی خود متصل شوید.
نتیجه
اکنون یک سرور مجازی VNC امن در سرور مجازی Ubuntu 20.04 خود فعال و راه اندازی کرده اید. در حال حاضر می توانید فایلها ، نرم افزارها و تنظیمات خود را با یک رابط گرافیکی آسان و کاربردی مدیریت کنید و قادر خواهید بود نرم افزارهای گرافیکی مانند مرورگرهای وب را از راه دور اجرا کنید.

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجرای چند نسخه PHP بر روی یک سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پیکربندی Elasticsearch در اوبونتو 18.04

راه اندازی سرور اولیه با اوبونتو 20.04 – تنظیم کلیدهای SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روی سرور Ubuntu 18.04 –  نحوه نصب Python 3 روی سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنیتی برای محافظت از سرورهای شما –  نحوه نصب و ایمن سازی Redis در اوبونتو 20.04

نحوه نصب و ایمن سازی Redis در اوبونتو 18.04اضافه کردن فضای Swap در اوبونتو 20.04

چگونه می توان فایروال را با UFW در اوبونتو 20.04 تنظیم کردنظارت بر اطلاعیه و مسیر BGP با BGPalerter اوبونتو 18.04

نصب و ایمن سازی phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ریست کردن رمز ورود ریشه MySQL یا MariaDB –  استفاده از نوع داده MySQL BLOB برای ذخیره تصاویر

نصب Nginx در اوبونتو 18.04نصب توزیع Anaconda پایتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظیم محیط توسعه در اوبونتو 16.04

نصب جنگو و تنظیم محیط توسعه در اوبونتو 20.04 – نحوه ایجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازی یک پروژه Node با Typescript –  نحوه نصب و پیکربندی VNC در اوبونتو 18.04

ایجاد یک برنامه Django و اتصال آن به یک بانک اطلاعاتینصب و پیکربندی VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازی و اتصال رابط کاربری Django

تنظیم پلتفرم Cloud IDE کد سرور را در اوبونتو 18.04پیکربندی Apache HTTP با رویداد MPM و PHP-FPM

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/