سرور لینوکس صفحهنمایش ندارد و بیشتر وقتها به آن نیازی هم ندارد. گاهی دارد: مرورگری که باید از آدرس خود سرور اجرا شود، ابزاری که فقط رابط گرافیکی دارد، یا دسکتاپی که روشن میگذارید و از هر کامپیوتری به آن برمیگردید. این راهنما دسکتاپ سبک 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 انجام میشود.
نظرات
هنوز نظری نیست. اولین نفر باشید.