−25%

روی پرداخت سالانه Windows، تا ۳۱ اکتبر. مشاهده پلن‌ها

EQVPS
شروع کنید

نصب دسکتاپ روی VPS لینوکس و اتصال با Remote Desktop (XFCE + xrdp)

یک دسکتاپ گرافیکی روی VPS با Ubuntu 24.04 که با همان اپ معمولی Remote Desktop باز می‌شود: XFCE و xrdp، دو تنظیم پیش‌فرضی که کار را خراب می‌کنند (نشست اشتباه، بدون TLS) و روشی که پورت 3389 هرگز رو به اینترنت نباشد. همراه با اندازهٔ فضای دیسک و رم هر نشست.

سرور لینوکس صفحه‌نمایش ندارد و بیشتر وقت‌ها به آن نیازی هم ندارد. گاهی دارد: مرورگری که باید از آدرس خود سرور اجرا شود، ابزاری که فقط رابط گرافیکی دارد، یا دسکتاپی که روشن می‌گذارید و از هر کامپیوتری به آن برمی‌گردید. این راهنما دسکتاپ سبک XFCE و xrdp را به Ubuntu 24.04 اضافه می‌کند تا آن را با همان اپ Remote Desktop باز کنید که برای سرور ویندوز به کار می‌برید.

همهٔ قدم‌ها را روی ایمیج Ubuntu 24.04 خودمان آزمودیم. دو تنظیم پیش‌فرض تلاش اول را خراب کردند و پایین هر دو را درست می‌کنیم. به یک کاربر معمولی با sudo نیاز دارید؛ راهنمای راه‌اندازی Ubuntu یکی می‌سازد. در مثال‌ها نامش deploy است.

1. XFCE و xrdp را نصب کنید

sudo apt update
sudo apt install -y xfce4 xfce4-goodies xrdp

روی سرور 2 GB ما این کار حدود چهار و نیم دقیقه طول کشید و 1.7 GB دیسک گرفت (قبلش 2.7 GB و بعدش 4.4 GB پر بود). xrdp 0.9.24 نصب می‌شود، فوراً اجرا می‌شود و روی پورت 3389 گوش می‌دهد.

2. کاری کنید xrdp به‌جای GNOME، XFCE را اجرا کند

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

echo xfce4-session > ~/.xsession

بدون این فایل، اولین ورود ما به‌جای XFCE، GNOME را اجرا کرد و نشست فوراً با "Oh no! Something has gone wrong" از کار افتاد. بسته‌های قدم 1 مدیر نشست GNOME را هم با خود می‌آورند و Ubuntu آن را پیش‌فرض می‌کند. با وجود ~/.xsession، xrdp دسکتاپ XFCE را اجرا می‌کند.

3. بگذارید xrdp از TLS استفاده کند

xrdp با کاربر مخصوص خودش یعنی xrdp اجرا می‌شود و این کاربر نمی‌تواند کلید خصوصی سرور را بخواند. اولین اتصال ما برقرار شد، ولی /var/log/xrdp.log نشان داد چرا نباید به آن اعتماد کرد:

Cannot read private key file /etc/xrdp/key.pem: Permission denied
Non-TLS connection established from ::ffff:127.0.0.1

بدون کلید، xrdp به‌جای TLS به رمزنگاری قدیمی RDP برمی‌گردد. به آن دسترسی بدهید و ری‌استارتش کنید:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

اتصال بعدی در لاگ ما این‌طور ثبت شد: TLS connection established ... TLSv1.3. سرور خودتان را هم می‌توانید همین‌طور بررسی کنید:

sudo grep -E "TLS connection|Non-TLS" /var/log/xrdp.log | tail -2

4. پورت 3389 را از اینترنت دور نگه دارید

بعد از نصب، xrdp روی همهٔ آدرس‌ها گوش می‌دهد. برخلاف ویندوز، xrdp قابلیت Network Level Authentication ندارد، پس هر کسی که به پورت برسد یک صفحهٔ ورود برای حدس زدن رمز می‌گیرد. کاری کنید فقط روی خود سرور گوش بدهد:

sudo sed -i 's|^port=3389$|port=tcp://127.0.0.1:3389|' /etc/xrdp/xrdp.ini
sudo systemctl restart xrdp
ss -ltn | grep 3389

خط آخر باید 127.0.0.1:3389 را نشان دهد. در آزمایش ما بعد از این، اتصال مستقیم به آدرس سرور روی 3389 رد شد و تونل قدم بعدی همچنان کار می‌کرد.

5. از راه SSH وصل شوید

روی کامپیوتر خودتان یک تونل باز کنید. در ویندوز همین فرمان ssh در PowerShell هست:

ssh -L 13389:localhost:3389 deploy@YOUR.SERVER.IP

در پلن NAT گزینهٔ -p و پورت SSH اختصاصی داشبورد را اضافه کنید. آن پنجره را باز نگه دارید. بعد اپ Remote Desktop را روی localhost:13389 تنظیم کنید و با deploy و رمز همین کاربر وارد شوید:

  • ویندوز: Remote Desktop Connection (mstsc).
  • macOS: اپ Windows App از App Store.
  • لینوکس: Remmina یا xfreerdp /v:localhost:13389 /u:deploy.

پورت محلی به‌جای 3389 عدد 13389 است، چون ممکن است 3389 روی کامپیوتر شما در اختیار Remote Desktop خودش باشد. بار اول اپ دربارهٔ گواهی‌ای که نمی‌شناسد هشدار می‌دهد. این گواهی خودامضای سرور است و اتصال به هر حال داخل SSH رمزنگاری شده است.

6. چه چیزی به دست می‌آورید

یک دسکتاپ XFCE با پنل، مدیر فایل و ترمینال. روی سرور ما یک نشست حدود 360 MB رم اضافه کرد: 388 MB پیش از اتصال و 747 MB در طول نشست.

بستن پنجرهٔ Remote Desktop شما را از نشست خارج نمی‌کند. در آزمایش ما یک فرمان طولانی بعد از قطع اتصال همچنان ادامه داد. وقتی دوباره وصل شدیم، xrdp ما را به همان نشست برگرداند (reconnected session ... display :10 در لاگش). برای بستن واقعی نشست از Log Out در منوی XFCE استفاده کنید.

کدام پلن

دسکتاپ بیشتر از پردازنده به رم نیاز دارد. Micro (2 vCPU، 2 GB، 25 GB، ماهی $5) XFCE و ابزارهای سبک را راحت اجرا می‌کند. اگر قرار است مرورگری همیشه در نشست باز باشد، Small را با 4 vCPU و 4 GB و ماهی $8 بگیرید. هر دو پلن NAT هستند و اینجا مشکلی نیست: Remote Desktop از پورت SSH شما می‌گذرد.

اگر چیزی که واقعاً لازم دارید نرم‌افزار ویندوزی است، یک Windows VPS آن را مستقیم اجرا می‌کند و Windows-Small از ماهی $11 شروع می‌شود. Ubuntu 24.04 در صفحهٔ Ubuntu VPS هست و روی همهٔ پلن‌های لینوکس در VPS در دسترس است. پرداخت با USDT، USDC یا ETH روی شبکه‌های Base، Ethereum یا Polygon انجام می‌شود.

پرسش‌های متداول

آیا می‌توانم با اپ معمولی Remote Desktop ویندوز وصل شوم؟

بله. xrdp با پروتکل RDP کار می‌کند، پس Remote Desktop Connection داخلی ویندوز، Windows App در macOS و Remmina یا xfreerdp در لینوکس همه کار می‌کنند. شما از راه تونل SSH به localhost وصل می‌شوید، نه به آدرس سرور.

روی پلن NAT کار می‌کند؟

بله. اتصال RDP داخل SSH حرکت می‌کند و SSH همان تنها پورتی است که پلن NAT به سرور شما هدایت می‌کند. این راهنما همین روش را روی همهٔ پلن‌ها پیشنهاد می‌کند، چون پورت 3389 به روی اینترنت بسته می‌ماند.

دسکتاپ چقدر رم مصرف می‌کند؟

روی سرور آزمایشی ما یک نشست XFCE حدود 360 MB اضافه کرد: حافظهٔ مصرفی از 388 MB به 747 MB رسید. پلن Micro با 2 GB برای دسکتاپ و ابزارهای سبک کافی است. اگر در نشست مرورگر اجرا می‌کنید، 4 GB راحت‌تر است.

صفحهٔ سیاه یا "Oh no! Something has gone wrong" می‌بینم. مشکل چیست؟

xrdp به‌جای XFCE، GNOME را اجرا کرده است. بسته‌های قدم 1 مدیر نشست GNOME را هم با خود می‌آورند و Ubuntu آن را پیش‌فرض سیستم می‌کند. برای کاربری که وارد می‌شود فایل ~/.xsession را با محتوای xfce4-session بسازید و دوباره وصل شوید.

آیا می‌توانم با RDP به‌عنوان root وارد شوم؟

xrdp به‌طور پیش‌فرض اجازه می‌دهد (AllowRootLogin=true در /etc/xrdp/sesman.ini)، ولی بهتر است از یک کاربر معمولی با sudo استفاده کنید. برای بستن root مقدار AllowRootLogin=false بگذارید و xrdp را ری‌استارت کنید.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.