VNC viết tắt của Virtual Network Computing, hiểu nôm na là một dịch vụ giúp người dùng có thể kết nối đến máy tính chạy linux để dùng chuột và bàn phím điều khiển từ xa. Giống hệt như service Remote Desktop trên Windows.
Hôm nay mình sẽ hướng dẫn các bạn cách cài đặt dịch vụ này lên Linux và cách kết nối để điều khiển. Ở đây mình dùng VPS Ubuntu 12. Các phiên bản Ubuntu khác chưa thử nhưng chắc cũng chạy tốt.
Lưu ý: mỗi dòng bắt đầu bằng dấu # là một dòng lệnh riêng biệt. Nếu Copy vào ssh command thì nhớ bỏ dấu # đi.
Bước 1: cài đặt VNC Server và XFCE4
Update Ubuntu để bảo đảm không xảy ra lỗi trong quá trình cài đặt bằng lệnh:
Mã:
# apt-get update
# apt-get upgrade
Cài đặt VNC server:
Mã:
# apt-get -y install ubuntu-desktop tightvncserver xfce4 xfce4-goodies
Bước 2: thêm VNC user và đặt mật khẩu kết nối:
Mã:
# adduser vnc
# passwd vnc
Gán quyền root khi kết nối VNC (lệnh này đòi hỏi phải có quyền root mới thực hiện được):
Mã:
# echo "vnc ALL=(ALL) ALL" >> /etc/sudoers
Đặt password cho user VNC của VNC Server:
Nếu nó yêu cầu nhập tên thì nhập user tùy bạn, pass thì nhập pass, verify thì nhập lại pass. Nên giữ pass để chút kết nối. Sau khi nhập pass và verify thì nó sẽ hỏi có đặt thêm 1 cái pass read only không, mình gõ n và enter còn ai muốn đặt thì gõ y rồi thiết lập thêm 1 cái mật khẩu nữa.
Mã:
# su - vnc
# vncpasswd
# exit
Bây giờ thì bạn đã có thể login bằng tài khoản tên vnc đã thêm vào ở trên với password vừa thiết lập:
Nó yêu cầu nhập pass thì nhập vào rồi enter.
Bước 3: Cài đặt dịch vụ VNC cho nó chạy:
Quay về user root:
Chỉnh sửa 2 file để cho phép VNC tự khởi động lúc mở máy:
Mã:
#vi /etc/init.d/vncserver
Nhấn phím i trên bàn phím để chuyển qua chế độ Insert trong trình soạn thảo vi
Copy nội dung bên dưới và paste vào cửa sổ dòng lệnh.
Mã:
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="vnc"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
Sau đó nhấn phím esc để thoát khỏi chế độ Insert rồi nhất :wq để save và thoát ra khỏi file.
Làm tương tự với file startup:
Mã:
# vi /home/vnc/.vnc/xstartup
Nhấn i rồi copy paste đoạn sau:
Mã:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
startxfce4 &
nhấn esc rồi :wq để save và thoát
Cập nhật quyền và thiết lập cho bất cứ user nào cũng có thể kết nối đến X Server:
Mã:
# chown -R vnc. /home/vnc/.vnc && chmod +x /home/vnc/.vnc/xstartup
# sed -i 's/allowed_users.*/allowed_users=anybody/g' /etc/X11/Xwrapper.config
Chmod quyền cho file /etc/init.d/vncserver và khởi động VNC Server:
Mã:
# chmod +x /etc/init.d/vncserver && service vncserver start
Thêm dòng lệnh giúp VNC Server tự chạy lúc khởi động lại máy:
Mã:
# update-rc.d vncserver defaults
Bước 4: Kết nối đến VPS Ubuntu bằng VNC Client software:
Dùng VNC client nào cũng được, có 2 em mình hay dùng đó là:
VNC Viewer: http://www.realvnc.com/download/viewer/
TightVNC: http://www.tightvnc.com/download.php
Mở lên và điền vào dạng IP::Port ví dụ như IP của mình là 198.211.110.153 thì mình điền 198.211.110.153::5901
Nó sẽ kết nối và hỏi bạn password thì nhập pass đã đặt ở bước 2.
Và bạn sẽ thấy màn hình của VPS Ubuntu, tới đây thì xem như đã xong, giờ thì dùng như một desktop bình thường. Nếu bạn quan tâm đến việc bảo mật thì xem thêm phía dưới.
Những bước sau đây là giúp bạn bảo mật hơn kết nối giữa VNC và VPS
Mặc định kết nối VNC không mã hóa, nên sẽ dễ bị tấn công hoặc cố tình mở nhiều kết nối làm cho máy treo. Các bước sau đây giúp bạn đảm bảo an toàn cho VPS của mình hơn khi dùng VNC:
Thiết lập VNC server chỉ listens localhost
Mã:
# vi /etc/init.d/vncserver
Nhấn i
Copy đoạn sau và file đó (xem hình minh họa)
Mã:
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
Restart VNC server:
Mã:
# /etc/init.d/vncserver restart
Kiểm tra xem VNC Server có đang kết nối với chỉ localhost IP hay không:
Mã:
# netstat -alpn | grep :5901
Nếu thấy chỉ có 1 dòng 127.0.0.1:5901 thì là đúng (xem hình)
Bây giờ sau khi thiết lập cho VNC chỉ nhận kết nối từ localhost thì chúng ta download puty về để kết nối đến VPS như là 1 localhost để VNC có thể kết nối được:
Download Putty from http://www.chiark.greenend.org.uk/~s.../download.html
For Windows: http://the.earth.li/~sgtatham/putty/.../x86/putty.exe
Khởi động Puty và điền IP VPS vào:
Khoan đã bấm kết nối
K** xuống phần Connection -> SSH -> Tunnels và điền 5901 vào phần Add New Forwarded Port rồi add -> open để kết nối.
Sau khi Open sẽ hiện ra cửa sổ SSH kết nối đến VPS với user vnc:
Để kết nối này như vậy để nó maping 2 máy như là localhost qua port 5901
Rồi bây giờ mở chương trình VNC Client ra và kết nối đến localhost::5901
Nhập password đã thiết lập ở bước 2:
Click OK và bây giờ bạn đã kết nối đến VNC trên VPS qua giao thức được mã hóa và chỉ qua localhost tuyệt đối an toàn. Những kết nối khác bên ngoài máy bạn đều không thực hiện được do không phải là localhost. Sau khi kết nối thì có Firefox và tất cả mọi chức năng giống hệt một VPS Windows.
Nếu bạn muốn tìm VPS nhanh cấu hình mạnh mà giá rẻ để vọc thử thì mình gợi ý bạn 3 dịch vụ sau mình đang dùng rất hài lòng:
www.digitalocean.com
512MB RAM / 1 CPU / 20GB SSD DISK / 1TB TRANSFER / MONTHLY $5.00 / HOURLY $0.007
Hoặc:
http://bandwagonhost.com Sử dụng mã giảm giá LEB giảm được 50% cũng còn rất rẻ chỉ vài $/tháng
HDD: 50 GB SAS RAID-10 RAM: 1 GB SWAP: 512 MB CPU: 2x Intel Xeon BW: 500 GB/mo Link speed: 1 Gigabit VPS technology: OpenVZ/KiwiVM Linux OS: 32-bit and 64-bit Centos, Debian, Ubuntu, Fedora Instant OS reload 1 Dedicated IPv4 address Full root access PPP and VPN support (tun/tap) Instant RDNS update from control panel No contract, anytime cancellation Strictly unmanaged, no support 99% uptime guarantee 30-day money back guarantee
http://vpsnodes.com
2048 MB RAM / 4096 MB vSwap RAM / 100 GB SSD/RAID 10 / 3000 GB Bandwidth / 4 CPU Core / 100% Dùng code giảm giá sau 2GBDEAL lúc thanh toán sẽ được giảm 72% vĩnh viễn sẽ còn 7$/tháng quá tuyệt cho một con VPS cấu hình cực khủng.