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

به اشتراک بگذارید
آموزش سرور | بلاگ وبداده
نصب و تنظیم VNC Server روی CentOS؛ دسترسی گرافیکی از راه دور
:N به پورت 5900+N نگاشت میشود (مثلاً :1 روی 5901).:1 روی پورت 5901، :2 روی 5902 و به همین ترتیب (یعنی پورت برابر است با 5900 بهعلاوه شماره display).
tigervnc-server را اضافه کنید:# CentOS Stream 9 / RHEL 9 — ابتدا سیستم را بهروز کنید
sudo dnf update -y
# نصب محیط دسکتاپ گرافیکی (در صورت نبودِ رابط گرافیکی)
sudo dnf groupinstall "Server with GUI" -y
# نصب سرور TigerVNC
sudo dnf install tigervnc-server -yBash/etc/tigervnc/vncserver.users انجام میشود. فایل سرویس systemd را کپی کنید، کاربر را در فایل کاربران تعریف کنید و سپس با همان کاربر عادی رمز VNC را تنظیم کنید (برای ویرایش فایلها میتوانید از ویرایشگر Nano هم استفاده کنید):# کپی فایل سرویس systemd با شماره display دلخواه (اینجا :1)
sudo cp /usr/lib/systemd/system/vncserver@.service \
/etc/systemd/system/vncserver@:1.service
# نگاشت display به کاربر در فایل کاربران VNC
sudo vi /etc/tigervnc/vncserver.users
# این خط را اضافه کنید (بهجای webdade نام کاربر خود را بگذارید):
# :1=webdade
# تنظیم رمز VNC با همان کاربر عادی (نه root)؛ به پرسش view-only پاسخ n
vncpasswdBash~/.vnc/config چیزی شبیه این است:# فایل ~/.vnc/config — محیط دسکتاپ و رزولوشن نشست
session=gnome
securitytypes=vncauth,tlsvnc
geometry=1280x720INI:1) فعال و اجرا کنید و وضعیت آن را بررسی کنید. در پایان، پورت متناظر را در فایروال باز کنید:# بارگذاری مجدد systemd و فعال/اجرای سرویس (display :1 = پورت 5901)
sudo systemctl daemon-reload
sudo systemctl enable --now vncserver@:1.service
sudo systemctl status vncserver@:1.service
# باز کردن پورت در فایروال (پورت = 5900 + شماره display)
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reloadBashlocalhost:5901 وصل شوید:# اتصال امن از طریق تونل SSH (بهجای اتصال مستقیمِ رمزگذارینشده)
# این دستور را روی سیستم محلی خود (لینوکس/مک) اجرا کنید:
ssh -L 5901:127.0.0.1:5901 -N -f -l webdade SERVER_IP
# سپس در VNC Viewer به این آدرس وصل شوید:
# localhost:5901Bash
| معیار | CentOS Stream 9 / RHEL 9 | CentOS 7 (قدیمی) |
|---|---|---|
| مدیر بسته | dnf | yum |
| نگاشت کاربر به display | فایل /etc/tigervnc/vncserver.users | ویرایش User در فایل سرویس systemd |
| تعیین محیط دسکتاپ | session=gnome در ~/.vnc/config | exec startxfce4 در ~/.vnc/xstartup |
| محیط دسکتاپ رایج | GNOME | Xfce (سبک، از مخزن EPEL) |
| فایل سرویس | کپی vncserver@.service + شماره display | کپی vncserver@.service + ویرایش نام کاربر |
| وضعیت پشتیبانی | نسل فعلی و فعال | پایان پشتیبانی: 30 ژوئن 2024 |
vncserver پیکربندی اولیه و رمز را میسازد و محیط دسکتاپ در فایل ~/.vnc/xstartup تعیین میشود:# CentOS 7 (روش قدیمی) — نصب محیط سبک Xfce و TigerVNC
sudo yum install epel-release -y
sudo yum groupinstall xfce -y
sudo yum install tigervnc-server -y
# ساخت پیکربندی اولیه و رمز (بدون sudo)، سپس توقف نمونه
vncserver
vncserver -kill :1
# تعیین محیط دسکتاپ در فایل xstartup
echo "exec startxfce4" >> ~/.vnc/xstartupBashvncserver@.service کپی میکنید، نام کاربر را داخل آن ویرایش و سرویس را فعال میکنید. تفاوت اصلی در محل تعریف کاربر و فایل تعیین محیط دسکتاپ است.journalctl -u vncserver@:1 لاگ را ببینید؛ اغلب بهخاطر نبودِ محیط دسکتاپ یا اشتباه در نام کاربر است.VNC یک سیستم اشتراک دسکتاپ گرافیکی است که تصویر صفحه سرور را به کامپیوتر شما منتقل میکند و ورودی ماوس و کیبورد شما را به سرور برمیگرداند. به این ترتیب میتوانید سرور بدون مانیتور را مثل یک دسکتاپ معمولی و بهصورت بصری مدیریت کنید.
سرورهای لینوکسی معمولاً بدون رابط گرافیکی نصب میشوند. VNC فقط تصویر یک دسکتاپ را منتقل میکند، بنابراین ابتدا باید یک محیط دسکتاپ مثل GNOME یا Xfce نصب شود تا چیزی برای نمایش وجود داشته باشد. بدون آن معمولاً صفحه خاکستری یا خالی میبینید.
هر نشست VNC روی یک display با شماره مشخص اجرا میشود و پورت برابر است با 5900 بهعلاوه شماره display. یعنی display با شماره :1 روی پورت 5901، display :2 روی 5902 و به همین ترتیب. همین پورت را باید در فایروال باز کنید.
پروتکل VNC بهصورت پیشفرض رمزگذارینشده است و میتواند شنود شود. روش توصیهشده این است که اتصال را از طریق تونل SSH برقرار کنید تا ترافیک رمزگذاری شود. همچنین بهتر است پورت VNC را مستقیماً روی اینترنت باز نگذارید و سرویس را با کاربر root اجرا نکنید.
در CentOS 7 از yum، محیط Xfce و فایل ~/.vnc/xstartup استفاده میشود و نام کاربر داخل فایل سرویس systemd ویرایش میگردد. در CentOS Stream 9 از dnf، معمولاً GNOME و فایل /etc/tigervnc/vncserver.users برای نگاشت کاربر به display استفاده میشود و محیط دسکتاپ در ~/.vnc/config تعیین میگردد.
بله. TigerVNC به هر کاربر یک دسکتاپ مجازی مستقل با شماره display جداگانه میدهد. کافی است برای هر کاربر یک display و پورت متفاوت تعریف کنید و سرویس متناظر را فعال نمایید. هر نشست جدا و با دسترسی خودش کار میکند.
CentOS 7 از 30 ژوئن 2024 به پایان پشتیبانی رسیده و دیگر بهروزرسانی امنیتی دریافت نمیکند. برای سرورهای جدید بهتر است از CentOS Stream 9 یا جایگزینهایی مانند Rocky Linux و AlmaLinux استفاده کنید تا هم پشتیبانی داشته باشید و هم امنیت بیشتری.
این مشکل تقریباً همیشه یعنی محیط دسکتاپ درست تنظیم نشده است. مطمئن شوید یک محیط دسکتاپ نصب کردهاید و مقدار session در ~/.vnc/config (یا خط exec در xstartup روی CentOS 7) درست تعریف شده باشد، سپس سرویس را دوباره راهاندازی کنید.