Hướng dẫn cài đặt VNC trên Ubuntu: Truy cập Desktop từ xa dễ dàng

目次

1. Giới thiệu

Tại sao nên sử dụng VNC trên Ubuntu?

Trong số các bản phân phối Linux, “Ubuntu” là một lựa chọn phổ biến được sử dụng rộng rãi cho phát triển và máy chủ. Thông thường, máy chủ Ubuntu được vận hành qua dòng lệnh (CLI), nhưng vẫn có nhiều trường hợp cần sử dụng giao diện đồ họa người dùng (GUI).

Lúc này, công nghệ VNC (Virtual Network Computing) trở nên hữu ích. Với VNC, bạn có thể kết nối từ xa qua mạng tới máy Ubuntu và thao tác môi trường desktop giống như làm việc trên máy tính cục bộ. Điều này giúp việc thao tác trở nên trực quan mà không cần phải nhớ nhiều lệnh phức tạp, rất phù hợp với người mới bắt đầu với Linux hoặc người dùng chuyển từ Windows sang.

Nhu cầu sử dụng Desktop từ xa

Gần đây, do xu hướng làm việc từ xa phát triển, nhu cầu cài đặt VNC trên Ubuntu để xây dựng môi trường desktop truy cập từ xa ngày càng tăng. Đặc biệt, khi cài đặt VNC trên máy chủ Ubuntu dùng cho phát triển sẽ giúp việc cấu hình và bảo trì trở nên hiệu quả hơn.

Ngoài ra, nhiều người cũng muốn thao tác môi trường Ubuntu trên cloud hoặc VPS với giao diện GUI, và VNC đóng vai trò là cầu nối cho nhu cầu này.

Đối tượng và mục tiêu của bài viết

Bài viết này dành cho các đối tượng sau:

  • Những ai lần đầu cài đặt VNC trên Ubuntu
  • Người muốn xây dựng môi trường GUI vì không tự tin với chỉ dòng lệnh
  • Người cảm thấy hạn chế khi chỉ dùng SSH, muốn sử dụng VNC thay vì RDP
  • Người muốn có môi trường truy cập từ xa tiện lợi, bao gồm cả nhập tiếng Nhật qua GUI

Bài viết sẽ hướng dẫn chi tiết, dễ hiểu từng bước từ cài đặt VNC server trên Ubuntu cho đến kết nối desktop từ xa, phù hợp với cả người mới bắt đầu. Các nội dung thực tế như thiết lập nhập tiếng Nhậtkết nối an toàn qua SSH Tunnel cũng được đề cập đầy đủ.

2. Điều kiện tiên quyết & Chuẩn bị

Những điều cần kiểm tra trước khi cài đặt VNC trên Ubuntu

Để cài đặt và sử dụng VNC server trên Ubuntu, bạn cần chuẩn bị một số điều kiện và thao tác cơ bản. Phần này sẽ liệt kê những điểm cần xác nhận trước khi bắt đầu.

Phiên bản Ubuntu áp dụng

Bài viết tập trung vào các phiên bản Ubuntu 20.04 LTS hoặc Ubuntu 22.04 LTS. Đây là các bản phát hành phổ biến và ổn định, tương thích tốt với VNC server cũng như môi trường nhập tiếng Nhật.

Nếu bạn dùng phiên bản khác, các thao tác cơ bản vẫn tương tự, nhưng tên gói hoặc một số chức năng có thể khác, hãy chú ý.

Yêu cầu và cấu hình máy chủ

VNC là phương pháp truy cập từ xa dựa trên GUI, nên cần tài nguyên nhất định (CPU, RAM). Cấu hình khuyến nghị khi cài đặt VNC trên Ubuntu như sau:

  • CPU: Tối thiểu 2 nhân (ít nhất 1GHz)
  • RAM: Khuyến nghị trên 2GB (ưu tiên dùng desktop nhẹ như Xfce)
  • Lưu trữ: Còn trống ít nhất 10GB
  • Mạng: Có thể SSH, mở port VNC (mặc định là 5901,…)

Quyền và công cụ cần thiết

Để cài đặt và cấu hình VNC server, bạn cần:

  • Tài khoản có quyền sudo
  • SSH client (trên Windows có thể dùng PuTTY, trên macOS/Linux dùng terminal)

Máy chủ Ubuntu cần kích hoạt SSH. Nếu chưa, hãy cài bằng:
sudo apt install openssh-server

Lựa chọn môi trường desktop dự định sử dụng

VNC là công nghệ truyền GUI, do đó Ubuntu phải cài đặt desktop environment. Tuy nhiên, GNOME mặc định của “Ubuntu Desktop” khá nặng với máy chủ.

Do đó, bài viết này lấy ví dụ với môi trường desktop nhẹ như Xfce hoặc MATE:

  • Xfce: Nhẹ, ổn định, dễ dùng cho người mới
  • MATE: Giao diện cổ điển, hoạt động mượt mà

Chi tiết về lựa chọn này sẽ được nói rõ ở phần sau.

3. Cài đặt môi trường Desktop

Vì sao cần cài desktop environment?

Khi kết nối từ xa bằng VNC, bạn phải có desktop environment, nếu không sẽ không hiện màn hình. VNC là công nghệ điều khiển GUI, nên nếu máy chủ Ubuntu chỉ có CLI thì VNC sẽ không hoạt động.

Lựa chọn môi trường desktop nhẹ

Desktop environment phù hợp nhất cho VNC là loại nhẹ, ổn định. Dưới đây là 2 lựa chọn phổ biến:

1. Xfce

Xfce rất nhẹ, phù hợp với cả PC cũ hoặc VPS cấu hình thấp. Giao diện đơn giản, dễ dùng, hoạt động tốt với VNC.

2. MATE

MATE dựa trên GNOME 2, giao diện cổ điển nhưng vẫn nhẹ và ổn định.

Cách cài đặt Xfce (Khuyến nghị)

Chạy các lệnh sau để cài đặt Xfce:

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

xfce4-goodies là gói bổ sung nhiều tiện ích cho Xfce.

Quá trình cài đặt có thể mất vài phút, hãy kiểm tra lỗi (nếu có).

Cách cài đặt MATE (Tùy chọn thay thế)

Nếu muốn dùng MATE, chạy:

sudo apt update
sudo apt install -y ubuntu-mate-core

MATE “nặng” hơn Xfce chút nhưng giao diện đẹp, phù hợp với ai thích sự cổ điển.

Lưu ý: Không nên cài nhiều desktop environment cùng lúc

Không khuyến khích cài song song nhiều môi trường desktop (Xfce, MATE,…) vì dễ gây xung đột, rối cấu hình và phát sinh lỗi khi dùng VNC.
Chỉ nên chọn một môi trường và sử dụng.

4. Cài đặt & cấu hình VNC Server

Cần phần mềm server nào để dùng VNC trên Ubuntu?

VNC gồm 2 phần mềm: server (trên Ubuntu) và client (máy bạn thao tác).
Có nhiều loại VNC server, nhưng phổ biến nhất là TigerVNC (khuyến nghị) hoặc TightVNC.

  • TigerVNC (khuyến nghị): Nhanh, ổn định, tương thích tốt với Xfce/MATE.
  • TightVNC: Nhẹ, phù hợp với máy cũ, nhưng phát triển chậm.

Cách cài TigerVNC

Chạy:

sudo apt update
sudo apt install -y tigervnc-standalone-server tigervnc-common

Sau khi cài xong, tiến hành cấu hình ban đầu.

Khởi động lần đầu & đặt mật khẩu

Khởi động lần đầu, đặt mật khẩu kết nối:

vncserver

Bạn sẽ thấy thông báo như sau:

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)?

“view-only password” là mật khẩu chỉ xem. Thường chọn “n”.

Chỉnh sửa file cấu hình VNC (xstartup)

Sau khi tạo session VNC, file ~/.vnc/xstartup sẽ xuất hiện. Đây là script chỉ định desktop environment khởi động khi kết nối.

Cấu hình cho Xfce

#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &

Cấu hình cho MATE

#!/bin/sh
xrdb $HOME/.Xresources
mate-session &

Sau khi chỉnh sửa, cấp quyền thực thi:

chmod +x ~/.vnc/xstartup

Khởi động & kiểm tra session VNC

Khi đã sẵn sàng, khởi động session VNC:

vncserver :1

:1 là số phiên (virtual display). Cổng dùng sẽ là 5901 (5900 + số phiên).

Dừng session

Để dừng:

vncserver -kill :1

5. Thiết lập tự động khởi động VNC Server

Vì sao nên tự động hóa việc khởi động VNC Server?

VNC server thường yêu cầu người dùng tự khởi động. Nếu phải làm thủ công sau mỗi lần khởi động lại server sẽ rất bất tiện.

Do đó, dùng Systemd để tạo dịch vụ khởi động tự động là lựa chọn tối ưu cho môi trường ổn định.

Tạo file service cho Systemd

Tạo file Systemd riêng cho từng user. Ví dụ cho session :1:

sudo nano /etc/systemd/system/vncserver@:1.service

Nội dung mẫu:

[Unit]
Description=Start TigerVNC server at startup
After=network.target

[Service]
Type=forking
User=yourusername
PAMName=login
PIDFile=/home/yourusername/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -geometry 1280x800 -depth 24
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

※ Thay yourusername bằng tên user của bạn.

Kích hoạt và khởi động dịch vụ

Sau khi lưu file, chạy các lệnh:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service
sudo systemctl start vncserver@:1.service

Kiểm tra trạng thái dịch vụ

sudo systemctl status vncserver@:1.service

Nếu hiện Active: active (running) là thành công.

Lưu ý: Dịch vụ này chỉ áp dụng cho từng user

Nếu nhiều người dùng muốn dùng VNC, cần tạo file dịch vụ riêng cho từng user.

6. Cách kết nối từ phía Client

VNC Client là gì?

Cài VNC server trên Ubuntu xong, bạn cần cài phần mềm client trên máy tính để truy cập từ xa.

Các phần mềm VNC Client khuyến nghị

Các client phổ biến, tương thích tốt với Ubuntu:

Tên clientHệ điều hànhĐặc điểm
RealVNC ViewerWindows / Mac / Linux / iOS / AndroidGiao diện đơn giản, ổn định, phù hợp doanh nghiệp
TigerVNC ViewerWindows / Mac / LinuxMã nguồn mở, miễn phí
UltraVNCWindowsNhiều tính năng, phù hợp người dùng nâng cao
RemminaChỉ dành cho LinuxHỗ trợ nhiều giao thức, giao diện GUI

RealVNC Viewer hoặc TigerVNC Viewer là lựa chọn an toàn, miễn phí.

Cách kết nối bằng RealVNC Viewer (Ví dụ)

Cách dùng TigerVNC Viewer cũng tương tự.

1. Cài RealVNC Viewer

Tải bản phù hợp từ trang chủ (https://www.realvnc.com/).

2. Nhập thông tin kết nối

Sau khi mở app, nhập:

<IP máy chủ>:5901

hoặc

<IP máy chủ>:1

Cả hai đều hợp lệ (5900 + số phiên = port).

3. Nhập mật khẩu

Nhập mật khẩu VNC đã thiết lập.
Nếu đúng, bạn sẽ thấy desktop của Ubuntu.

Khắc phục lỗi khi không kết nối được

Một số nguyên nhân:

● Chưa mở port

Kiểm tra tường lửa/server/cloud đã mở port 5901 chưa.

● Chưa kết nối qua SSH Tunnel

Nếu bảo mật, cần dùng SSH Tunnel (giới thiệu ở phần sau).

Kết nối từ Mac

Trên Mac cũng có thể dùng RealVNC hoặc TigerVNC. Cách nhập địa chỉ kết nối tương tự Windows.

Sử dụng trên điện thoại

Có app VNC client cho iOS/Android, thuận tiện nếu cần thao tác nhanh trên tablet/smartphone. Tuy nhiên thao tác sẽ không tiện bằng máy tính.

7. Cài đặt nhập tiếng Nhật

Tại sao cần cấu hình nhập tiếng Nhật trên VNC?

Sau khi kết nối VNC, bạn thường không thể nhập tiếng Nhật (dù thao tác khác bình thường). Điều này sẽ gây khó khăn khi soạn blog, đổi tên file hoặc chat.

Ubuntu thường cài đặt mặc định môi trường tiếng Anh, nên phải bổ sung locale & IME cho tiếng Nhật.

Cài đặt locale tiếng Nhật

Chạy:

sudo apt update
sudo apt install -y language-pack-ja

Sau đó, thiết lập lại locale:

sudo update-locale LANG=ja_JP.UTF-8

Đăng xuất hoặc khởi động lại để có hiệu lực (nếu giao diện bị lỗi có thể để tiếng Anh).

Chọn input method: fcitx vs ibus

Hai cách phổ biến:

Input methodĐặc điểm
fcitx-mozcNhẹ, dễ cấu hình, hoạt động ổn định trên VNC
ibus-mozcHợp với GNOME nhưng có thể không ổn định trên VNC

Khuyến nghị dùng fcitx-mozc trên môi trường VNC.

Cách cài đặt fcitx-mozc

sudo apt install -y fcitx-mozc

Sau đó, đặt biến môi trường sau vào ~/.xprofile hoặc ~/.profile:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

Thêm dòng sau vào ~/.vnc/xstartup để fcitx tự khởi động:

fcitx &

Ví dụ:

#!/bin/sh
xrdb $HOME/.Xresources
fcitx &
startxfce4 &

Kiểm tra nhập tiếng Nhật

Sau khi đăng nhập VNC, kiểm tra fcitx-config-gtk3 có hiển thị “Mozc” chưa. Dùng phím 半角/全角 hoặc Ctrl + Space để chuyển đổi IME.

Xử lý lỗi thường gặp

Triệu chứngNguyên nhân & cách xử lý
IME không khởi độngQuên chạy fcitx hoặc cấu hình biến môi trường thiếu
Không chuyển đổi được kanjiChưa chọn Mozc trong fcitx, hoặc fcitx còn ở trạng thái mặc định
Mỗi lần khởi động phải chạy fcitx thủ côngChưa thêm fcitx & vào .xstartup

Như vậy bạn có thể nhập tiếng Nhật mượt mà khi dùng VNC.

8. Thiết lập SSH Tunnel để tăng bảo mật

VNC không mã hóa kết nối theo mặc định

VNC tiện lợi nhưng không mã hóa dữ liệu truyền. Hacker có thể nghe lén password, nội dung màn hình.

Do đó, nên dùng SSH Tunnel để mã hóa kết nối VNC khi truy cập qua internet.

SSH Tunnel là gì?

SSH Tunnel cho phép truyền dữ liệu an toàn qua một kênh mã hóa (dựa trên SSH), bảo vệ toàn bộ phiên VNC khỏi bị rò rỉ thông tin.

Cách cấu hình SSH Tunnel (Local port forwarding)

Ví dụ cho Windows (dùng PuTTY):

Thiết lập SSH Tunnel trên Windows bằng PuTTY

1. Cài PuTTY

Tải và cài đặt từ https://www.putty.org/

2. Nhập thông tin kết nối

Tại “Session”, nhập IP máy chủ và cổng 22 (SSH).

3. Cài đặt Tunnel

Vào “Connection” → “SSH” → “Tunnels”:

  • Source port: 5901
  • Destination: localhost:5901
  • Chọn “Local”, rồi click “Add”

4. Bắt đầu kết nối SSH

Click “Open” để kết nối SSH.
Sau đó, mở VNC Viewer và kết nối tới:

localhost:5901

Thiết lập SSH Tunnel trên macOS/Linux

Dùng terminal:

ssh -L 5901:localhost:5901 username@server_ip

Ví dụ:

ssh -L 5901:localhost:5901 naoya@192.168.1.100

Kết nối VNC Viewer tới localhost:5901.

Những lưu ý khi thiết lập

  • Phải mở port 22 (SSH) trên firewall/server
  • Kết nối VNC Viewer tới localhost:5901 (không phải IP máy chủ)

Tóm tắt lợi ích SSH Tunnel

Tiêu chíNội dung
Mã hóa truyền thôngBảo mật kết nối VNC nhờ kênh SSH
Đơn giản hóa firewallKhông cần mở port VNC ra ngoài
Giám sát kết nốiCó thể kiểm tra log SSH để phát hiện truy cập bất thường

Khi vận hành server công khai, SSH Tunnel là bắt buộc để đảm bảo an toàn.

9. Các lỗi thường gặp & cách xử lý

Lỗi 1: Sau khi kết nối chỉ thấy màn hình đen/xám

Nguyên nhân:

  • Cấu hình file ~/.vnc/xstartup sai
  • Desktop environment không khởi động đúng

Cách xử lý:

  1. Kiểm tra lại nội dung ~/.vnc/xstartup (Xfce):
#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
  1. Cấp quyền thực thi:
chmod +x ~/.vnc/xstartup
  1. Khởi động lại session:
vncserver -kill :1
vncserver :1

Lỗi 2: Không nhập được tiếng Nhật, không chuyển được kana/kanji

Nguyên nhân:

  • Chưa khởi động fcitx hoặc cấu hình biến môi trường thiếu

Cách xử lý:

  1. Kiểm tra đã thêm các dòng sau vào .xprofile hoặc .xsession:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
  1. Đảm bảo có fcitx & trong ~/.vnc/xstartup
fcitx &
  1. Khởi động lại session, mở công cụ cấu hình fcitx để kiểm tra “Mozc”

Lỗi 3: Kết nối VNC không ổn định, lag hoặc rớt

Nguyên nhân:

  • Băng thông mạng yếu
  • Đặt độ phân giải, màu quá cao

Cách xử lý:

  1. Giảm độ phân giải, màu:
vncserver :1 -geometry 1024x768 -depth 16
  1. Dùng SSH Tunnel để tăng ổn định và bảo mật
  2. Kiểm tra cài đặt tối ưu trên phần mềm client

Lỗi 4: Kết nối VNC thành công nhưng không có màn hình đăng nhập

Nguyên nhân:

  • Session GUI không khởi động
  • VNC không dùng login manager của Ubuntu (GDM,…)

Cách xử lý:

VNC chạy session riêng biệt, không hiển thị màn hình đăng nhập Ubuntu tiêu chuẩn. Đây là đặc điểm kỹ thuật, không phải lỗi. Nếu muốn multi-user hoặc login screen, nên dùng xrdp thay vì VNC.

Lỗi 5: Không khởi động được VNC hoặc báo lỗi truy cập

Nguyên nhân:

  • Sai cấu hình file dịch vụ
  • Còn file .pid hoặc .log cũ làm xung đột

Cách xử lý:

  1. Dừng hoàn toàn VNC session:
vncserver -kill :1
  1. Xóa file .pid, .log cũ trong thư mục .vnc:
rm ~/.vnc/*.pid
rm ~/.vnc/*.log
  1. Khởi động lại session:
vncserver :1

Một số lưu ý khác

  • Kiểm tra log tại ~/.vnc/*.log nếu gặp lỗi
  • Multi-user: Mỗi người nên dùng display riêng (:2, :3,…)

10. Tổng kết

Tóm tắt các bước triển khai

  • Điều kiện tiên quyết & Chuẩn bị:
    Kiểm tra Ubuntu version, desktop environment, SSH
  • Cài đặt desktop environment:
    Dùng Xfce/MATE nhẹ, phù hợp cho VNC
  • Cài đặt & cấu hình TigerVNC:
    Chọn session, cài đặt độ phân giải,…
  • Tự động hóa với Systemd:
    Đảm bảo session tự động sau khi reboot
  • Kết nối từ client:
    Dùng RealVNC Viewer hoặc TigerVNC Viewer
  • Cấu hình nhập tiếng Nhật:
    Cài fcitx-mozc, cấu hình biến môi trường
  • Thiết lập SSH Tunnel:
    Mã hóa kết nối, tăng bảo mật
  • Xử lý lỗi:
    Hướng dẫn khắc phục sự cố thường gặp

Gợi ý cho vận hành lâu dài

Sau khi xây dựng môi trường VNC, bạn có thể thao tác Ubuntu từ xa như trên máy thật. Đặc biệt phù hợp cho:

  • Vận hành VPS/cloud với giao diện GUI
  • Chia sẻ máy chủ cho nhiều thành viên (chia theo display)
  • Người mới bắt đầu làm quen với Linux qua GUI

Lưu ý: VNC nhẹ nhưng không phù hợp cho multimedia hoặc môi trường đòi hỏi bảo mật rất cao. Có thể cân nhắc dùng xrdp hoặc NoMachine cho các nhu cầu nâng cao hơn.

Lời kết

Việc cài đặt VNC trên Ubuntu không quá phức tạp nếu làm từng bước cẩn thận. Hy vọng bài viết giúp bạn dễ dàng xây dựng môi trường remote desktop cho Ubuntu.

Nếu còn vướng mắc, hãy để lại bình luận hoặc liên hệ qua mạng xã hội. Chúc bạn sử dụng Ubuntu thuận lợi và hiệu quả!

侍エンジニア塾