
به اشتراک بگذارید
آموزش سرور | بلاگ وبداده
نصب و تنظیم VNC Server روی CentOS؛ دسترسی گرافیکی از راه دور
- ابزار اصلی: TigerVNC سرور VNC متنباز و پرکاربرد روی خانواده CentOS و RHEL است.
- نگاشت پورت: هر display با شماره
:Nبه پورت5900+Nنگاشت میشود (مثلاً:1روی 5901). - محیط گرافیکی لازم است: سرورها معمولاً بدون دسکتاپ نصب میشوند؛ باید GNOME یا Xfce نصب شود.
- امنیت کلیدی: پروتکل VNC رمزگذارینشده است؛ اتصال را از طریق تونل SSH برقرار کنید.
- دو نسل CentOS: روش پیکربندی در CentOS 7 و CentOS Stream 9 با هم فرق دارد.
در یک جمله
نصب VNC روی CentOS؛ مفهوم و کاربرد دسترسی گرافیکی
:1 روی پورت 5901، :2 روی 5902 و به همین ترتیب (یعنی پورت برابر است با 5900 بهعلاوه شماره display).تشبیه ساده

چرا از VNC برای مدیریت گرافیکی سرور استفاده کنیم؟
- مدیریت بصری: اجرای نرمافزارهای گرافیکی و کار با محیط دسکتاپ کامل، بدون نیاز به حفظکردن دهها دستور.
- مصرف کم منابع: پروتکل VNC سبک است و حتی روی سرورهای کممصرف هم بهخوبی کار میکند.
- پشتیبانی از چند نشست: TigerVNC به هر کاربر یک دسکتاپ مجازی مستقل با شماره display جدا میدهد.
- چندسکویی بودن کلاینت: از ویندوز، مک و لینوکس با نرمافزارهای متنوع VNC Viewer میتوانید وصل شوید.
- مناسب کارهای آموزشی و پشتیبانی: تیم پشتیبانی میتواند مستقیماً دسکتاپ سرور را ببیند و راهنمایی کند.
آموزش گامبهگام نصب و راهاندازی
مرحله ۱: نصب محیط دسکتاپ و سرور TigerVNC
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 --reloadBashهشدار امنیتی مهم
مرحله ۴: اتصال امن از طریق تونل SSH
localhost:5901 وصل شوید:# اتصال امن از طریق تونل SSH (بهجای اتصال مستقیمِ رمزگذارینشده)
# این دستور را روی سیستم محلی خود (لینوکس/مک) اجرا کنید:
ssh -L 5901:127.0.0.1:5901 -N -f -l webdade SERVER_IP
# سپس در VNC Viewer به این آدرس وصل شوید:
# localhost:5901Bashبررسی صحت عملکرد

CentOS Stream 9 یا CentOS 7؟ تفاوت روش پیکربندی
| معیار | 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 |
از منابع معتبر
روش CentOS 7 قدیمی (در صورت نیاز)
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لاگ را ببینید؛ اغلب بهخاطر نبودِ محیط دسکتاپ یا اشتباه در نام کاربر است. - اتصال رد میشود: بررسی کنید پورت متناظر display در فایروال باز باشد (پورت = 5900 + شماره display).
- صفحه خاکستری یا خالی: معمولاً یعنی محیط دسکتاپ درست تنظیم نشده؛ مقدار session یا فایل xstartup را بازبینی کنید.
- عدم اتصال با وجود سرویس فعال: احتمالاً بهجای تونل SSH مستقیم وصل شدهاید؛ مطمئن شوید تونل برقرار است و به localhost وصل میشوید.
- تداخل شماره display: اگر display اشغال است، یک شماره آزاد دیگر (مثلاً :2) انتخاب و پورت آن را باز کنید.
محدودیتها و نکاتی که باید بدانید
- نبودِ رمزگذاری پیشفرض: بدون تونل SSH یا تنظیم securitytypes، ترافیک VNC ناامن است.
- مصرف منابع محیط دسکتاپ: نصب GNOME کامل روی سرور، رم و پردازنده بیشتری مصرف میکند؛ روی سرورهای کوچک Xfce سبکتر است.
- تفاوت نسخهها: مسیر پیکربندی CentOS 7 و Stream 9 فرق دارد و آموزشهای قدیمی ممکن است روی نسخه جدید کار نکنند.
- کندی روی پهنای باند پایین: چون تصویر دسکتاپ منتقل میشود، روی اتصالهای کند ممکن است تجربه کاربری روان نباشد.
- پایان پشتیبانی CentOS 7: اجرای سرویس روی سیستمعاملی که دیگر پچ امنیتی نمیگیرد، ریسک امنیتی دارد.
اجرای پایدار سرور لینوکس روی زیرساخت وبداده
✅ دیتاسنترهای ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن به شما.
✅ امکان ارتقای منابع متناسب با نیاز محیط گرافیکی، بدون نیاز به مهاجرت.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در راهاندازی سرور و رفع مشکلات اتصال.
پرسشهای پرتکرار درباره VNC روی CentOS
VNC دقیقاً چه کاری انجام میدهد؟
VNC یک سیستم اشتراک دسکتاپ گرافیکی است که تصویر صفحه سرور را به کامپیوتر شما منتقل میکند و ورودی ماوس و کیبورد شما را به سرور برمیگرداند. به این ترتیب میتوانید سرور بدون مانیتور را مثل یک دسکتاپ معمولی و بهصورت بصری مدیریت کنید.
چرا باید محیط دسکتاپ هم نصب کنم؟
سرورهای لینوکسی معمولاً بدون رابط گرافیکی نصب میشوند. VNC فقط تصویر یک دسکتاپ را منتقل میکند، بنابراین ابتدا باید یک محیط دسکتاپ مثل GNOME یا Xfce نصب شود تا چیزی برای نمایش وجود داشته باشد. بدون آن معمولاً صفحه خاکستری یا خالی میبینید.
پورت VNC چطور تعیین میشود؟
هر نشست VNC روی یک display با شماره مشخص اجرا میشود و پورت برابر است با 5900 بهعلاوه شماره display. یعنی display با شماره :1 روی پورت 5901، display :2 روی 5902 و به همین ترتیب. همین پورت را باید در فایروال باز کنید.
آیا اتصال VNC امن است؟
پروتکل VNC بهصورت پیشفرض رمزگذارینشده است و میتواند شنود شود. روش توصیهشده این است که اتصال را از طریق تونل SSH برقرار کنید تا ترافیک رمزگذاری شود. همچنین بهتر است پورت VNC را مستقیماً روی اینترنت باز نگذارید و سرویس را با کاربر root اجرا نکنید.
تفاوت نصب VNC در CentOS 7 و CentOS Stream 9 چیست؟
در CentOS 7 از yum، محیط Xfce و فایل ~/.vnc/xstartup استفاده میشود و نام کاربر داخل فایل سرویس systemd ویرایش میگردد. در CentOS Stream 9 از dnf، معمولاً GNOME و فایل /etc/tigervnc/vncserver.users برای نگاشت کاربر به display استفاده میشود و محیط دسکتاپ در ~/.vnc/config تعیین میگردد.
آیا چند کاربر میتوانند همزمان وصل شوند؟
بله. TigerVNC به هر کاربر یک دسکتاپ مجازی مستقل با شماره display جداگانه میدهد. کافی است برای هر کاربر یک display و پورت متفاوت تعریف کنید و سرویس متناظر را فعال نمایید. هر نشست جدا و با دسترسی خودش کار میکند.
روی CentOS 7 نصب کنم یا نسخه جدیدتر؟
CentOS 7 از 30 ژوئن 2024 به پایان پشتیبانی رسیده و دیگر بهروزرسانی امنیتی دریافت نمیکند. برای سرورهای جدید بهتر است از CentOS Stream 9 یا جایگزینهایی مانند Rocky Linux و AlmaLinux استفاده کنید تا هم پشتیبانی داشته باشید و هم امنیت بیشتری.
اگر بعد از نصب فقط صفحه خاکستری ببینم چه کنم؟
این مشکل تقریباً همیشه یعنی محیط دسکتاپ درست تنظیم نشده است. مطمئن شوید یک محیط دسکتاپ نصب کردهاید و مقدار session در ~/.vnc/config (یا خط exec در xstartup روی CentOS 7) درست تعریف شده باشد، سپس سرویس را دوباره راهاندازی کنید.
جمعبندی و قدم بعدی شما
جمعبندی سریع
✅ سرویس systemd را پیکربندی و کاربر/رمز را تنظیم کنید.
✅ پورت (5900 + شماره display) را در فایروال باز کنید.
✅ همیشه از طریق تونل SSH وصل شوید، نه اتصال مستقیم.



