−25%

untuk Windows tahunan, hingga 31 Okt. Lihat paket

EQVPS
Mulai

Cara memasang desktop di VPS Linux dan terhubung dengan Remote Desktop (XFCE + xrdp)

Desktop grafis di VPS Ubuntu 24.04 yang dibuka dengan aplikasi Remote Desktop biasa: XFCE dan xrdp, dua setelan bawaan yang merusaknya (sesi salah, tanpa TLS), dan susunan yang membuat port 3389 tidak pernah menghadap internet. Lengkap dengan ukuran ruang disk dan RAM per sesi.

Server Linux tidak punya layar, dan sebagian besar waktu memang tidak butuh. Kadang butuh: peramban yang harus berjalan dari alamat server itu sendiri, alat yang hanya punya antarmuka grafis, atau desktop yang bisa dibiarkan menyala lalu dibuka lagi dari komputer mana pun. Panduan ini menambahkan desktop ringan XFCE dan xrdp ke Ubuntu 24.04, agar Anda bisa membukanya dengan aplikasi Remote Desktop yang sama seperti untuk server Windows.

Kami menguji setiap langkah di image Ubuntu 24.04 kami. Dua setelan bawaan menggagalkan percobaan pertama, dan di bawah kami memperbaiki keduanya. Anda memerlukan pengguna biasa dengan sudo; panduan menyiapkan Ubuntu membuatkan satu. Di contoh, namanya deploy.

1. Pasang XFCE dan xrdp

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

Di server 2 GB kami, ini memakan waktu sekitar empat setengah menit dan 1,7 GB disk (2,7 GB terpakai sebelum, 4,4 GB sesudah). xrdp 0.9.24 terpasang, langsung berjalan, dan mendengarkan di port 3389.

2. Buat xrdp menjalankan XFCE, bukan GNOME

Login sebagai pengguna yang akan memakai desktop dan jalankan:

echo xfce4-session > ~/.xsession

Tanpa file ini, login pertama kami menjalankan GNOME, bukan XFCE, dan sesi langsung mati dengan "Oh no! Something has gone wrong". Paket di langkah 1 ikut memasang pengelola sesi GNOME, dan Ubuntu menjadikannya bawaan. Dengan ~/.xsession, xrdp menjalankan XFCE.

3. Biarkan xrdp memakai TLS

xrdp berjalan sebagai penggunanya sendiri, xrdp, dan pengguna itu tidak bisa membaca kunci privat server. Koneksi pertama kami berhasil, tetapi /var/log/xrdp.log menunjukkan mengapa koneksi itu tidak patut dipercaya:

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

Tanpa kunci, xrdp kembali ke enkripsi RDP lama alih-alih TLS. Beri akses lalu mulai ulang:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

Koneksi berikutnya di log kami tertulis TLS connection established ... TLSv1.3. Anda bisa memeriksa server Anda dengan cara yang sama:

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

4. Jauhkan port 3389 dari internet

Setelah terpasang, xrdp mendengarkan di semua alamat. Berbeda dengan Windows, xrdp tidak punya Network Level Authentication, jadi siapa pun yang bisa mencapai port itu mendapat layar login untuk menebak kata sandi. Buat ia hanya mendengarkan di server itu sendiri:

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

Baris terakhir harus menampilkan 127.0.0.1:3389. Dalam uji kami, koneksi langsung ke alamat server di port 3389 setelah itu ditolak, sementara tunnel di langkah berikutnya tetap berjalan.

5. Terhubung lewat SSH

Di komputer Anda sendiri, buka tunnel. Di Windows, PowerShell punya perintah ssh yang sama:

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

Di paket NAT, tambahkan -p dan port SSH pribadi dari dasbor. Biarkan jendela itu terbuka. Lalu arahkan aplikasi Remote Desktop ke localhost:13389 dan login sebagai deploy dengan kata sandi pengguna itu:

  • Windows: Remote Desktop Connection (mstsc).
  • macOS: Windows App dari App Store.
  • Linux: Remmina, atau xfreerdp /v:localhost:13389 /u:deploy.

Port lokalnya 13389, bukan 3389, karena port 3389 di komputer Anda mungkin sudah dipakai Remote Desktop milik komputer itu sendiri. Pada kali pertama, aplikasi memperingatkan tentang sertifikat yang tidak dikenalnya. Itu sertifikat swa-tanda tangan milik server, dan koneksinya toh sudah terenkripsi di dalam SSH.

6. Apa yang Anda dapat

Anda mendapat desktop XFCE dengan panel, pengelola file, dan terminal. Di server kami, satu sesi menambah sekitar 360 MB RAM: 388 MB terpakai sebelum terhubung, 747 MB selama sesi.

Menutup jendela Remote Desktop tidak membuat Anda logout. Dalam uji kami, sebuah perintah panjang tetap berjalan setelah koneksi diputus. Saat kami terhubung lagi, xrdp mengembalikan kami ke sesi yang sama (reconnected session ... display :10 di log-nya). Untuk benar-benar mengakhiri sesi, gunakan Log Out di menu XFCE.

Paket mana

Desktop lebih butuh RAM daripada CPU. Micro (2 vCPU, 2 GB, 25 GB, $5/bulan) menjalankan XFCE dan alat ringan dengan nyaman. Jika Anda ingin peramban web selalu terbuka di sesi, pilih Small dengan 4 vCPU dan 4 GB seharga $8/bulan. Keduanya paket NAT, dan di sini itu tidak masalah: Remote Desktop lewat port SSH Anda.

Jika yang sebenarnya Anda butuhkan adalah perangkat lunak Windows, Windows VPS menjalankannya langsung, dan Windows-Small mulai dari $11/bulan. Ubuntu 24.04 ada di halaman Ubuntu VPS dan di semua paket Linux di VPS. Pembayaran dengan USDT, USDC, atau ETH di jaringan Base, Ethereum, atau Polygon.

FAQ

Bisakah saya terhubung dengan aplikasi Remote Desktop biasa dari Windows?

Bisa. xrdp memakai protokol RDP, jadi Remote Desktop Connection bawaan Windows, Windows App di macOS, serta Remmina atau xfreerdp di Linux semuanya berfungsi. Anda terhubung ke localhost lewat tunnel SSH, bukan ke alamat server.

Apakah ini jalan di paket NAT?

Ya. Koneksi RDP berjalan di dalam SSH, dan SSH adalah satu-satunya port yang diteruskan paket NAT ke server Anda. Panduan ini menyarankan cara ini di semua paket, karena port 3389 tetap tertutup bagi internet.

Berapa banyak RAM yang dipakai desktop?

Di server uji kami, satu sesi XFCE menambah sekitar 360 MB: memori terpakai naik dari 388 MB ke 747 MB. Paket Micro 2 GB cukup untuk desktop dan alat-alat ringan. Jika Anda akan menjalankan peramban web di sesi itu, 4 GB lebih nyaman.

Saya melihat layar hitam atau "Oh no! Something has gone wrong". Ada apa?

xrdp menjalankan GNOME, bukan XFCE. Paket di langkah 1 ikut memasang pengelola sesi GNOME, dan Ubuntu menjadikannya bawaan sistem. Buat ~/.xsession berisi xfce4-session untuk pengguna yang login, lalu sambungkan lagi.

Bisakah saya login lewat RDP sebagai root?

Bawaan xrdp mengizinkannya (AllowRootLogin=true di /etc/xrdp/sesman.ini), tetapi lebih baik gunakan pengguna biasa dengan sudo. Untuk memblokir root, setel AllowRootLogin=false lalu mulai ulang xrdp.

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.