Thứ ba, 29/09/2015 | 00:00 GMT+7

Cách thiết lập server VNC trên Debian 8

VNC (Virtual Network Computing) là một hệ thống cho phép user kết nối và tương tác với các màn hình đồ họa của máy tính từ xa. Nó có thể truyền các bản cập nhật màn hình và các sự kiện bàn phím và chuột qua mạng.

VNC hữu ích khi bạn cần một môi trường máy tính để bàn (có giao diện đồ họa) cho server của bạn .

XFCE là một môi trường máy tính để bàn nhẹ. Vì nó có yêu cầu tài nguyên hệ thống thấp và vì nhiều user VNC đã quen thuộc với nó, ta sẽ sử dụng XFCE trong hướng dẫn này. Tuy nhiên, bạn cũng có thể sử dụng môi trường máy tính để bàn yêu thích của bạn , chẳng hạn như Gnome hoặc KDE, để thay thế.

Trong hướng dẫn này, ta sẽ cài đặt một server Debian 8, cài đặt môi trường máy tính để bàn XFCE trên đó và kết nối với nó qua VNC. Ngoài ra, ta sẽ tạo một script khởi động cho VNC Server và bảo mật nó qua SSH.

Yêu cầu

Vui lòng hoàn thành các yêu cầu sau.

  • Debian 8 (hoặc 8.1) Server có quyền truy cập root. 512 MB RAM là đủ để chạy VNC và XFCE, nhưng bạn có thể cần một Server lớn hơn tùy thuộc vào những gì bạn định làm với giao diện đồ họa
  • Trình xem VNC (máy khách) trên máy tính của bạn để kết nối với server của bạn. Trong hướng dẫn này, ta sẽ sử dụng UltraVNC trên Windows, nhưng bạn có thể sử dụng các client VNC khác. Bạn có thể tải UltraVNC tại đây . OS X đi kèm với một ứng dụng client VNC được tích hợp sẵn có tên là Screen Sharing
  • Máy khách SSH để cài đặt kết nối an toàn qua SSH. Ta sẽ sử dụng PuTTY cho Windows. Bạn có thể download PuTTY tại đây . Trên OS X, chỉ cần sử dụng ứng dụng Terminal tích hợp sẵn

Bước 1 - Cài đặt VNC và XFCE

Trong bước này, ta sẽ cài đặt VNC Server và môi trường máy tính để bàn XFCE, với phần mềm bổ sung và một gói biểu tượng.

Cập nhật danh sách gói của server của bạn:

  • apt-get update

Tự nâng cấp các gói:

  • apt-get -y upgrade

Sau đó, ta sẽ cài đặt tightvncserver và XFCE4 với một số tiện ích bổ sung hữu ích và chủ đề biểu tượng:

  • apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

Theo mặc định, không có trình duyệt nào được cài đặt. Bạn có thể cài đặt iceweasel (là version đổi tên của Mozilla Firefox dành cho Debian) nếu bạn muốn truy cập web từ kết nối VNC của bạn :

  • apt-get install iceweasel

Bước 2 - Tạo user VNC

Ta sẽ tạo một user riêng cho các kết nối VNC, để giữ mọi thứ an toàn và gọn gàng. Bạn rất nên sử dụng sudo , thay vì sử dụng trực tiếp user root cho server VNC của bạn.

Bạn có thể thêm user có tên vnc vào Debian Server của bạn bằng cách sử dụng lệnh sau:

  • adduser vnc

Cung cấp password cho user mới của bạn. Bạn có thể bỏ qua tất cả các câu hỏi khác bằng cách nhấn ENTER .

Cài đặt sudo bằng cách chạy lệnh này:

  • apt-get install sudo

Thêm user vnc mới của bạn vào group sudo , group này sẽ cấp quyền cho user đó để thực thi các lệnh root .

  • gpasswd -a vnc sudo

Hãy chuyển sang user vnc :

  • su - vnc

Bước 3 - Khởi động và dừng server VNC của bạn

Với quyền là user vnc mới được tạo của ta , ta có thể khởi động Server VNC và kiểm tra kết nối của bạn .

Khởi động Server VNC:

  • vncserver

Vì đây là lần đầu tiên bạn chạy server , bạn cần đặt password mà client sẽ sử dụng để kết nối. Hãy ghi nhớ password này cho sau này! Bạn cũng có thể đặt password chỉ xem, password này sẽ cho phép user xem màn hình nhưng không tương tác với nó. Mật khẩu phải có 6-8 ký tự .

Bạn sẽ nhận được thông báo về số hiển thị của bạn khi server được khởi động.

Đầu ra
xauth:  file /home/vnc/.Xauthority does not exist  New 'X' desktop is vnc:1  Creating default startup script /home/vnc/.vnc/xstartup Starting applications specified in /home/vnc/.vnc/xstartup Log file is /home/vnc/.vnc/vnc:1.log 

Theo mặc định, các kết nối VNC được phục vụ trên các cổng bắt đầu từ 5901 cho màn hình đầu tiên. Màn hình thứ hai của bạn sẽ được phục vụ trên cổng 5902 , v.v.

Đừng dừng server ngay bây giờ, nhưng ta đang bao gồm lệnh dừng để tham khảo.

Sử dụng lệnh này để dừng server VNC của bạn trên Display 1 (và cổng 5901 ):

  • vncserver -kill :1

:1 là số hiển thị bạn muốn giết.

Bạn có thể khởi động VNC Server theo cách thủ công khi muốn kết nối lại. Ta sẽ tạo một dịch vụ cho VNC Server ở bước sau.

Bước 4 - Kết nối từ Máy khách VNC

Đến đây bạn có thể kết nối với server VNC của bạn . Mở ứng dụng VNC local của bạn, ứng dụng này sẽ khác nhau tùy thuộc vào hệ điều hành của bạn.

Trên Windows, bạn có thể sử dụng UltraVNC tại đây .

Trên OS X, bạn có thể sử dụng ứng dụng Chia sẻ màn hình được tích hợp sẵn hoặc truy cập ứng dụng này thông qua Safari. Trong Safari, bạn có thể nhập vnc: // ip server của bạn : 5901

Đối với địa chỉ Server VNC của bạn, hãy nhập ip server của bạn : 5901 và sử dụng password bạn vừa đặt cho kết nối VNC của bạn .

Bạn có thể chọn nút Sử dụng cấu hình mặc định trên màn hình chào mừng XFCE để bắt đầu dễ dàng:

Màn hình chào mừng Xubuntu

Đến đây bạn có thể sử dụng máy tính để bàn từ xa của bạn !

Bước 5 - Tạo dịch vụ systemd để tự động khởi động server VNC

Trong phần này, ta sẽ thêm VNC Server vào systemd . Sử dụng một dịch vụ có thể hữu ích để khởi động và dừng server VNC của bạn và cũng để khởi động nó tự động khi Server được khởi động lại.

Đầu tiên, hãy giết version hiện tại:

  • vncserver -kill :1

Tạo một tập lệnh đơn giản để quản lý và cấu hình server VNC của ta một cách dễ dàng:

Với quyền là user vnc hoặc sudo khác, hãy tạo file script bằng cách sử dụng editor yêu thích của bạn.

  • sudo nano /usr/local/bin/myvncserver

Thêm chính xác những nội dung này. Tập lệnh này cung cấp cho VNC một vài tham số để khởi động.

/ usr / local / bin / myvncserver
#!/bin/bash PATH="$PATH:/usr/bin/" DISPLAY="1" DEPTH="16" GEOMETRY="1024x768" OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"  case "$1" in start) /usr/bin/vncserver ${OPTIONS} ;;  stop) /usr/bin/vncserver -kill :${DISPLAY} ;;  restart) $0 stop $0 start ;; esac exit 0 

Bạn có thể sửa đổi tập lệnh để thay đổi độ sâu màu hoặc độ phân giải của kết nối VNC của bạn.

Nếu bạn đang sử dụng nano, bạn có thể lưu file qua CTRL+O và thoát qua CTRL+X

Làm cho file thực thi được:

  • sudo chmod +x /usr/local/bin/myvncserver

Tập lệnh của ta sẽ giúp ta sửa đổi cài đặt và khởi động / dừng VNC Server một cách dễ dàng.

Nếu muốn, bạn có thể gọi script theo cách thủ công để khởi động / dừng Server VNC trên cổng 5901 với cấu hình mong muốn của bạn.

  • sudo /usr/local/bin/myvncserver start
  • sudo /usr/local/bin/myvncserver stop
  • sudo /usr/local/bin/myvncserver restart

Bây giờ ta có thể tạo một tệp đơn vị cho dịch vụ của bạn . Các file đơn vị được sử dụng để mô tả các dịch vụ và cho máy tính biết phải làm gì để bắt đầu / dừng hoặc khởi động lại dịch vụ.

  • sudo nano /lib/systemd/system/myvncserver.service

Sao chép các lệnh này vào file dịch vụ. Dịch vụ của ta sẽ đơn giản gọi tập lệnh khởi động ở trên với vnc user .

/lib/systemd/system/myvncserver.service
[Unit] Description=Manage VNC Server on this server  [Service] Type=forking ExecStart=/usr/local/bin/myvncserver start ExecStop=/usr/local/bin/myvncserver stop ExecReload=/usr/local/bin/myvncserver restart User=vnc  [Install] WantedBy=multi-user.target 

Bây giờ ta có thể reload systemctl và kích hoạt dịch vụ của bạn :

  • sudo systemctl daemon-reload
  • sudo systemctl enable myvncserver.service

Bạn đã kích hoạt dịch vụ mới của bạn ngay bây giờ. Sử dụng các lệnh này để bắt đầu, dừng hoặc khởi động lại dịch vụ bằng lệnh systemctl :

  • sudo systemctl start myvncserver.service
  • sudo systemctl stop myvncserver.service
  • sudo systemctl restart myvncserver.service

Đến đây bạn có thể chạy Server VNC như một dịch vụ trên Server của bạn .

Bước 6 - Bảo mật server VNC của bạn bằng SSH Tunneling

Theo mặc định, các kết nối VNC không sử dụng mã hóa, vì vậy bạn nên sử dụng Đường hầm SSH để bảo mật phiên của bạn .

Để làm điều đó, ta sẽ chỉ để server VNC của ta phục vụ trên localhost .
Bạn có thể thực hiện bằng cách thêm -localhost vào dòng OPTIONS trong tập lệnh khởi động đã tạo ở bước trước.

Đầu tiên, dừng server VNC:

  • sudo systemctl stop myvncserver.service

Chỉnh sửa tập lệnh cấu hình của bạn:

  • sudo nano /usr/local/bin/myvncserver

Thay đổi dòng này:

/ usr / local / bin / myvncserver
. . .  OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"  . . . 

Thay thế bằng:

/ usr / local / bin / myvncserver
. . .  OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"  . . . 

Khởi động lại server VNC:

  • sudo systemctl start myvncserver.service

Đến đây bạn không thể kết nối trực tiếp với server VNC từ máy tính từ xa của bạn .

Các cửa sổ:

Ta sẽ sử dụng PuTTY để tạo một Đường hầm SSH và sau đó kết nối qua tunnel mà ta đã tạo.

Mở PuTTY.

Từ menu bên trái, chuyển đến phần Kết nối-> SSH-> Đường hầm .

Trong phần Thêm cổng chuyển tiếp mới , nhập 5901 làm cổng Nguồn và server localhost:5901 làm Đích .

Nhấp vào nút Thêm .

Cấu hình tunnel  PuTTY SSH

Đến đây bạn có thể chuyển đến phần Phiên ở menu bên trái.

Nhập địa chỉ IP của Server vào trường Tên Server (hoặc địa chỉ IP) .

Nhấp vào nút Mở để kết nối. Bạn cũng có thể lưu các tùy chọn này để sử dụng sau này.

Kết nối PuTTY SSH

Đăng nhập bằng user vnc của bạn.

Giữ cửa sổ PuTTY mở trong khi bạn thực hiện kết nối VNC.

Đến đây bạn có thể sử dụng trình xem VNC của bạn như bình thường. Chỉ cần nhập localhost :: 5901 làm địa chỉ và giữ kết nối SSH của bạn ở chế độ nền.

UltraVNC Viewer: localhost :: 5901

OS X:

Để cài đặt tunnel SSH, hãy sử dụng dòng sau trong Terminal:

ssh vnc@your_server_ip -L 5901:localhost:5901 

Xác thực như bình thường đối với user vnc cho SSH. Sau đó, trong ứng dụng Chia sẻ màn hình, hãy sử dụng localhost: 5901 .

Kết luận

Đến đây bạn có thể sử dụng một màn hình từ xa được chia sẻ trên server Debian 8 của bạn .

Sử dụng nó để cấu hình server của bạn hoặc chia sẻ màn hình của bạn với những người khác.


Tags:

Các tin liên quan

Cách cấu hình dịch vụ Linux để khởi động tự động sau khi gặp sự cố hoặc khởi động lại - Phần 2: Tham khảo
2015-09-04
Cách thiết lập server IRC trên Ubuntu 14.04 với InspIRCd 2.0 và Shaltúre
2015-08-26
Cách chuyển tiếp cổng thông qua cổng Linux với Iptables
2015-08-20
Cách cấu hình dịch vụ Linux để khởi động tự động sau khi gặp sự cố hoặc khởi động lại - Phần 1: Ví dụ thực tế
2015-08-19
Cách sử dụng Hệ thống kiểm toán Linux trên CentOS 7
2015-07-16
Cách sử dụng Hệ thống kiểm toán Linux trên CentOS 7
2015-07-16
Thiết lập ban đầu của server Fedora 22
2015-07-08
Cách thiết lập Shiny Server trên Ubuntu 14.04
2015-06-28
Cách backup server LAMP bằng Bacula trên Ubuntu 14.04
2015-06-11
Cách cấu hình sao chép DNS trên server Slave PowerDNS trên Ubuntu 14.04
2015-06-04