Để 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 Ubuntu 13.04.

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 13.04.

Cập nhật Ubuntu

apt-get update; apt-get dist-upgrade -y --force-yes

Cài đặt GUI trên Ubuntu Server

Tiếp theo mình sẽ tiến hành cài đặt xubuntu-desktop với xfce4, kèm theo trình duyệt firefox luôn

apt-get install xubuntu-desktop xfce4 firefox nano -y --force-yes

Trong quá trình cài đặt bạn sẽ được hỏi cấu hình bàn phím, hãy chọn English US nhé.

Cài đặt và cấu hình VNC Server trên Ubuntu

Cài đặt VNC Server

apt-get install vnc4server -y --force-yes

Cấu hình VNC Server để hoạt động với Ubuntu

Bạn có thể remote đến Ubuntu server bằng tài khoản nào cũng được, nhưng để đảm bảo bảo mật mình sẽ tạo riêng 1 tài khoản vncuser chuyên để 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:
Retype new UNIX password:
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

Để thay đổi pass user bạn chọn

passwd vncuser

Giờ hãy chuyển qua tài khoản vnc để cài đặt file xstartup để khởi động xfce4 mỗi khi kết nối 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@chiasecoupon:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth: file /home/vncuser/.Xauthority does not exist

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

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

Sau khi VNC Server đã khởi động, chúng ta cần tắt nó đi để chỉnh sửa xstartup file để đảm bảo luôn khởi động xfce4 thay vì gnome.

Kill VNC Server session

vncserver -kill :1

Chỉnh sửa xstartup file

cd ~
> .vnc/xstartup
nano .vnc/xstartup

(có thể bạn cần cài đặt nano trước)

Điền nội dung bên dưới:

#!/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 &

Lưu lại và tiến hành tạo VNC Server statup script

su -
nano /etc/init.d/vncserver

Với nội dung

#!/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

Chmod vncserver script

chmod +x /etc/init.d/vncserver

Giờ mình sẽ tạo file cấu hình VNC Server trong thư mục /etc/

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 add 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"

Cuối cùng đảm bảo VNC Server luôn khởi động cùng Ubuntu

update-rc.d vncserver defaults 99

Khởi động lại Ubuntu Server

reboot

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:

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.”

Comment của bạn

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