VNC để truy cập từ xa vào Ubuntu bằng Gnome shell

VNC (hoặc Mạng ảo Máy tính) là một hệ thống cho phép bạn sử dụng Giao diện đồ họa máy chủ từ xa. Nó có thể truyền tải các 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 rất hữu ích trong trường hợp máy chủ cần môi trường máy tính để bàn đồ họa.

XFCE là môi trường máy tính để bàn có đồ họa nhẹ. Hướng dẫn này sẽ sử dụng XFCE vì nó yêu cầu tài nguyên hệ thống thấp và nhiều người dùng đã quen thuộc với công cụ này.

Lưu ý: Nếu muốn, bạn có thể sử dụng môi trường máy tính để bàn khác (ví dụ: Gnome hoặc KDE).

Hướng dẫn này sẽ giúp bạn chuẩn bị Debian 8, cài đặt môi trường desktop bảng XFCE và cấu hình VNC. Ngoài ra, hướng dẫn này còn chỉ ra cách tạo tập lệnh khởi động máy chủ VNC và bảo mật tập lệnh đó qua SSH.

Yêu cầu

Debian 8 (hoặc 8.1) được cấu hình sẵn với quyền truy cập root. Bộ nhớ 512 MB sẽ đủ để chạy VNC và XFCE. Tuy nhiên, tùy thuộc vào kế hoạch của bạn, bạn có thể cần nhiều bộ nhớ hơn.

VNC client trên máy tính của bạn để có thể kết nối với máy chủ. Hướng dẫn sử dụng UltraVNC trong Hệ thống Windows, nhưng tất nhiên bạn có thể sử dụng bất kỳ ứng dụng khách VNC nào khác. Bạn có thể tải xuống UltraVNC từ liên kết này. OS X đi kèm với ứng dụng khách VNC của riêng nó, Chia sẻ màn hình.

Máy khách SSH cho kết nối an toàn. Trên Windows sẽ sử dụng PuTTY (download tại đây). Trên OS X, sử dụng ứng dụng Terminal tích hợp.

1: Cài đặt VNC và XFCE

Trước tiên, bạn cần cài đặt máy chủ VNC và môi trường máy tính để bàn XFCE, cũng như một số chương trình bổ sung.

Cập nhật danh sách gói máy chủ:

Bây giờ cập nhật danh sách gói

nâng cấp apt-get -y

Cài đặt chặt chẽvncserver, XFCE4, một số gói và chủ đề biểu tượng hữu ích:

apt-get cài đặt xfce4 xfce4-goodies gnome-icon-theme chặt chẽvncserver

Theo mặc định, trình duyệt chưa được cài đặt. Bạn có thể cài đặt Iceweasel ( Phiên bản Mozilla Firefox dành cho Debian) để có thể duyệt các trang web:

apt-get cài đặt Iceweasel

2: Tạo người dùng cho VNC

Tạo nên người dùng cá nhân cho các kết nối VNC. Nên sử dụng sudo thay vì người dùng root.

Để thêm người dùng vnc vào máy chủ, hãy chạy lệnh:

Tạo mật khẩu cho người dùng mới. Đối với các câu hỏi khác, bạn chỉ cần nhấn Enter để chấp nhận thông tin tiêu chuẩn.

Để cài đặt sudo, hãy sử dụng lệnh:

cài đặt apt-get sudo

Thêm người dùng vnc mới vào nhóm sudo, nhóm này sẽ cấp cho nó quyền root.

gpasswd -a vnc sudo

Chuyển sang phiên người dùng vnc:

3: Khởi động máy chủ VNC

Trong phiên người dùng vnc, khởi động máy chủ VNC và kiểm tra kết nối.

Khi khởi chạy chương trình lần đầu tiên, bạn sẽ được nhắc đặt mật khẩu để kết nối với máy khách. Đặt mật khẩu và ghi nhớ/ghi lại, sau này bạn sẽ cần đến. Bạn cũng có thể đặt mật khẩu chỉ xem, mật khẩu này sẽ cho phép người dùng xem màn hình nhưng chặn tương tác với màn hình. Lưu ý: Mật khẩu phải dài 6-8 ký tự.

Số hiển thị hiện tại sẽ xuất hiện trên màn hình:

xauth: tập tin /home/vnc/.Xauthority không tồn tại
Máy tính để bàn "X" mới là vnc:1
Tạo tập lệnh khởi động mặc định /home/vnc/.vnc/xstartup
Khởi động các ứng dụng được chỉ định trong /home/vnc/.vnc/xstartup
Tệp nhật ký là /home/vnc/.vnc/vnc:1.log

Theo mặc định, kết nối VNC đầu tiên được cung cấp trên cổng 5901, kết nối thứ hai trên cổng 5902, v.v.

Lưu ý: Bật ở giai đoạn này không cần phải dừng máy chủ. Lệnh dừng máy chủ được đưa ra dưới đây để bạn tham khảo.

Để dừng máy chủ VNC, hãy chạy lệnh sau trên Màn hình 1 (cổng 5901):

vncserver -kill:1

trong đó: 1 là số màn hình cần dừng.

Nếu cần, máy chủ VNC có thể được khởi động thủ công. Sau này chúng tôi sẽ hướng dẫn bạn cách tạo một dịch vụ cho VNC.

4: Kết nối từ máy khách

Bây giờ bạn có thể kết nối với VNC. Để thực hiện việc này, hãy sử dụng máy khách VNC cục bộ, tùy thuộc vào hệ điều hành.

Trên Windows bạn có thể sử dụng UltraVNC.

OS X cung cấp ứng dụng Chia sẻ màn hình tích hợp cho việc này. Bạn cũng có thể sử dụng Safari. Để thực hiện việc này, hãy nhập:

vnc://yourserverip:5901

Đối với địa chỉ máy chủ VNC, hãy nhập:

yourserverip:5901

và nhập mật khẩu vừa chọn cho kết nối VNC.

Bây giờ bạn có thể sử dụng máy tính để bàn từ xa.

5: Tạo dịch vụ cho VNC

Bây giờ bạn có thể tạo dịch vụ bằng cách thêm VNC vào hệ thống. Các dịch vụ cho phép bạn khởi động và dừng máy chủ VNC, cũng như tự động khởi động nó khi máy chủ ảo được khởi động lại.

Dừng giao diện hiện tại:

vncserver -kill:1

Tạo một tập lệnh đơn giản để điều khiển máy chủ VNC.

Trong phiên người dùng vnc (hoặc bất kỳ người dùng nào khác có quyền sudo), hãy tạo tệp tập lệnh.

Dán đoạn mã sau vào đó mà không thay đổi. Tập lệnh này chứa một số tham số để khởi động VNC.

#!/bin/bash
PATH="$PATH:/usr/bin/"
HIỂN THỊ="1"
SÂU SÂU="16"
HÌNH HỌC="1024x768"

trường hợp "$1" trong
bắt đầu)
/usr/bin/vncserver $(TÙY CHỌN)
;;
dừng lại)
/usr/bin/vncserver -kill:$(HIỂN THỊ)
;;
khởi động lại)
$0 điểm dừng
$0 bắt đầu
;;
esac
lối ra 0

Bạn có thể sửa đổi tập lệnh một chút để điều chỉnh độ sâu màu VNC.

Trong trình soạn thảo văn bản nano, nhấn CTRL+O để lưu và CTRL+X để đóng tệp.

Làm cho tập tin có thể thực thi được:

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

Tập lệnh này cho phép bạn chỉnh sửa cài đặt và nhanh chóng khởi động và dừng máy chủ.

Lưu ý: Nếu cần, tập lệnh có thể được bắt đầu/dừng theo cách thủ công.

sudo /usr/local/bin/myvncserver bắt đầu
sudo /usr/local/bin/myvncserver dừng lại
sudo /usr/local/bin/myvncserver khởi động lại

Bây giờ chúng ta có thể tạo một tệp cho dịch vụ để mô tả nó và cho máy biết cách bắt đầu/dừng/khởi động lại dịch vụ đó.

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

Sao chép đoạn mã sau vào một tập tin. Dịch vụ này sẽ chỉ gọi tập lệnh khởi chạy đã tạo trước đó.


Mô tả=Quản lý Máy chủ VNC trên giọt này
Loại=rẽ nhánh
ExecStart=/usr/local/bin/myvncserver bắt đầu
ExecStop=/usr/local/bin/myvncserver dừng
ExecReload=/usr/local/bin/myvncserver khởi động lại
Người dùng=vnc
WantedBy=multi-user.target

Khởi động lại systemctl và kích hoạt dịch vụ:

sudo systemctl daemon-tải lại
sudo systemctl kích hoạt myvncserver.service

Vì vậy, bây giờ dịch vụ đã được kích hoạt. Sử dụng lệnh sauđể kiểm soát dịch vụ bằng systemctl:


sudo systemctl dừng myvncserver.service
sudo systemctl khởi động lại myvncserver.service

Khởi động máy chủ VNC như một dịch vụ.

6: Bảo mật VNC bằng Đường hầm SSH

Theo mặc định, các kết nối VNC không được mã hóa. Do đó, nên sử dụng đường hầm SSH để bảo vệ dữ liệu.

Để thực hiện việc này, bạn cần cho phép VNC chỉ chạy trên máy chủ cục bộ. Thêm cờ -localhost vào dòng OPTIONS trong tập lệnh bạn đã tạo trước đó.

Dừng máy chủ VNC:

sudo systemctl dừng myvncserver.service

Chỉnh sửa kịch bản:

sudo nano /usr/local/bin/myvncserver

Tìm dòng này:

. . .
OPTIONS="-độ sâu $(DEPTH) -hình học $(GEOMETRY) :$(DISPLAY)"
. . .

Và thay thế nó:

. . .
OPTIONS="-độ sâu $(DEPTH) -hình học $(GEOMETRY) :$(DISPLAY) -localhost"
. . .

Sau đó khởi động VNC:

sudo systemctl bắt đầu myvncserver.service

Bây giờ bạn có thể kết nối với máy chủ VNC từ một máy tính từ xa.

Dành cho người dùng Windows

Để tạo đường hầm SSH, hãy sử dụng PuTTY.

Mở PuTTY.

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

Trong phần Thêm cổng chuyển tiếp mới, chỉ định cổng 5901 làm cổng Nguồn và trong trường Đích, chỉ định localhost:5901. Nhấp vào Thêm.

Sau đó mở phần Phiên và nhập địa chỉ IP của bạn vào trường Tên máy chủ (hoặc địa chỉ IP). Để kết nối, nhấp vào Mở.

Mở một phiên vnc. Không đóng cửa sổ PuTTY cho đến khi kết nối VNC được thiết lập.

Sau đó sử dụng máy khách VNC. Chỉ cần nhập localhost::5901 và đặt kết nối SSH ở chế độ nền.

Dành cho người dùng OS X

Để tạo đường hầm SSH, hãy nhập vào terminal:

ssh vnc@your_server_ip -L 5901:localhost:5901

Xác thực. Sau đó chỉ định localhost:5901 cho Chia sẻ màn hình.

Phần kết luận

Bây giờ bạn có quyền truy cập vào máy tính để bàn từ xa được chia sẻ trên Máy chủ Debian 8, có thể được sử dụng để thiết lập máy chủ hoặc cộng tác.

Thẻ: ,

Dựa vào tên của ứng dụng VNC Viewer, nhiều người dùng có thể đoán ngay nó thuộc loại phần mềm nào, chẳng hạn bằng cách vẽ ra sự tương đồng với gói TeamViewer nổi tiếng. Tuy nhiên, người dùng thông thường có thể gặp phải một tiện ích như vậy lần đầu tiên, vì vậy cần giải quyết riêng một số vấn đề liên quan đến cách cài đặt và sửa đổi chương trình nào là tốt nhất, cách định cấu hình ứng dụng để có chế độ vận hành tối ưu, cách sử dụng VNC Viewer, “chặn” tối đa các cơ hội ứng dụng.

Thông tin chung về VNC Viewer

Để bắt đầu, chúng ta hãy xem ngắn gọn sản phẩm phần mềm này là gì và xem xét mục đích sử dụng của nó. Dựa trên sự tương tự ở trên, chúng ta có thể nói rằng một máy khách VNC ứng dụng phổ quát, cho phép bạn tổ chức quyền truy cập vào máy tính từ xa chỉ trong vài phút.

Đó là chương trình này có thể được phân loại là một lớp ứng dụng RDP được thiết kế để kết nối với máy tính để bàn từ xa. Tuy nhiên, vấn đề không chỉ giới hạn ở việc truy cập vào máy tính từ xa, vì bản thân chương trình có nhiều tính năng bổ sung:

  • Kiểm soát hoàn toàn cài đặt mà không bị hạn chế ở chế độ toàn màn hình hoặc cửa sổ.
  • Chuyển tập tin.
  • Khả năng gửi tin nhắn qua trò chuyện tích hợp.
  • Chặn các thiết bị ngoại vi nếu cần thiết (chuột, bàn phím, v.v.).
  • Khả năng truy cập các PC được kết nối thông qua trình duyệt.
  • Tổ chức kết nối với nhiều thiết bị đầu cuối cùng một lúc.

Cần lưu ý ngay rằng công nghệ Điện toán Mạng Ảo (VNC) còn có thêm một lợi thế không thể phủ nhận, khi so sánh với các chất tương tự. Thực tế là nó có khả năng cài đặt các phần máy chủ và máy khách (tùy thuộc vào loại kết nối sẽ được sử dụng trong tương lai), hơn nữa, tinh chỉnh Phần mềm cho mọi cài đặt để đảm bảo hiệu suất tối đa.

Các tính năng của việc chọn phân phối cài đặt

Trước khi tiến hành cài đặt, bạn cần quyết định lựa chọn sửa đổi máy khách VNC mà bạn định cài đặt. Thứ nhất, bản thân chương trình này đa nền tảng và có thể được cài đặt trên hầu hết các hệ điều hành máy tính để bàn và thiết bị di động đã biết. Thứ hai, đối với cùng một hệ điều hành Windows, bạn có thể tìm thấy các phiên bản của chương trình RealVNC, TightVNC, UltraVNC và bản sửa đổi nhẹ của UltraVNC SC (tất cả các phiên bản đều tương thích với nhau, nhưng một số chức năng có thể không khả dụng), dành cho Mac OS X - Chicken và JollysFastVNC. Thứ ba, bạn nên quyết định loại máy khách sẽ được cài đặt (phần máy chủ được sử dụng để tổ chức các kết nối từ máy trung tâm đến thiết bị đầu cuối con và phần máy khách được sử dụng để kết nối từ máy con đến máy chủ trung tâm).

Thứ tư, trực tiếp trên nguồn chính thức nhà phát triển, bạn có thể chọn định dạng tệp trình cài đặt VNC Viewer ưa thích của mình cho Windows (EXE, MSI) hoặc tải xuống gói phân phối dưới dạng đóng gói kho lưu trữ ZIP. Điểm cuối cùng là theo yêu cầu của người dùng.

Cài đặt VNC Viewer

Bây giờ chúng ta hãy chuyển trực tiếp đến phần cài đặt đã chọn sản phẩm phần mềm. Lưu ý rằng đối với hầu hết tất cả các sửa đổi, quá trình cài đặt đều giống nhau.

Để bắt đầu cài đặt trong Phiên bản Windows 7 trở lên, tệp trình cài đặt máy khách VNC được khởi chạy độc quyền với đặc quyền của quản trị viên (trong Thực đơn nhân dân tệ chọn chạy với tư cách quản trị viên). Không có gì bất thường trong quá trình cài đặt.

Người dùng cần chọn ngôn ngữ ưa thích của mình, chấp nhận các điều khoản và điều kiện thỏa thuận cấp phép, chỉ định đường dẫn cài đặt (bạn không phải thay đổi nó), thêm biểu tượng vào “Máy tính để bàn” ở một giai đoạn, sau đó chỉ cần nhấp vào nút bắt đầu cài đặt.

Lần đầu ra mắt ứng dụng

Giả sử rằng chương trình đã được cài đặt và người dùng khởi chạy nó lần đầu tiên. Ban đầu, cài đặt VNC Viewer không phức tạp lắm. Ở lần khởi động đầu tiên, một cửa sổ sẽ hiển thị trong đó bạn có thể chọn hành động mong muốn. Nhưng chúng ta sẽ tiến hành từ thực tế là chúng ta cần tự mình tạo ra kết nối.

Làm cách nào để sử dụng VNC Viewer?

Đầu tiên, thông qua menu file, chọn mục New Connection, sau đó nhập địa chỉ IP vào cửa sổ mới thiết bị đầu cuối từ xa hoặc tên đầy đủ của máy tính (có thể tìm thấy địa chỉ trên máy được kết nối bằng cách sử dụng các thuộc tính của kết nối Internet hoặc dòng lệnh bằng cách nhập lệnh ipconfig và có thể xem tên máy tính trong thuộc tính hệ thống). Sau đó, một cửa sổ yêu cầu mật khẩu sẽ xuất hiện, trong đó bạn cần nhập sự kết hợp mong muốn. Nếu kết hợp khớp với mật khẩu được đặt trên máy tính từ xa, “Desktop” từ xa sẽ xuất hiện.

Chúng tôi đã tìm ra cách sử dụng VNC Viewer để tạo kết nối. Bây giờ là một vài lời về các cài đặt ưa thích.

Nếu nhìn kỹ vào cửa sổ tạo kết nối, bạn sẽ thấy một tab dành cho chuyên gia. Ví dụ: nếu trong các cài đặt này bạn chọn thuật toán nén ưa thích cho dữ liệu được truyền và nhận, bạn có thể giảm đáng kể tải trên CPU và tối ưu hóa ứng dụng Công nghệ ảoĐiện toán mạng ngay cả đối với các mạng có thông lượngở tốc độ 256 kbit/s. Đối với đồ họa, bạn nên đặt mức nén cao (Mức nén) với chất lượng tối thiểu (Chất lượng JPEG) và, như một cách tối ưu hóa bổ sung, hãy kích hoạt giảm số lượng màu (Màu bị hạn chế hoặc bgr233).

Ngoài ra, cần lưu ý rằng một thiết bị đầu cuối có thể sử dụng kết nối với nhiều máy dựa trên cổng cơ sở 5900 thông qua tùy chọn hiển thị. Theo mặc định, màn hình chính được đặt thành "0" và đối với tất cả các màn hình khác, nó được tăng lên ("1", "2", v.v.). Theo đó, cổng sẽ thay đổi (5901, 5902, v.v.), cổng này sẽ cần được chỉ định sau địa chỉ được phân tách bằng dấu hai chấm (ví dụ: 192.168.0.5:5901). Trong trường hợp địa chỉ động (chứ không phải tĩnh), bạn có thể sử dụng thêm việc lấy Thuốc nổ DNS, ví dụ: dựa trên DynDNS. Bạn có thể đặt cài đặt này trên bộ định tuyến của mình hoặc đăng ký trên cổng dịch vụ trên Internet. Trong trường hợp này, dịch vụ sẽ truyền máy khách đã cài đặt tất cả thông tin liên quan đến việc thay đổi IP của máy tính được kết nối.

Sự cố có thể xảy ra trong chương trình

Về cơ bản, lỗi chỉ có thể là do hiện tại đơn giản là không có kết nối Internet trên máy tính hoặc cổng tương ứng mà chương trình sử dụng theo mặc định đã bị chiếm dụng. Đôi khi bạn có thể nhận thấy việc chặn bởi phần mềm chống vi-rút và tường lửa. Nhưng những vấn đề này có thể được giải quyết khá đơn giản.

Một số phương pháp khắc phục sự cố phổ biến

Trong số các phương pháp chính để loại bỏ các lỗi có thể xảy ra khi cố gắng thiết lập kết nối, chúng tôi khuyên bạn nên làm như sau:

  • Đi vào chương trình đã cài đặt vào danh sách các ứng dụng được phép sử dụng kết nối Internet trong Windows Tường lửa.
  • Tạo quy tắc mới cho cổng 5900 cho các kết nối đi và đến.
  • Nếu giải pháp trước đó không hiệu quả, hãy chuyển tiếp cổng 5900 trên bộ định tuyến của bạn.
  • Thêm chương trình vào danh sách loại trừ chống vi-rút.
  • Kiểm tra hướng dẫn có chính xác không địa chỉ tĩnh và mật khẩu để truy cập thiết bị đầu cuối từ xa.

Kết quả

Đó là tất cả những gì liên quan đến câu hỏi về cách sử dụng VNC Viewer. Như bạn có thể thấy, không có gì đặc biệt phức tạp ở đây. Tóm lại, điều đáng lưu ý là trong một số trường hợp, nên sử dụng mật khẩu không được đặt trực tiếp trong các hệ điều hànhồ, và đăng nhập trước vào bản ghi đăng ký trong chính ứng dụng khách, trước đó đã tạo nó trên một tài nguyên đặc biệt. Trong trường hợp này, bạn sẽ không phụ thuộc vào tài khoản Windows.

Cách giúp người dùng của bạn truy cập hệ thống Linux nhiều người dùng từ mọi nơi

Kiến trúc máy chủ VNC và X

Giao diện đồ họa người dùng (GUI) trong Linux® sử dụng Hệ thống X Window (viết tắt X). X là một GUI khác thường ở một số khía cạnh, đáng chú ý là vì nó vốn là một giao diện mạng. Máy chủ X về bản chất là một chương trình máy chủ mạng. Các chương trình máy chủ mạng cung cấp cho các chương trình máy khách quyền truy cập vào các tài nguyên cục bộ và điều này cũng đúng với máy chủ X. Điều đặc biệt là trong trường hợp máy chủ X, “tài nguyên cục bộ” là màn hình, bàn phím và chuột mà người dùng làm việc. Trong cấu hình phổ biến nhất, các chương trình máy khách X chạy trên cùng một máy tính với máy chủ. Do đó, LibreOffice, Chương trình Thao tác Hình ảnh GNU (GIMP) hoặc các chương trình khác là các máy khách X sử dụng giao thức mạng X để chấp nhận dữ liệu từ người dùng và hiển thị kết quả trên cùng một máy tính.

Tuy nhiên, khi X được sử dụng trên mạng, người dùng sẽ ngồi ở máy chủ X và máy khách X là các chương trình cần được chạy trên một máy tính khác. Cấu hình này yêu cầu một giây giao thức mạng, thiết lập kết nối. Giao thức thứ hai này có thể là telnet, Secure Shell (SSH) hoặc X Display Kiểm soát người quản lý Giao thức (XDMCP). Máy chủ cho giao thức đăng nhập từ xa này chạy trên máy khách X và máy khách đăng nhập từ xa chạy trên máy chủ X. Máy chủ đăng nhập từ xa chạy các máy khách X, từ đó thiết lập kết nối với máy chủ X. minh họa sự tương tác này. Mũi tên chấm chấm cho biết sự bắt đầu của phiên. (Với XDMCP, máy khách XDMCP được tích hợp vào chương trình máy chủ X.)

Hình 1. Đối với Truy cập từ xa X yêu cầu máy khách và máy chủ trên cả hai máy tính

Cấu hình này hoạt động tốt trong nhiều mạng cục bộ, nhưng không phải là không có khuyết điểm. Ví dụ: nó yêu cầu khởi tạo giao thức mạng hai chiều, giao thức này có thể bị ngăn chặn bởi tường lửa hoặc bộ định tuyến Dịch địa chỉ mạng (NAT). (SSH loại bỏ trở ngại này bằng cách cho phép tạo đường hầm cho các phiên X.) Ngoài ra, mặc dù máy chủ X tồn tại trên hầu hết các nền tảng nhưng chúng thường không được cài đặt trên các máy tính chạy Kiểm soát cửa sổ®. Vì những lý do này và các lý do khác, nhiều người thích sử dụng giao thức khác, Bộ đệm khung từ xa (RFB), được triển khai trong Chương trình ảo Máy tính mạng (VNC).

VNC là một công cụ đa nền tảng cho phép truy cập từ xa vào Linux, UNIX®, Mac OS X, Windows và các hệ thống khác từ bất kỳ loại máy khách nào. Người dùng ngồi ở máy khách và truy cập vào máy chủ từ xa. TRONG Máy chủ Linux VNC phản chiếu nội dung của màn hình máy chủ X cục bộ sang máy tính từ xa hoặc chứa nội dung của chính nó máy chủ X riêng, có khả năng chạy độc lập với bất kỳ điều khiển nào trên màn hình cục bộ. Kết quả được hiển thị trong Hình 2. Một lần nữa, mũi tên chấm cho biết phiên bắt đầu. Cấu hình này loại bỏ nhu cầu kết nối mạng ngược và vì máy khách và máy chủ VNC có sẵn cho nhiều hệ điều hành, nên cùng một chương trình máy khách sẽ cung cấp quyền truy cập vào bất kỳ máy chủ nào.

Hình 2. Máy chủ VNC bao gồm máy chủ X có thể giao tiếp với chương trình địa phương thông qua máy khách X

Nhược điểm của VNC là xác thực RFB dựa trên mật khẩu không có tên người dùng. Vì vậy, mỗi người dùng phải bắt đầu một phiên máy chủ VNC độc lập và thiết lập kết nối với phiên bản VNC đó bằng cách chỉ định con số đúng Hải cảng. Yêu cầu này có thể chấp nhận được đối với hệ thống một người dùng, nhưng lại gây ra sự bất tiện cực độ khi làm việc trên máy tính nhiều người dùng.

Để giải quyết vấn đề này, bạn có thể kết hợp hai phương pháp sau: cấu hình lại máy chủ XDMCP cục bộ để nó giúp máy chủ X được tích hợp trong VNC cung cấp xác thực nhiều người dùng còn thiếu. (Cấu hình kết quả được minh họa trong Hình 3. Mũi tên chấm cho biết bắt đầu phiên.) Bây giờ, khi người dùng VNC từ xa truy cập vào máy chủ VNC, họ có thể nhập tên người dùng và mật khẩu truy cập cho các phiên VNC duy nhất của riêng họ, để máy tính có thể được sử dụng lâu dài như bất kỳ người dùng nào.

Hình 3: Việc thêm XDMCP vào cấu hình VNC giúp tăng tính linh hoạt

Thiết lập máy chủ VNC

Có một số cách để chạy VNC, bao gồm sử dụng tập lệnh, liên kết VNC với môi trường máy tính để bàn của bạn bằng cách sử dụng dụng cụ để bàn và sử dụng xinetd để nghe các kết nối VNC. Cách tiếp cận cuối cùng này được mô tả ở đây vì nó cho phép VNC chạy theo cách có thể sử dụng máy chủ XDMCP. Trước khi chuyển sang hướng dẫn thiết lập VNC để chạy qua xinetd, bạn phải chọn máy chủ VNC.

Chọn máy chủ VNC

Có một số chương trình máy chủ VNC. (Xem phần). Một số phổ biến nhất là TightVNC, TigerVNC và RealVNC. Bài viết này sử dụng TightVNC làm ví dụ. Rất tiếc, chi tiết cấu hình đều dành riêng cho máy chủ và phân phối, vì vậy hướng dẫn ở đây sẽ cần được điều chỉnh cho phù hợp với phần mềm của bạn.

Cài đặt xinetd

Nhiều bản phân phối cài đặt siêu máy chủ xinetd theo mặc định, nhưng không phải tất cả. Vì phương pháp được mô tả ở đây giả sử sử dụng xinetd nên bạn phải cài đặt xinetd nếu nó chưa được cài đặt. Trên hầu hết các bản phân phối, xinetd có thể được cài đặt bằng trình quản lý gói, ví dụ bằng cách gọi apt-get install xinetd trên các bản phân phối trên Dựa trên Debian hoặc zypper cài xinetd trong openSUSE.

Bạn cũng có thể cần phải cấu hình quá trình khởi động xinetd. Thông thường, bạn có thể sử dụng tập lệnh khởi động System V (SysV) để khởi động một lần:

# /etc/init.d/xinetd bắt đầu

Đối với cài đặt khởi động tự động xinetd, khi khởi động máy tính, cần có kiến ​​thức về phương thức vận hành của các tập lệnh khởi động cho bản phân phối của bạn. Thông thường, việc này được thực hiện bằng một tiện ích như chkconfig (được sử dụng trên Fedora, openSUSE và các bản phân phối liên quan), update-rc.d (được sử dụng trên Debian và các bản phân phối liên quan) hoặc rc-update (được sử dụng trên Gentoo), đại loại như thế này:

# chkconfig xinetd trên # update-rc.d xinetd kích hoạt # rc-update thêm xinetd mặc định

Chỉ nhập một từ các lệnh này hoặc tìm lệnh tương đương cho bản phân phối của bạn.

Lưu ý rằng xinetd có thể không khởi động nếu nó không được cấu hình để chạy bất kỳ dịch vụ nào. Vì vậy, bạn có thể phải đợi để chạy nó cho đến khi cấu hình xinetd để quản lý máy chủ VNC của mình.

Thiết lập xinetd

Các máy chủ do xinetd quản lý sẽ đặt các tập tin cấu hình vào thư mục /etc/xinetd.d. Như vậy, để cấu hình xinetd quản lý VNC, bạn cần tạo hoặc chỉnh sửa file có kiểu tên /etc/xinetd.d/vnc.(Trên một số bản phân phối, chẳng hạn như openSUSE, gói máy chủ VNC sẽ cài đặt một tệp như vậy.) Liệt kê 1 cho thấy một ví dụ.

Liệt kê 1. Ví dụ về cấu hình VNC cho xinetd
dịch vụ vnc (vô hiệu hóa = không socket_type = giao thức luồng = tcp chờ = không người dùng = không ai máy chủ = /usr/bin/Xvnc server_args = -inetd -once -query localhost -geometry 1024x768 -deep 16 type = UNLISTED port = 5900)

Mục này chỉ rõ một số tùy chọn xinetd, hầu hết các tùy chọn này nên được giữ nguyên. Dưới đây là danh sách các cài đặt có thể cần được cấu hình.

  • dịch vụ. VNC với thông số khác nhau có thể chạy trên nhiều cổng, nhưng trong trường hợp này, ở dòng đầu tiên của Liệt kê 1, bạn cần đặt cho VNC một tên dịch vụ riêng cho mỗi cổng.
  • máy chủ. Tham số này cần được thay đổi để trỏ đến phần chính tập tin nhị phân Máy chủ VNC, thường được gọi là Xvnc.
  • server_args. Bạn gần như chắc chắn sẽ muốn thay đổi một số giá trị này, như được mô tả bên dưới.
  • Hải cảng. VNC sử dụng số cổng từ 5900 trở lên. Bạn có thể khởi động máy chủ với những nghĩa khác nhau các thông số thông qua các cổng khác nhau. Trong trường hợp này, mỗi phiên bản phải được gán số cổng riêng.

Phần khó nhất khi thiết lập xinetd là thiết lập các đối số máy chủ. Bạn có thể sử dụng các đối số được hiển thị trong Liệt kê 1 làm mô hình, thay đổi một số đối số đó.

  • -truy vấn localhost. Tùy chọn này chỉ định rằng máy chủ VNC X sẽ kiểm tra hệ thống localhost để xác thực XDMCP. Nó có thể được thay đổi nếu bạn muốn sử dụng một máy tính làm dịch giả để truy cập các chương trình của máy tính khác.
  • -hình học 1024x768 . Tùy chọn này đặt độ phân giải ảo của phiên VNC. Lưu ý rằng độ phân giải này không nhất thiết phải khớp với độ phân giải của máy chủ X thông thường đang chạy trên máy chủ. Bạn có thể tạo nhiều mục chạy ở các độ phân giải khác nhau để người dùng có thể đăng nhập vào máy chủ VNC ở độ phân giải phù hợp với nhu cầu của mình. hệ thống cục bộ.
  • -độ sâu 16 . Tham số này đặt độ sâu màu. Giá trị càng thấp thì màn hình cập nhật càng nhanh, nhưng trên màn hình có một lượng lớn màu sắc có thể bị biến dạng. Phạm vi giá trị chấp nhận được từ 2 đến 32.

Có nhiều tùy chọn khác và một số tùy chọn phụ thuộc vào máy chủ VNC. Tham khảo tài liệu máy chủ VNC của bạn.

Thiết lập máy chủ XDMCP

Hầu hết các bản phân phối Linux đều cấu hình máy chủ XDMCP của chúng để chỉ quản lý màn hình cục bộ. Để cho phép truy cập từ xa, bạn cần cấu hình lại máy chủ XDMCP để chấp nhận các yêu cầu truy cập từ máy chủ VNC chạy trên cùng một máy tính. Các chi tiết phụ thuộc vào máy chủ XDMCP. Ba cái được sử dụng phổ biến nhất trên Linux là Trình quản lý hiển thị Gnome (GDM), Trình quản lý hiển thị ánh sáng (LightDM) và Trình quản lý hiển thị KDE (KDM). Các máy chủ XDMCP khác, chẳng hạn như XDM, yêu cầu các cài đặt khác với những cài đặt được mô tả ở đây. Trong mọi trường hợp, sau khi cấu hình lại máy chủ XDMCP, bạn sẽ phải khởi động lại nó.

Chỉnh sửa tệp cấu hình XDMCP

Nếu bạn không chắc chắn máy chủ XDMCP nào đang được sử dụng trên hệ thống của mình, bạn có thể xác định điều này bằng cách xem danh sách quy trình bằng dòng dm, ví dụ:

$ ps rìu | grep dm 929? Ss 0:00 /usr/bin/kdm 962 tty7 Ss+ 0:19 /usr/bin/Xorg -br:0 vt7 -nolisten tcp -auth \ /var/lib/xdm/authdir/authfiles/A:0-pp4shb 30157 pts/3 S+ 0:00 grep --color=auto dm

Dòng đầu tiên của bản in này cho biết KDM đang chạy, vì vậy để VNC sử dụng XDMCP, bạn cần chỉnh sửa tệp cấu hình của máy chủ đó. Các tệp cấu hình của hầu hết các chương trình XDMCP đều có cùng định dạng. Chúng chứa các phần có tên được đặt trong dấu ngoặc vuông, chẳng hạn như . Các dòng theo sau tên phần chỉ định tham số bằng dấu bằng, ví dụ: Enable=true . Bảng 1 liệt kê tên tệp cấu hình, tên phần và tham số phải được xác định để XDMCP hoạt động trên một số máy chủ XDMCP Linux phổ biến.

Bảng 1. Các thông số cho phép XDMCP hỗ trợ VNC cho các máy chủ XDMCP khác nhau

Phần XDMCP trong tệp cấu hình có thể bị thiếu hoàn toàn. Nếu có, nó có thể vô hiệu hóa rõ ràng hỗ trợ XMDCP, chứa các tùy chọn đã nhận xét hoặc để trống. Bất kể trạng thái ban đầu tệp, bạn phải đảm bảo rằng phần XDMCP có mặt và hỗ trợ đó được bật. Ví dụ: hãy xem cách định cấu hình KDM để bật XDMCP:

Bật=true

Một số bản phân phối cho phép bạn kích hoạt các biện pháp bảo mật bổ sung mà bạn có thể cần phải thư giãn. Một trong số đó là tường lửa. Các tập lệnh tường lửa thường dành riêng cho từng phân phối, vì vậy để có hướng dẫn cấu hình bức tường lửa tham khảo tài liệu dành cho hệ thống của bạn. Bạn muốn localhost có quyền truy cập vào cổng 177 và máy khách VNC truy cập vào cổng 5900 (hoặc bất kỳ cổng nào khác được sử dụng cho VNC).

OpenSUSE có tập tin bổ sung cấu hình kiểm soát một số loại quyền truy cập, bao gồm quyền truy cập XDMCP: /etc/sysconfig/displaymanager. Mở tệp này trong trình soạn thảo văn bản và tìm dòng sau:

DISPLAYMANAGER_REMOTE_ACCESS="không"

Thay đổi giá trị của tham số này thành "có". Nếu bạn để "no" thì cửa sổ đăng nhập máy chủ XDMCP sẽ không hiển thị khi kết nối với máy chủ VNC. Trong hầu hết các bản phân phối, sự thay đổi này Không bắt buộc: Tệp này chỉ sử dụng openSUSE.

Khởi động lại máy chủ XDMCP

Khi máy chủ XDMCP được cấu hình để hỗ trợ kết nối từ xa, nó cần được khởi động lại. Trên các bản phân phối khởi động X thông qua tệp init SysV, chẳng hạn như Debian và Gentoo, việc này có thể được thực hiện bằng tùy chọn khởi động lại:

# /etc/init.d/gdm khởi động lại

Trên hệ thống sử dụng runlevel để chạy X, chẳng hạn như Fedora hoặc openSUSE, bạn cần vào runlevel chế độ văn bản(thường là 3) và sau đó quay lại cấp GUI (thường là 5):

#telinit 3 #telinit 5

Hãy nhớ rằng cả hai cách tiếp cận đều sẽ đăng xuất bạn khỏi X, vì vậy hãy lưu mọi công việc bạn đã thực hiện trong phiên X trước khi tiếp tục.

Kiểm tra và gỡ lỗi

Bây giờ bạn có thể đăng nhập bằng máy tính điều khiển từ xa sử dụng máy khách VNC. Hầu hết các bản phân phối Linux đều có lệnh vncviewer, vì vậy bạn có thể gõ:

vncviewer

Để đăng nhập tên từ xa thông qua VNC. Nếu VNC được cấu hình và hoạt động chính xác, kết quả sẽ giống như Hình 4. Nếu bạn thiết lập nhiều phiên VNC trên các cổng khác nhau, bạn có thể chỉ định số phiên VNC bằng cách chuyển nó như một phần của tên máy chủ. Đi vào:

vncviewer:3

Để đăng nhập vào phiên 3 (qua cổng 5903).

Hình 4. Khi được cấu hình để hoạt động với XDMCP, VNC cung cấp lời nhắc Linux thông thường

Nếu bạn không thấy màn hình đăng nhập XDMCP khi chạy thử nghiệm này, bạn sẽ cần phải gỡ lỗi. Dưới đây là một số khuyến nghị.

  • Nếu vncviewer báo cáo rằng kết nối bị từ chối, điều đó rất có thể có nghĩa là siêu máy chủ trên máy chủ VNC không được cấu hình đúng cách. Kiểm tra cấu hình xinetd và thử khởi động lại siêu máy chủ. Cũng có thể tường lửa đang chặn quyền truy cập vào máy chủ VNC.
  • Nếu máy khách VNC khởi động và kết nối với máy chủ, nhưng bạn chỉ thấy màn hình màu xám với con trỏ có thể di chuyển được thì rất có thể sự cố xảy ra với cấu hình máy chủ XDMCP. Kiểm tra các cài đặt ở trên và khởi động lại máy chủ XDMCP.
  • Xem lại các tệp nhật ký sự kiện như bạn thường làm khi gỡ lỗi. Bạn có thể cần tìm kiếm tất cả các tệp nhật ký trong thư mục /var/log bằng cách sử dụng các liên kết đến xinetd, máy chủ XDMCP và máy chủ VNC của bạn.

Các vấn đề bảo mật của VNC

RFB không phải là một giao thức an toàn; Hầu hết máy khách và máy chủ VNC không mã hóa dữ liệu của họ. (VNC mã hóa mật khẩu riêng, nhưng cách tiếp cận được mô tả ở đây không sử dụng những mật khẩu này.) Hãy cẩn thận khi chọn cách thức và vị trí cài đặt VNC. Nếu bạn muốn sử dụng VNC trên mạng không bảo mật, có ba tùy chọn:

  • sử dụng ảo Mạng riêng tư(VPN);
  • giao thức đường hầm thông qua SSH;
  • Sử dụng tùy chọn VNC hỗ trợ mã hóa, chẳng hạn như TigerVNC với khả năng mã hóa Transport Layer Security.

Khi bạn bật cửa sổ đăng nhập VNC như được mô tả trong bài viết này, thế giới bên ngoàiÍt nhất hai cổng được mở (VNC và XDMCP). Cả hai cổng có thể bị hạn chế bởi các quy tắc tường lửa để giảm thiểu nguy cơ lạm dụng. Lưu ý rằng cổng XDMCP (UDP 177) chỉ được mở cho localhost, vì vậy quy tắc tường lửa cho cổng này có thể khá hạn chế.

Phần kết luận

Nói chung, kết nối VNC và XDMCP là một phương pháp hữu ích để cung cấp thông tin đăng nhập GUI từ xa cho nhiều người dùng. máy tính Linux. Phương pháp này có ưu điểm hơn so với việc áp dụng trực tiếp XDMCP trong môi trường đa nền tảng hoặc khi có sự cố do tường lửa hoặc NAT gây ra. Trên máy tính nhiều người dùng, tốt hơn là các phương pháp phổ biến hơn kết nối trực tiếp VNC. Có những vấn đề an toàn cần xem xét khi sử dụng phương pháp này. Hãy chuẩn bị thiết lập các quy tắc tường lửa để hạn chế truy cập không mong muốn từ bên ngoài và sử dụng mã hóa nếu dữ liệu truyền qua mạng không đáng tin cậy.

|

VNC (Virtual Network Computing) là một hệ thống truy cập từ xa cho phép bạn sử dụng bàn phím và chuột để tương tác với giao diện đồ họa trên máy chủ từ xa. Với sự trợ giúp của nó, bạn có thể quản lý các tệp, phần mềm và cài đặt của máy chủ từ xa mà không cần truy cập dòng lệnh.

Hướng dẫn này sẽ giúp bạn cài đặt VNC trên máy chủ riêng ảo Ubuntu 16.04 và thiết lập kết nối an toàn bằng đường hầm SSH. Máy chủ VNC sẽ sử dụng TightVNC, một gói nhanh và nhẹ điều khiển từ xa, hỗ trợ hoạt động ngay cả với Internet chậm.

Yêu cầu

  • Máy chủ Ubuntu 16.04 đã được định cấu hình (tham khảo phần này).
  • Người dùng không phải root có quyền truy cập sudo.
  • Một máy tính cục bộ có máy khách VNC được cài đặt sẵn hỗ trợ kết nối VNC qua đường hầm SSH. Người dùng Windows có thể cài đặt TightVNC, RealVNC hoặc UltraVNC. Người dùng Mac OS X có thể sử dụng gói Chia sẻ màn hình tích hợp sẵn hoặc sử dụng các ứng dụng đa nền tảng (ví dụ: RealVNC). Người dùng Linux có thể chọn vinagre, krdc, RealVNC, TightVNC, v.v.

1: Cài đặt Môi trường máy tính để bàn và Máy chủ VNC

Theo mặc định, máy chủ Ubuntu 16.04 không được cài đặt sẵn môi trường đồ họa máy tính để bàn và máy chủ VNC. Vì vậy, trước tiên bạn cần phải cài đặt các thành phần này. Hướng dẫn này sử dụng các gói Xfce và TightVNC có sẵn trong kho chính thức của Ubuntu.

Để cài đặt các gói được chỉ định trên máy chủ, hãy nhập:

sudo apt cài đặt xfce4 xfce4-goodies chặt chẽvncserver

Để hoàn tất thiết lập ban đầu của máy chủ VNC sau khi cài đặt nó và chọn mật khẩu mạnh, hãy sử dụng lệnh vncserver.

Lệnh sẽ yêu cầu bạn chọn và xác nhận mật khẩu cũng như mật khẩu xem (tùy chọn). Người dùng truy cập VNC bằng mật khẩu duyệt web sẽ không thể điều khiển VNC bằng chuột hoặc bàn phím. Mật khẩu này cho phép bạn chứng minh VNC cho người dùng khác nếu cần.

Lệnh vncserver sẽ hoàn thành bước đầu thiết lập VNC và sẽ tạo các tập tin cấu hình.

2: Thiết lập máy chủ VNC

Đầu tiên bạn cần xác định các lệnh mà VNC server sẽ thực thi khi khởi động. Các lệnh này phải có trong tệp xstartup trong thư mục .vnc, được lưu trữ trong thư mục chính của bạn người dùng hiện tại. Tập lệnh khởi động được tạo bởi nhóm vncserver nhưng nó cần được sửa đổi để hoạt động với Xfce.

Khi VNC khởi động lần đầu, nó sử dụng cổng 5901. VNC gọi cổng này:1. VNC có thể chạy các phiên bản khác trên các cổng khác, sẽ được gọi là :2, :3, v.v.

Để thay đổi cài đặt máy chủ VNC, bạn cần dừng phiên bản bằng cổng 5901.

vncserver -kill:1

Lệnh sẽ trả về thông báo sau (PID sẽ khác):

Giết tiến trình Xtightvnc ID 17648

Tạo nên bản sao lưu tập tin xstartup:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Sau đó tạo một tệp xstartup mới:

nano ~/.vnc/xstartup

Dán các lệnh sau vào đó, lệnh này sẽ được thực thi tự động khi máy chủ VNC khởi động. Lưu và đóng tập tin.

~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresource
bắt đầuxfce4&

Với lệnh đầu tiên, xrdb $HOME/.Xresources, GUI máy chủ VNC sẽ đọc tệp .Xresources. Trong tệp .Xresources, người dùng có thể thay đổi một số cài đặt của màn hình đồ họa (tùy chỉnh màu của thiết bị đầu cuối, chủ đề con trỏ, phông chữ). Lệnh thứ hai chỉ cần khởi chạy Xfce, đây là nơi lưu trữ tất cả đồ họa phần mềm, cần thiết để quản lý máy chủ.

Bây giờ bạn cần chuyển quyền đối với tệp:

sudo chmod +x ~/.vnc/xstartup

Khởi động lại VNC:

Trong quá trình khởi động, máy chủ sẽ trả về:

Máy tính để bàn "X" mới là your_server_name.com:1
Đang khởi động các ứng dụng được chỉ định trong /home/8host/.vnc/xstartup
Tệp nhật ký là /home/8host/.vnc/liniverse.com:1.log

3: Kiểm tra máy tính để bàn VNC

Bây giờ bạn cần đảm bảo rằng máy chủ VNC được cấu hình đúng.

Tạo kết nối SSH trên máy tính cục bộ của bạn, được chuyển hướng đến localhost của máy chủ VNC. Đối với điều này bạn có thể sử dụng Thiết bị đầu cuối Linux hoặc OS X.

ssh -L 5901:127.0.0.1:5901 -N -f -l tên người dùng server_ip_address

Ghi chú: Thay thế user và server_ip_address bằng tên người dùng có quyền truy cập sudo và địa chỉ IP của bạn.

Nếu bạn đang sử dụng đồ họa Máy khách SSH(ví dụ: PuTTY), sử dụng server_ip_address làm địa chỉ IP kết nối, sau đó chỉ định localhost:5901 trong cài đặt đường hầm SSH.

Bây giờ bạn có thể sử dụng máy khách VNC để kết nối với máy chủ. Để làm điều này, bạn cần phải vượt qua xác thực. Nhập mật khẩu đã đặt ở phần 1.

Sau đó, màn hình Xfce tiêu chuẩn sẽ xuất hiện trên màn hình.

Bạn có thể truy cập các tệp trong thư mục chính của mình bằng trình quản lý tệp hoặc dòng lệnh.

4: Tạo tệp dịch vụ VNC

Bây giờ bạn cần định cấu hình máy chủ VNC làm dịch vụ hệ thống.

Tạo một tệp mới /etc/systemd/system/ [email được bảo vệ]:

sudo nano /etc/systemd/system/ [email được bảo vệ]

Sao chép và dán đoạn mã sau vào nó:

/etc/systemd/system/ [email được bảo vệ]
Mô tả=Khởi động máy chủ TightVNC khi khởi động
Sau=syslog.target network.target
Loại=rẽ nhánh
Người dùng=8máy chủ
PAMName=đăng nhập
PIDFile=/home/8host/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill:%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -deep 24 -geometry 1280x800:%i
ExecStop=/usr/bin/vncserver -kill:%i
WantedBy=multi-user.target

Ghi chú: Nhập tên người dùng của bạn thay vì 8host.

Lưu và đóng tập tin.

Khởi động lại daemon:

sudo systemctl daemon-tải lại

Bao gồm tệp mới:

kích hoạt sudo systemctl [email được bảo vệ]

Dừng phiên bản máy chủ VNC hiện tại nếu nó vẫn đang chạy:

vncserver -kill:1

Bây giờ hãy thử chạy nó như bất kỳ dịch vụ systemd nào khác:

sudo systemctl bắt đầu vncserver@1

Để đảm bảo máy chủ đang chạy, hãy kiểm tra trạng thái của nó:

trạng thái sudo systemctl vncserver@1

Nếu máy chủ đang chạy, lệnh sẽ trả về:

[email được bảo vệ]- Máy chủ TightVNC trên Ubuntu 16.04
Đã tải: đã tải (/etc/systemd/system/ [email được bảo vệ]; kích hoạt; cài đặt trước của nhà cung cấp: đã bật)
Hoạt động: hoạt động (đang chạy) kể từ Thứ Hai ngày 25-04-2016 03:21:34 EDT; 6 giây trước
Quá trình: 2924 ExecStop=/usr/bin/vncserver -kill:%i (code=exited, status=0/SUCCESS)
...
systemd: Khởi động máy chủ TightVNC trên Ubuntu 16.04...

systemd: pam_unix(login:session): phiên được mở cho người dùng được xác định bởi (uid=0)
systemd: Đã khởi động máy chủ TightVNC trên Ubuntu 16.04.

Phần kết luận

Máy chủ Ubuntu 16.04 hiện đã cài đặt máy chủ VNC an toàn. Nó có thể được sử dụng để quản lý các tập tin, chương trình và cài đặt của máy chủ từ xa.

Thẻ: ,

VNC (Virtual Network Computing) là một hệ thống truy cập từ xa cho phép bạn sử dụng bàn phím và chuột để tương tác với giao diện đồ họa trên máy chủ từ xa. Với sự trợ giúp của nó, bạn có thể quản lý các tệp, phần mềm và cài đặt của máy chủ từ xa mà không cần truy cập dòng lệnh.

Hướng dẫn này sẽ giúp bạn cài đặt VNC trên máy chủ riêng ảo Ubuntu 16.04 và thiết lập kết nối an toàn bằng đường hầm SSH. Máy chủ VNC sẽ sử dụng TightVNC, gói điều khiển từ xa nhanh và nhẹ, hỗ trợ hoạt động ngay cả khi internet chậm.

Yêu cầu

  • Máy chủ Ubuntu 18.04 được định cấu hình với .
  • Một máy tính cục bộ có máy khách VNC được cài đặt sẵn hỗ trợ kết nối VNC qua đường hầm SSH. Người dùng Windows có thể cài đặt TightVNC, RealVNC hoặc UltraVNC. Người dùng Mac OS X có thể sử dụng gói Chia sẻ màn hình tích hợp sẵn hoặc sử dụng các ứng dụng đa nền tảng (chẳng hạn như RealVNC). Người dùng Linux có thể chọn vinagre, krdc, RealVNC, TightVNC, v.v.

1: Cài đặt Môi trường máy tính để bàn và Máy chủ VNC

Theo mặc định, máy chủ Ubuntu 18.04 không có môi trường máy tính để bàn đồ họa và máy chủ VNC được cài đặt sẵn. Vì vậy, trước tiên bạn cần phải cài đặt các thành phần này. Hướng dẫn này sử dụng các gói Xfce và TightVNC có sẵn trong kho chính thức của Ubuntu.

Để cài đặt các gói được chỉ định trên máy chủ, hãy cập nhật chỉ mục và nhập lệnh:

cập nhật sudo apt
sudo apt cài đặt xfce4 xfce4-goodies

Bây giờ hãy cài đặt TightVNC:

sudo apt cài đặt chặt chẽvncserver

Để hoàn tất quá trình thiết lập ban đầu của máy chủ VNC sau khi cài đặt và chọn mật khẩu mạnh, hãy sử dụng lệnh vncserver.

Lệnh sẽ nhắc bạn chọn và xác nhận mật khẩu:

Bạn sẽ cần mật khẩu để truy cập vào máy tính để bàn của bạn.
Mật khẩu:
Xác minh:

Mật khẩu phải dài từ sáu đến tám ký tự. Mật khẩu dài hơn sẽ được tự động rút ngắn xuống còn 8 ký tự.

Sau khi xác nhận mật khẩu của mình, bạn sẽ có tùy chọn tạo mật khẩu chỉ xem. Người dùng truy cập VNC bằng mật khẩu duyệt web sẽ không thể điều khiển VNC qua chuột hoặc bàn phím. Mật khẩu này cho phép bạn chứng minh VNC cho người dùng khác nếu cần.

Quá trình sau đó sẽ hoàn tất thiết lập VNC ban đầu và tạo các tệp cấu hình.

Bạn có muốn nhập mật khẩu chỉ xem (y/n) không? N
xauth: tệp /home/8host/.Xauthority không tồn tại
Máy tính để bàn "X" mới là your_hostname:1
Tạo tập lệnh khởi động mặc định /home/8host/.vnc/xstartup

2: Thiết lập máy chủ VNC

Đầu tiên bạn cần xác định các lệnh mà VNC server sẽ thực thi khi khởi động. Các lệnh này phải có trong tệp xstartup trong thư mục .vnc, được lưu trữ trong thư mục chính của người dùng hiện tại. Tập lệnh khởi động được tạo bởi nhóm vncserver nhưng nó cần được sửa đổi để hoạt động với Xfce.

Khi VNC khởi động lần đầu, nó sử dụng cổng 5901. VNC gọi cổng này:1. VNC có thể chạy các phiên bản khác trên các cổng khác, sẽ được gọi là :2, :3, v.v.

Để thay đổi cài đặt máy chủ VNC, bạn cần dừng phiên bản bằng cổng 5901.

vncserver -kill:1

Lệnh sẽ trả về thông báo sau (PID sẽ khác):

Giết tiến trình Xtightvnc ID 17648

Tạo bản sao lưu của tệp xstartup:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Sau đó tạo một tệp xstartup mới:

nano ~/.vnc/xstartup

Dán các lệnh sau vào đó, lệnh này sẽ được thực thi tự động khi máy chủ VNC khởi động. Lưu và đóng tập tin.

~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresource
bắt đầuxfce4&

Với lệnh đầu tiên, xrdb $HOME/.Xresources, GUI máy chủ VNC sẽ đọc tệp .Xresources. Trong tệp .Xresources, người dùng có thể thay đổi một số cài đặt của màn hình đồ họa (tùy chỉnh màu của thiết bị đầu cuối, chủ đề con trỏ, phông chữ). Lệnh thứ hai chỉ cần khởi chạy Xfce, nơi lưu trữ tất cả phần mềm đồ họa cần thiết để quản lý máy chủ.

Bây giờ bạn cần làm cho tập tin có thể thực thi được:

sudo chmod +x ~/.vnc/xstartup

Khởi động lại VNC:

Trong quá trình khởi động, máy chủ sẽ trả về:

Máy tính để bàn "X" mới là your_hostname:1
Đang khởi động các ứng dụng được chỉ định trong /home/8host/.vnc/xstartup
Tệp nhật ký là /home/8host/.vnc/your_hostname:1.log

3: Kết nối an toàn với VNC

VNC không sử dụng giao thức bảo mật khi kết nối. Tạo đường hầm SSH để kết nối an toàn với máy chủ, sau đó định cấu hình máy khách VNC để hỗ trợ đường hầm thay vì kết nối trực tiếp.

Tạo kết nối SSH trên máy tính cục bộ của bạn, kết nối này sẽ chuyển đến kết nối localhost cho VNC. Bạn có thể thực hiện việc này trên Linux hoặc macOS thông qua thiết bị đầu cuối bằng lệnh sau:

Cờ -L chỉ định các ràng buộc cổng. Trong trường hợp này chúng tôi liên kết cổng 5901 kết nối từ xa tới cổng 5901 trên máy tính cục bộ. Cờ -C cho phép nén và -N cho ssh biết phải làm gì lệnh từ xa không cần. Tùy chọn -l chỉ định tên đăng nhập từ xa.

Đừng quên thay thế 8host và your_server_ip bằng dữ liệu của bạn.

Nếu bạn đang chạy qua máy khách SSH đồ họa như PuTTY, hãy sử dụng your_server_ip làm kết nối IP trong cài đặt đường hầm SSH của bạn và đặt localhost:5901 làm cổng mới.

Khi đường hầm được thiết lập và chạy, hãy sử dụng ứng dụng khách VNC của bạn để kết nối với localhost:5901. Điều này sẽ hỏi bạn mật khẩu bạn đã chọn trong phần 1.

Sau này bạn sẽ thấy màn hình tiêu chuẩn Xfce.

Bạn có thể truy cập các tệp trong thư mục chính của mình bằng trình quản lý tệp hoặc từ dòng lệnh.

Nhấn CTRL + C trong thiết bị đầu cuối để đóng đường hầm SSH và quay lại dòng lệnh. Điều này cũng sẽ kết thúc phiên VNC của bạn.

4: Tạo tệp dịch vụ VNC

Bây giờ bạn cần định cấu hình máy chủ VNC làm dịch vụ hệ thống.

Tạo một tệp đơn vị mới /etc/systemd/system/ [email được bảo vệ]:

sudo nano /etc/systemd/system/ [email được bảo vệ]

Biểu tượng @ ở cuối tên tệp sẽ cho phép bạn truyền một đối số có thể được sử dụng trong cấu hình dịch vụ. Sử dụng nó, bạn có thể chỉ định cổng VNC sẽ được sử dụng khi quản lý dịch vụ.

Thêm các dòng sau vào tập tin. Đảm bảo thay đổi Người dùng, Nhóm, WorkingDirectory và tên người dùng trong giá trị PIDFILE.

/etc/systemd/system/ [email được bảo vệ]
Mô tả=Khởi động máy chủ TightVNC khi khởi động
Sau=syslog.target network.target
Loại=rẽ nhánh
Người dùng=8máy chủ
Nhóm=8máy chủ
WorkingDirectory=/home/8host
PIDFile=/home/8host/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill:%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -deep 24 -geometry 1280x800:%i
ExecStop=/usr/bin/vncserver -kill:%i
WantedBy=multi-user.target

Lệnh ExecStartPre dừng VNC nếu dịch vụ đang chạy. Lệnh ExecStart khởi động VNC và đặt độ sâu màu thành màu 24 bit với độ phân giải 1280x800. Bạn cũng có thể thay đổi các cài đặt này tùy theo nhu cầu của mình.

Lưu và đóng tập tin.

Sau đó cho hệ thống biết về file đơn vị mới.

sudo systemctl daemon-tải lại

Bật nó lên:

kích hoạt sudo systemctl [email được bảo vệ]

Số 1 theo sau @ xác định số hiển thị nào sẽ được hiển thị trong dịch vụ, trong trường hợp này là giá trị mặc định.

Dừng phiên bản máy chủ VNC hiện tại nếu nó vẫn đang chạy.

vncserver -kill:1

Bây giờ hãy thử chạy nó như bất kỳ dịch vụ systemd nào khác:

sudo systemctl bắt đầu vncserver@1

Để đảm bảo máy chủ đang chạy, hãy kiểm tra trạng thái của nó:

trạng thái sudo systemctl vncserver@1

[email được bảo vệ]— Khởi động máy chủ TightVNC khi khởi động

Đã tải: đã tải (/etc/systemd/system/ [email được bảo vệ]; gián tiếp; cài đặt trước của nhà cung cấp: đã bật)
Hoạt động: hoạt động (đang chạy) kể từ Thứ Hai ngày 09/07/2018 18:13:53 UTC; 2 phút 14 giây trước
Quy trình: 22322 ExecStart=/usr/bin/vncserver -deep 24 -geometry 1280x800:1 (code=exited, status=0/SUCCESS)
Quá trình: 22316 ExecStartPre=/usr/bin/vncserver -kill:1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
PID chính: 22330 (Xtightvnc)
...

Dịch vụ VNC hiện đã được thêm vào để khởi động.

Bắt đầu lại đường hầm SSH:

ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip

Tạo kết nối mới từ máy khách VNC tới localhost:5901 để kiểm tra thiết lập.

Phần kết luận

Bây giờ máy chủ VNC đã được cài đặt trên máy chủ Ubuntu 18.04. Với nó, bạn có thể quản lý các tệp, chương trình và cài đặt của máy chủ từ xa (ví dụ: khởi chạy trình duyệt web từ xa).

Thẻ: ,