Cách khởi động máy chủ vnc để hiển thị thực tế (scraping) bằng TigerVNC

theanh

Administrator
Nhân viên
VNC là ứng dụng chia sẻ màn hình nền (Virtual Network Computing) để kết nối và điều khiển màn hình nền của máy tính (từ xa hoặc cục bộ) qua kết nối mạng.

Tuy nhiên, trên hệ thống Linux, nhiều ứng dụng máy chủ VNC chỉ cho phép kết nối với màn hình nền ảo chứ không phải màn hình thực tế. Hướng dẫn này cung cấp cho bạn giải pháp để kết nối qua máy chủ TigerVNC tới phiên hoạt động thực tế trên máy tính để bàn Linux của bạn.

Yêu cầu​

  • Môi trường máy tính để bàn Linux đầy đủ chức năng
  • quyền root (để cài đặt máy chủ TigerVNC)
  • kiến thức cơ bản về shell Linux
Để có được các gói mới nhất, bạn có thể muốn cập nhật.
Mã:
user@hostname:~$ sudo apt-get update
Hướng dẫn này đã được thử nghiệm trên Debian/GNU Linux 9.5 (stretch) và Ubuntu 18.04

Cài đặt TigerVNC​

Trước tiên, bạn phải cài đặt máy chủ TigerVNC.
Mã:
user@hostname:~$sudo apt-get install tigervnc-scraping-server
Lưu ý rằng trên hầu hết các hệ thống dựa trên debian, có một gói nhỏ có tên là tigervnc-scraping-server mà bạn cần cài đặt. Bạn không cần phải cài đặt máy chủ TigerVNC chính (tên gói: tigervnc-standalone-server) để có chức năng kết nối với phiên máy tính để bàn đang chạy, chỉ khi bạn muốn kết nối với máy tính để bàn ảo.

Máy chủ TigerVNC cung cấp một ứng dụng nhỏ hơn (x0vncserver) để cấp quyền truy cập vào phiên đang hoạt động.

Sau đó, tạo một thư mục .vnc trong trang chủ của bạn:
Mã:
user@hostname:~$ mkdir -p ~/.vnc
Tạo mật khẩu cho phiên vnc của bạn:
Mã:
user@hostname:~$ vncpasswd
Mật khẩu:
Xác minh:
Bạn có muốn nhập mật khẩu chỉ xem (y/n) không? n

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

Mô tả ngắn gọn về x0vncserver:
Mã:
x0tigervncserver là Máy chủ TigerVNC giúp mọi màn hình X có thể truy cập từ xa thông qua VNC, TigerVNC hoặc trình xem tương thích. Không giống như Xvnc(1), nó không tạo màn hình ảo. Thay vào đó, nó chỉ chia sẻ một máy chủ X hiện có (thường là máy chủ được kết nối với màn hình vật lý).
Bây giờ bạn đã cài đặt thành công máy chủ TigerVNC trên máy tính của mình, tạo mật khẩu bằng lệnh vncpasswd, chúng ta có thể bắt đầu khởi động máy chủ vnc của mình. Đảm bảo rằng bạn đang ở phiên hoạt động và viết (dưới dạng người dùng):
Mã:
user@hostname:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0

Wed Oct 10 22:17:16 2018
Hình học: Hình học máy tính để bàn được đặt thành 1920x1080+0+0
Main: Tiện ích mở rộng XTest hiện tại - phiên bản 2.2
Main: Đang lắng nghe trên cổng 5900
Tùy chọn -passwordfile ~/.vnc/passwd sẽ đọc tệp mật khẩu được tạo trước đó bằng lệnh vncpasswd. Tùy chọn thứ hai -display :0 có nghĩa là bạn muốn kết nối với phiên trên màn hình :0, thường là phiên đang hoạt động.

Bây giờ bạn có thể truy cập vào màn hình nền thực tế của mình bằng bất kỳ ứng dụng trình xem vnc nào trên cổng vnc mặc định 5900.

Bạn có thể dừng quá trình này bất cứ khi nào bạn muốn bằng cách nhấn Ctrl-c.

Nếu bạn muốn chạy nó ở chế độ nền, hãy nhập:
Mã:
user@hostname:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0 >/dev/null 2>&1 &
Bây giờ tất cả đầu ra chuẩn và lỗi được chuyển hướng đến /dev/null và với & ở cuối, nó sẽ chạy ở chế độ nền. Tuy nhiên, bạn sẽ không thể dừng máy chủ vnc bằng cách nhấn Ctrl-c nữa, thay vào đó, bạn phải tắt id tiến trình của nó (xem phần "Dừng máy chủ vnc" bên dưới).

Để biết thêm các tùy chọn và cú pháp, hãy kiểm tra hướng dẫn sử dụng x0vncserver.

Dừng máy chủ VNC​

Nếu máy chủ vnc của bạn chạy ở chế độ nền, bạn phải biết id tiến trình để dừng nó.
Mã:
user@hostname:~$ps -fu user | grep [x]0vncserver
user 1328 1 0 23:11 pts/2 00:00:00 /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900
Đầu ra sẽ như thế này, vì vậy hãy chú ý đến pid 1328. Để dừng máy chủ vnc, chúng ta phải "giết" tiến trình này.
Mã:
user@hostname:~$kill -9 1328
Tùy chọn -9 cho lệnh kill sẽ gửi tín hiệu KILL đến id tiến trình để đảm bảo rằng nó dừng lại.

Kịch bản để chạy máy chủ VNC​

Có một kịch bản để khởi động và dừng ứng dụng x0vncserver trên github. Để thử nghiệm, bạn cũng tải xuống gói psmisc:
Mã:
user@hostname:~$ sudo apt-get install git psmisc
Sau đó, tải xuống tập lệnh startvnc bằng lệnh git:
Mã:
user@hostname:~$git clone [URL=https://github.com/sebestyenistvan/runvncserver?utm_source=diendancongnghe.com]https://github.com/sebestyenistvan/runvncserver[/URL]
Đang sao chép vào 'runvncserver'...
remote: Đang liệt kê các đối tượng: 77, hoàn tất.
remote: Đang đếm các đối tượng: 100% (77/77), hoàn tất.
remote: Đang nén các đối tượng: 100% (57/57), hoàn tất.
remote: Tổng cộng 77 (delta 25), đã sử dụng lại 60 (delta 18), pack-reused 0
Đang giải nén objects: 100% (77/77), xong.
Đầu ra của bạn sẽ trông giống như trên.

Sao chép startvncscript từ thư mục runvncserver vào trang chủ của bạn:
Mã:
user@hostname:~$cp ~/runvncserver/startvnc ~
Đổi quyền thành thực thi để thực thi tập lệnh:
Mã:
user@hostname:~$ chmod +x ~/startvnc
Sau đó, chạy tập lệnh.
Mã:
user@hostname:~$ ./startvnc

Cách sử dụng: ./startvnc start|stop|restart|status
Tập lệnh này chỉ hoạt động nếu bạn có thư mục .vnc trong trang chủ của mình và tạo một vncpasswd (kiểm tra tệp ~/.vnc/passwd). Chúng tôi đã tạo thư mục .vnc và mật khẩu trước đó.

Để khởi động máy chủ vnc trên màn hình thực tế, chỉ cần nhập:
Mã:
user@hostname:~$ ./startvnc start
Đang khởi động máy chủ VNC trên màn hình :0 [ok]
Bạn có thể kiểm tra xem máy chủ vnc của mình có đang chạy hay không bằng tùy chọn:
Mã:
user@hostname:~$ ./startvnc status
Trạng thái của máy chủ VNC: [đang chạy] (pid: 1328)
Một số ví dụ:



Hoặc bằng cách kiểm tra cổng TCP 5900 trên hệ thống của bạn bằng lệnh fuser (từ gói psmisc):
Mã:
user@hostname:~$fuser -vn tcp 5900
 LỆNH TRUY CẬP PID CỦA NGƯỜI DÙNG
5900/tcp: người dùng 1328 F.... x0vncserver
Bạn sẽ nhận được kết quả như thế này nếu máy chủ vnc đang chạy trên cổng 5900.



Bạn có thể tìm thêm hướng dẫn về tập lệnh này trong tệp readme:
Mã:
user@hostname:~$less runvncserver/README.md
Tập lệnh sẽ tạo một tệp nhật ký, nơi lưu trữ kết quả đầu ra. Nếu có sự cố hoặc bạn không thể khởi động hoặc dừng x0vncserver, hãy xem tệp nhật ký trong ~/.vnc/logfile

Tự động khởi động máy chủ VNC​

Nếu bạn muốn tự động truy cập phiên máy tính để bàn đang hoạt động, bạn cần chỉnh sửa tệp .xsessionrc trong thư mục gốc của mình.
Mã:
user@hostname:~$echo "/home/user/startvncstart >/dev/null 2>&1" >> ~/.xsessionrc
Thay thế user bằng tên người dùng của bạn và nó sẽ tự động chạy khi bắt đầu phiên X. Tập lệnh ghi lại hoạt động của nó trong ~/.vnc/logfile, nếu có gì sai sót, bạn có thể kiểm tra tệp nhật ký tại đó.


Ghi chú​

Hướng dẫn này không đề cập đến việc thiết lập máy tính để bàn ảo VNC.

Bảo mật​

Lưu ý rằng x0vncserver không sử dụng mã hóa theo mặc định, vì vậy hãy cẩn thận khi sử dụng qua internet. Nếu bạn muốn sử dụng từ xa, bạn có thể tạo đường hầm qua ssh. Tuy nhiên, có những hướng dẫn khác mà bạn có thể tìm thấy giải pháp mã hóa phiên VNC của mình.

Hoặc bạn có thể xem gói ssvnc.

Trình xem VNC​

Nếu bạn đang tìm trình xem VNC, có rất nhiều trình xem, ví dụ:
  • gvncviewer
  • tigervnc-viewer
  • xtightvncviewer
  • xvnc4viewer

Hình học​

Máy chủ x0vnc trên màn hình thực tế sẽ sử dụng cùng hình học với màn hình nền đang chạy trên màn hình :0. Vì vậy, nếu bạn đặt tùy chọn -geometry thành kích thước nhỏ hơn, nó sẽ không được thu nhỏ, bạn sẽ chỉ thấy một phần nhỏ kích thước màn hình nền.

Phản hồi​

Vui lòng viết phản hồi. Nếu bạn đã thử nghiệm hướng dẫn này hoặc thậm chí là tập lệnh trên một hệ thống khác.
 
Back
Bên trên