Linux সার্ভারের কোনো স্ক্রিন নেই, আর বেশিরভাগ সময় দরকারও হয় না। মাঝে মাঝে হয়: এমন ব্রাউজার যেটা সার্ভারের নিজের ঠিকানা থেকে চলতে হবে, শুধু গ্রাফিক্যাল ইন্টারফেস থাকা কোনো টুল, অথবা এমন ডেস্কটপ যা চালু রেখে যেকোনো কম্পিউটার থেকে আবার ফিরে আসা যায়। এই গাইড Ubuntu 24.04-এ হালকা ডেস্কটপ XFCE আর xrdp যোগ করে, যাতে Windows সার্ভারের জন্য যে রিমোট ডেস্কটপ অ্যাপ ব্যবহার করেন, সেটা দিয়েই এটা খুলতে পারেন।
আমাদের 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 সব ঠিকানায় শোনে। Windows-এর মতো নয়, 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 দিয়ে যুক্ত হোন
নিজের কম্পিউটারে একটা টানেল খুলুন। Windows-এ PowerShell-এ একই ssh কমান্ড আছে:
ssh -L 13389:localhost:3389 deploy@YOUR.SERVER.IP
NAT প্ল্যানে -p আর ড্যাশবোর্ডের নিজস্ব SSH পোর্ট যোগ করুন। উইন্ডোটা খোলা রাখুন। তারপর রিমোট ডেস্কটপ অ্যাপকে localhost:13389-এ দিন আর deploy হিসেবে সেই ইউজারের পাসওয়ার্ড দিয়ে লগ ইন করুন:
- Windows: রিমোট ডেস্কটপ কানেকশন (
mstsc)। - macOS: App Store-এর Windows App।
- Linux: Remmina, অথবা
xfreerdp /v:localhost:13389 /u:deploy।
লোকাল পোর্ট 3389 নয়, 13389, কারণ আপনার কম্পিউটারে 3389 আগে থেকেই তার নিজের রিমোট ডেস্কটপের দখলে থাকতে পারে। প্রথমবার অ্যাপ একটা অচেনা সার্টিফিকেটের বিষয়ে সতর্ক করে। এটা সার্ভারের সেলফ-সাইনড সার্টিফিকেট, আর সংযোগ এমনিতেই SSH-এর ভেতরে এনক্রিপ্টেড।
6. আপনি কী পান
প্যানেল, ফাইল ম্যানেজার আর টার্মিনালসহ একটা XFCE ডেস্কটপ। আমাদের সার্ভারে একটা সেশন প্রায় 360 MB RAM বাড়িয়েছে: যুক্ত হওয়ার আগে 388 MB, সেশনের সময় 747 MB।
রিমোট ডেস্কটপের উইন্ডো বন্ধ করলে লগ আউট হয় না। আমাদের পরীক্ষায় সংযোগ কেটে দেওয়ার পরও একটা লম্বা কমান্ড চলছিল। আবার যুক্ত হলে xrdp আমাদের একই সেশনে ফিরিয়ে দিয়েছিল (তার লগে reconnected session ... display :10)। সেশন সত্যিই শেষ করতে XFCE মেনুতে Log Out ব্যবহার করুন।
কোন প্ল্যান
ডেস্কটপের CPU-র চেয়ে RAM বেশি দরকার। Micro (2 vCPU, 2 GB, 25 GB, $5/মাস) XFCE আর হালকা টুল আরামে চালায়। সেশনে ওয়েব ব্রাউজার খোলা রাখতে চাইলে Small নিন, 4 vCPU ও 4 GB, $8/মাস। দুটোই NAT প্ল্যান, আর এখানে তাতে কোনো সমস্যা নেই: রিমোট ডেস্কটপ আপনার SSH পোর্ট দিয়ে যায়।
আপনার আসলে Windows সফটওয়্যার দরকার হলে Windows VPS সেটা সরাসরি চালায়, আর Windows-Small শুরু $11/মাস থেকে। Ubuntu 24.04 আছে Ubuntu VPS পাতায়, আর VPS-এর প্রতিটি Linux প্ল্যানে পাওয়া যায়। পেমেন্ট হয় Base, Ethereum বা Polygon নেটওয়ার্কে USDT, USDC বা ETH-এ।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।