Để quản lý VPS thì cách hiệu quả nhất là sử dụng thông qua các dòng lệnh Linux. Tuy nhiên, có nhiều bạn lại quen thuộc với giao diện GUI hoặc muốn chạy các ứng dụng desktop trên Ubuntu nên hôm nay mình xin viết bài hướng dẫn mọi người cách thức cài đặt VNC Server trên VPS Ubuntu.

Hướng dẫn hoạt động tốt trên cả Ubuntu 13.04, 16.04 x64 (đã test)

Nếu bạn muốn sử dụng VPS để chạy các ứng dụng Windows thì có thể tham khảo bài viết Hướng dẫn cài đặt Windows VPS với Ramnode mình đã viết trước đó.

Trong bài hướng dẫn này, mình sẽ tiến hành cài đặt TightVNC Server trên Ubuntu Server để có thể remote đến VPS được.

Đầu tiên bạn cần chuẩn bị một VPS cài đặt sẵn Ubuntu, mình dùng phiên bản Ubuntu 16.04 x64.

1. Cài đặt VNC Server

– Cập nhật hệ thống Ubuntu.

apt-get update
apt-get upgrade -y

– Cài đặt VNC Server, GUI (xubuntu-desktop với xfce4) kèm theo trình duyệt Firefox. Nếu trong quá trình cài đặt bạn được hỏi cấu hình bàn phím, hãy chọn English US nhé.

apt-get install xubuntu-desktop xfce4 firefox nano vnc4server -y

2. Cấu hình VNC Server trên Ubuntu

– Tạo VNCServer start script với nội dung như bên dưới:

nano /etc/init.d/vncserver
#!/bin/bash
unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 DISP="${display%%:*}"
 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
 fi
 done
}
stop() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Shutting down VNCServer: "
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 export USER="${display##*:}"
 su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 fi
 done
 echo -e "\n"
 echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

– Thiết lập quyền cho VNCServer Start Script

chmod +x /etc/init.d/vncserver

– Thiết lập VNCServer luôn khởi động cùng hệ thống Ubuntu.

update-rc.d vncserver defaults 99

– Tạo user đăng nhập VNC: Bạn có thể remote desktop đến Server bằng tài khoản nào cũng được. Để bảo mật, mình sẽ tạo riêng tài khoản vncuser chuyên dùng remote.

adduser vncuser

Chọn password đăng nhập. Những thông tin tiếp theo bạn có thể nhấn Enter để mặc định.

Enter new UNIX password: nhập_mật_khẩu
Retype new UNIX password: nhập_lại_mật_khẩu
passwd: password updated successfully
Changing the user information for vncuser
Enter the new value, or press ENTER for the default
 Full Name []:
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
Is the information correct? [Y/n] y

– Tạo cấu hình VNC Server trong thư mục /etc/vncserver

mkdir -p /etc/vncserver
nano /etc/vncserver/vncservers.conf

Copy đoạn sau vào, dòng đầu tiên là VNC port và VNC user, nếu bạn muốn thêm user thì điền thêm ở dòng này. Dòng tiếp theo là kích thước màn hình khi connect VNC.

VNCSERVERS="1:vncuser"
VNCSERVERARGS[1]="-geometry 1024x768"

– Truy cập tài khoản vncuser đểtThiết lập mật khẩu đăng nhập VNC.

su vncuser

Khởi động VNC server với tài khoản này để tiến hành cài đặt

vncserver

Tiếp theo VNC sẽ hỏi bạn password để kết nối remote cho tài khoản này, bạn hãy nhận vào password mong muốn.

vncuser@hocvps:~$ vncserver

You will require a password to access your desktops.

Password: nhập_mật_khẩu
Verify: nhập_lại_mật_khẩu
xauth: file /home/vncuser/.Xauthority does not exist

New 'hocvps:1 (vncuser)' desktop is hocvps:1

Creating default startup script /home/vncuser/.vnc/xstartup
Starting applications specified in /home/vncuser/.vnc/xstartup
Log file is /home/vncuser/.vnc/hocvps:1.log

– Chỉnh sửa Xstartup file để đảm bảo luôn khởi động xfce4 thay vì gnome.

nano ~/.vnc/xstartup

Điền nội dung bên dưới, phần nào có rồi thì để nguyên.

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

– Cuối cùng, khởi động lại Ubuntu Server

exit
reboot

3. Kết nối VNC Server

Bạn cài đặt TightVNC for Windows rồi tiến hành kết nối tới server với địa chỉ IP và port là 1 như mình cài đặt bước trước. Tiếp theo cần nhập password.

ket noi vnc

Nếu mọi việc thành công, lần đầu kết nối bạn sẽ được hỏi như hình dưới, hãy chọn “Use default config

ubuntu vnc

Giờ server đã sẵn sàng để bạn sử dụng rồi đó.

server san sang hoat dong

Chúc bạn thành công!

Tagged:

Comment của bạn

Your email address will not be published. Required fields are marked *

89 Comments

  1. Hao 2 comment

    Cho mình hỏi mình remote bằng VNC server được rồi nhưng khi mở ứng dụng gì thì cũng bị lỗi “cannot allocate memory”, thậm chí mở Terminal cũng bị vậy nữa. Bây giờ vào remote chỉ ngắm thôi chứ không làm gì được hết.

  2. Võ Sơn Hà 1 comment

    Bác Luân Trần cho hỏi với. Mình có cái VPS (OpenVZ) Ram 1GB sao cài theo bác hướng dẫn ko cách nào lên dc giao diện. Chạy lên startx thì nó báo free VT gì đó

  3. Minh 1 comment

    Khi kết nối m gặp lỗi này: “error in tightvnc viewer no connection could be made because the target machine actively refused it ” là do đâu nhỉ?

  4. chatig 25 comment

    Hi,
    Dạo này VNC desktop VPS của mình cứ bị 1 ai đó vào sử dụng hoài, liệu có cách nào phòng chống không các bạn?
    Mình đã cài pass rồi mà ko hiểu vì sao nó vẫn biết???
    Thanks

  5. chatig 25 comment

    Hi,
    Có cách nào điều chỉnh làm sao cho VNC chỉ chấp nhận 1 ip duy nhất mà mình chỉ định mới có thể đăng nhập VNC desktop ko vậy bạn?
    Xin cám ơn.

    1. Windy Love 44 comment

      Bạn mở file theo đường dẫn : .vnc/xstartup
      Chỉnh sửa file này là đc !
      Mình nhớ là thế

      1. chatig 25 comment

        Cám ơn bạn. Nhưng mà mình phải sửa như thế nào vậy bạn?
        Cám ơn bạn nhiều!

  6. thinh 1 comment

    Giúp lỗi này [img]http://www.mediafire.com/convkey/1a31/mqkvpwz9gh8rzpezg.jpg[/img]

    1. Windy Love 44 comment

      K xài Tight VNC Server của Luân Trần nên mình k biết ! Nhưng nghĩ có khả năng nó k connect đc đến server !
      Kiểm tra xem Xtinght VnC Server đã bật chưa ! và cả port đã mở chưa nữa !

  7. Windy Love 44 comment

    Bạn nào thích thì mình bonus thêm cái hướng dẫn thay đổi theme sang OS X của Apple đệp cực kì lun !
    Mới lại nhìu bạn làm bị lỗi quá nên mình tính hum nào rảnh rỗi sẽ post 1 hướng remote desktop bằng hướng dẫn của mình cực nhanh gọn !
    Chỉ 5 phút là xong lun ….

  8. chatig 25 comment

    Hình như cách này ko dùng được nữa. Mình đã thử cài nhưng ko còn được như trước.

  9. chatig 25 comment

    Mình bị lỗi như sau:
    E: Unable to locate package tightvncserver

    Khắc phục như thế nào vậy bạn?
    VPS của mình là cài Linux Ubuntu 13.04 Server X86 64 Min Gen2 V1
    thanks

    1. chatig 25 comment

      Nói chung là nó bị lỗi gì ấy? mình đã mua thử 2 vps của 2 hãng khác nhau nhưng đều bị chung lỗi:
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/libc/libcanberra/libcanberra-gtk3-module_0.30-0ubuntu2_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/libp/libpam-freerdp/libpam-freerdp_1.0.1-0ubuntu1_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/m/mobile-broadband-provider-info/mobile-broadband-provider-info_20130312-1_all.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/q/qtchooser/qtchooser_0.0.1~git20121229.g8f08405-0ubuntu3_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/r/ristretto/ristretto_0.6.3-1_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/s/sessioninstaller/sessioninstaller_0.20+bzr134-0ubuntu6_all.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/s/speech-dispatcher/speech-dispatcher_0.7.1-6.1ubuntu2_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/t/thin-client-config-agent/thin-client-config-agent_0.7_all.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/u/unity-lens-friends/unity-lens-friends_0.1.1bzr13.04.12-0ubuntu1_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/u/unity-scope-gdrive/unity-scope-gdrive_0.8daily13.04.15-0ubuntu1_all.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/b/brltty/xbrlapi_4.4-8ubuntu4_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/x/xfce4-places-plugin/xfce4-places-plugin_1.5.0-0ubuntu1_amd64.deb 404 Not Found [IP: 91.189.91.24 80]
      E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?

  10. giang 3 comment

    mình cài đặt vnc trên ubuntu xong rồi, cho mình hỏi là ví dụ mình dùng iview trên đó, vài hôm mình muốn đổi ip thì mình có thể rebuil có phải không? khi mình rebuild mà không thay đổi gói thì có đượ ko? và rebuid có phải như ghost ko vậy? Thánksss

  11. Hoàng 3 comment

    Mình không thể, connection qua remote được là sao nhỉ? báo lỗi authentication failure

  12. Le Cong 1 comment

    Giúp mình với: Mình đã làm như hướng dẫn của bạn ở trên và đến bước cuối cài TightVNC Viewer để kết nối đến VPS thì báo lỗi:
    “Error in tightvnc viewer: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.”