Máy khách mỏng: cài đặt và cấu hình. Dòng tổng quát Thin: chuyển văn phòng cho Thin Client chạy Thinstation

Làm thế nào nó hoạt động

Sau khi máy khách tối thiểu khởi động, quyền điều khiển được chuyển tới bộ tải khởi động PXE, nằm trong ROM thẻ kết nối.
Bộ tải khởi động PXE thông qua giao thức BOOTP nhận được:

  • thiết lạp mạng lưới
  • Địa chỉ IP máy chủ TFTP
  • đường dẫn đến hình ảnh hệ điều hành máy khách mỏng để tải xuống

Tiếp theo, image hệ điều hành Thinstation Linux được tải và quyền điều khiển được chuyển tới nó. Khi Thinstation Linux khởi động, nó một lần nữa nhận các cài đặt mạng và địa chỉ IP của máy chủ TFTP và cố gắng tải tệp cấu hình.
Nếu có một tệp như vậy thì nó sẽ được tải và áp dụng, nếu không, cài đặt mặc định sẽ được áp dụng.

Máy khách tối thiểu đã sẵn sàng để sử dụng

Thiết lập máy khách mỏng (phần cứng)

Thiết bị hoạt động như một Thin Client phải hỗ trợ khởi động qua mạng. Thông thường, tính năng này được bật trong cài đặt BIOS.

Thiết lập môi trường

Thiết lập môi trường bao gồm hai thành phần: máy chủ DHCP và máy chủ TFTP. Theo quy định, hầu hết các mạng cục bộ đều đã có máy chủ DHCP và sử dụng nó để phát hành thiết lạp mạng lưới các máy trạm. Bạn chỉ cần cấu hình nó sao cho ngoài cài đặt mạng, nó còn cung cấp địa chỉ IP của máy chủ TFTP và đường dẫn đến image hệ điều hành Thinstation Linux. Máy chủ TFTP phải cung cấp quyền truy cập vào thư mục mà hình ảnh hệ điều hành Thinstation Linux và các tệp cấu hình máy khách mỏng, nếu cần, phải được sao chép.

Thiết lập máy khách mỏng (phần mềm)

Trong trường hợp đơn giản nhất, để buộc các máy khách mỏng kết nối với máy chủ đầu cuối thông qua RDP, bạn cần tạo thư mục ts5.4 trong thư mục gốc của máy chủ TFTP, chứa tệp Thinstation.conf.network, với nội dung:

SESSION_0_RDESKTOP_SERVER=IP_ADDRESS CỦA TERMINAL_SERVER
SESSION_0_TYPE=rmáy tính để bàn

Tệp cấu hình này được tải bởi tất cả các máy khách tối thiểu trên mạng. Các cài đặt cụ thể hơn có thể được chỉ định trong các tệp có tên ở định dạng Thinstation.conf-MAC, ví dụ Thinstation.conf-0040CAB514DD hoặc đối với các trạm có địa chỉ IP dành riêng Thinstation.conf-IP, ví dụ Thinstation.conf-192.168.0.33

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

Nội dung của tệp /etc/default/dhcp3-server:

# Danh sách các giao diện mạng được phân tách bằng khoảng trắng mà máy chủ DHCP sẽ chạy trên đó.
GIAO DIỆN="eth0"
Nội dung của tệp /etc/dhcp3/dhcpd.conf:
thời gian thuê mặc định 14400;
thời gian thuê tối đa 86400;
#Mặt nạ mạng con
tùy chọn mặt nạ mạng con 255.255.255.0;
# Gateway mặc định
bộ định tuyến tùy chọn 192.168.0.1;
# Máy chủ tên miền DNSOption 192.168.0.1; có thẩm quyền;
# Mô tả cài đặt mạng con
mạng con 192.168.0.0 mặt nạ mạng 255.255.255.0 (
# Dải địa chỉ mà máy chủ DHCP sẽ cấp
phạm vi 192.168.0.50 192.168.0.254;
# Đường dẫn tới image Thinstation Linux
tên tệp "/pxelinux.0";

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

Nội dung của tệp /etc/default/tftpd-hpa:

# Khởi động tftpd khi khởi động hệ thống có/không
RUN_DAEMON="có"
# Tham số được truyền tới tftpd. Tùy chọn -s trỏ đến thư mục gốc của tftpd.
# Để biết thêm thông tin đầy đủđối với các tham số, sử dụng lệnh "man tftpd"
TÙY CHỌN="-l -s /var/lib/tftpboot"

Cài đặt máy khách mỏng

Cần phải giải nén kho lưu trữ có image máy khách mỏng vào /var/lib/tftpboot để bộ tải khởi động pxe có sẵn tại đường dẫn "/var/lib/tftpboot/pxelinux.0". Tiếp theo chúng ta sẽ tạo tập tin được chia sẻ cài đặt cho máy khách mỏng:
Nội dung của tệp /var/lib/tftpboot/ts5.4/thinstation.conf.network:

# Địa chỉ IP máy chủ đầu cuối
SESSION_0_RDESKTOP_SERVER=192.168.0.10
# Giao thức truy cập máy chủ đầu cuối
SESSION_0_TYPE=rmáy tính để bàn

Cài đặt độ phân giải màn hình trong Thinstation Linux

Ở dạng đơn giản nhất, độ phân giải được đặt bởi tham số SCREEN_RESOLUTION:

SCREEN_RESOLUTION="1280x1024"

Bạn có thể giao phó công việc thiết lập và cài đặt máy chủ đầu cuối cũng như máy khách mỏng cho các chuyên gia của công ty chúng tôi. gọi trên điện thoại +7 812 3366024 ,

Để nhận được giảm giá hãy viết thư cho chúng tôi

EVGENY BUSHKOV

Hướng dẫn thiết lập chi tiết
máy khách mỏng dựa trên bản phân phối Thinstation và giao thức NX

Công nghệ NX do Nomachine phát triển, cung cấp các tùy chọn kết nối mới và có thể phục hồi các máy tính cũ dưới dạng máy khách mỏng.

Trước khi đi thẳng vào phần mô tả về NX, tôi sẽ liệt kê một số xu hướng đang trở nên rõ ràng đối với nhiều người ngày nay. các công ty lớnđất nước của chúng tôi:

  1. Công nghệ máy tính trở nên rẻ hơn và dễ tiếp cận hơn trước. Đồng thời, năng suất của nó tăng gấp đôi cứ sau 1,5-2 năm theo định luật Moore. Điều này dẫn đến việc tích tụ những thiết bị chưa hết tuổi thọ nhưng đã lỗi thời.
  2. Được phát triển tại các doanh nghiệp bởi các lập trình viên từ các bộ phận ACS trong những năm perestroika ứng dụng máy khách-máy chủ Họ vẫn làm việc trên công nghệ cũ nhưng không còn đáp ứng được yêu cầu của thời đại.
  3. Hiện đại phần mềmhệ điều hành không thể hoạt động trên máy tính có bộ xử lý thế hệ trước (i386, i486, v.v.).
  4. Không có gì ngạc nhiên khi trong một thời gian dài ở nhiều tổ chức ở nước ta, nhiều chương trình, hệ điều hành do nhân viên tự ý cài đặt đã bị sử dụng trái phép. Lúc đầu, điều này được coi là điều đương nhiên, nhưng sau đó nó được chứng minh bằng tình hình tài chính. Hiện nay nước ta đã gia nhập WTO, Chính phủ buộc phải nhanh chóng khắc phục tình trạng này, do đó, áp lực từ các cơ quan trong nước đối với doanh nghiệp ngày càng tăng trong việc từ bỏ các phần mềm, hệ điều hành bị sử dụng trái phép.

Có sự mâu thuẫn rõ ràng giữa điểm thứ hai và thứ ba: cần phải tìm cách sử dụng hiệu quả công nghệ cũ để thực hiện các nhiệm vụ hiện đại, hoặc phải từ bỏ công nghệ này. Nếu có đủ tiền thì sự lựa chọn là rõ ràng. Nhưng phải làm gì nếu không có tiền hoặc không có cách nào để loại bỏ những thiết bị đó và thật tiếc nếu vứt nó đi? Và làm thế nào để giải quyết vấn đề không kém phần gay gắt về “độ tinh khiết được cấp phép” của các chương trình được sử dụng, được đề cập trong đoạn thứ tư?

Các công nghệ đầu cuối ra đời, cho phép bạn sử dụng các máy tính cũ, đồng thời loại bỏ một phần các vấn đề về “độ tinh khiết của giấy phép” nếu bạn sử dụng các giải pháp dựa trên các sản phẩm Nguồn mở.

Tạp chí đã xuất bản một số bài viết về cách làm việc với bản phân phối Thinstation [,]. Trong bài viết này, tôi sẽ nói về chi tiết cụ thể về trải nghiệm thiết lập và vận hành trong doanh nghiệp của tôi với các máy khách mỏng dựa trên bản phân phối Thinstation và công nghệ NX do Nomachine phát triển.

Cho đến gần đây, trong thế giới truyền thông đầu cuối, có rất ít dự án thành công được biết đến. giao thức mạng cấp độ cao, có khả năng nén và mã hóa hiệu quả lưu lượng giữa máy khách tối thiểu và máy chủ. Nổi tiếng và phổ biến nhất trong số đó là RDP của Microsoft và ICA của Citrix. Cả hai giao thức đều được sử dụng bởi các máy chủ dựa trên hệ điều hành MS Windows. Tôi quan tâm đến khả năng sử dụng máy khách tối thiểu với máy chủ trên Dựa trên Linux. Là nền tảng cho máy khách mỏng, một bộ phân phối nhỏ, một loại nhà thiết kế Linux, Thinstation gần như ngay lập tức được chọn là công cụ phát triển ổn định và phổ biến nhất ở nước ta và nước ngoài. Nhưng với việc lựa chọn giao thức chịu trách nhiệm liên lạc với máy chủ, tôi đã phải mày mò và thử nghiệm. Tôi sẽ liệt kê các tiêu chí chính mà giao thức đã được chọn. Thứ nhất, chúng tôi muốn sử dụng càng nhiều càng tốt phạm vi rộng Chúng tôi có rất nhiều máy tính cũ có bộ xử lý bắt đầu từ i486, với dung lượng bộ nhớ tối thiểu. Thứ hai, các sản phẩm thương mại bị từ chối: chúng tôi không muốn phát sinh thêm chi phí. Thứ ba, cần thiết hỗ trợ tốt Tiếng Nga và tiếng Cyrillic, cũng như sự hiện diện của một cách quen thuộc để người dùng chuyển đổi giữa các bố cục - tổ hợp phím . Thứ tư, trong mạng cục bộ, chúng ta không cần hỗ trợ mã hóa nhưng việc nén và giảm thiểu lưu lượng mạng là rất quan trọng.

Tìm giải pháp

Trước hết, tôi chú ý đến VNC là sản phẩm phổ biến nhất và có sẵn trong bất kỳ bản phân phối Linux nào, đồng thời là một sản phẩm dễ cài đặt. Khi bạn cần kết nối với máy tính để bàn từ xa của máy chủ Linux từ máy tính để bàn của mình Trạm Windows hoặc cùng một Linux, thì điều đầu tiên bạn nghĩ đến là VNC. Tải xuống phiên bản mới nhất của bản phân phối Thinstation, sau đó giải nén kết quả tập tin lưu trữ trong thư mục chính. Giả sử rằng đường dẫn đến bản phân phối trông như thế này: ~/thinstation. Tệp chịu trách nhiệm về các tham số bản dựng nằm ở đây: ~/thinstation/build.conf. Nó có ý kiến ​​​​chi tiết. Tôi sẽ không nói chi tiết về cách thiết lập nó, cũng như cách buộc image Thinstation khởi động bằng card mạng có chip khởi động; điều này đã được viết trong các bài viết này. Tôi sẽ liệt kê ngắn gọn các bước để định cấu hình máy khách: chỉnh sửa ~/thinstation/build.conf và tạo một hình ảnh bằng cách chạy tập lệnh ~/thinstation/build. Chúng tôi sao chép tệp hình ảnh đã hoàn thành ~/thinstation/boot-images/etherboot/thinstation.nbi vào máy chủ TFTFP. Thêm mục nhập về địa chỉ MAC vào tệp cấu hình máy chủ DHCP dhcp.conf thẻ kết nối khách hàng mỏng. Trong thư mục máy chủ TFTP, tạo một tệp có cài đặt cho địa chỉ MAC này và/hoặc chỉnh sửa tệp Thinstation.conf.network. Cài đặt của tôi hệ thống làm việc có thể được nhìn thấy trong danh sách của phần “Cấu hình và tạo hình ảnh Thinstation” và trong Hình. 1.

Để thêm gói máy khách VNC vào hình ảnh, hãy bỏ ghi chú dòng “#package vncviewer” trong tập tin cấu hình~/thinstation/build.conf. Nếu thư mục máy chủ tftp nằm trong /tftpboot (như đối với tôi), thì hãy chỉnh sửa tệp /tftpboot/thinstation.conf.network để các dòng xuất hiện trong đó:

SESSION_0_TYPE=người xem vncviewer
SESSION_0_TITLE="VNC" !}
SESSION_0_VNCVIEWER_SERVER=10.10.10.10:5901

Thay thế địa chỉ IP 10.10.10.10 bằng địa chỉ máy chủ VNC của bạn.

Bây giờ chúng ta hãy kiểm tra image đã được ghép với tham số mới đang hoạt động: bật máy khách mỏng, đợi image Thinstation tải xuống và khởi chạy, kết nối với máy chủ VNC. Xin lưu ý rằng việc chuyển đổi bố cục được thực hiện bằng phím “Alt bên phải”. Trên thực tế, nguyên nhân không phải ở đây là máy khách VNC mà là tệp Thinstation từ gói hỗ trợ Cyrillic keymaps-ru. Để không mất nhiều thời gian tìm kiếm giải pháp cho vấn đề, tôi đã tạo một tệp xkb trên hệ thống SUSE-10.0 được cấu hình như sau:

xkbcomp:0 ru.xkb
xkbcomp -xkm ru.xkb ru.xkm

Tiện ích xkbcomp chuyển đổi mô tả bố cục XKB thành một trong các định dạng. Lệnh đầu tiên tạo kết xuất bố cục hiện tại từ nguồn, đó là màn hình X “:0”. Lệnh thứ hai biên dịch tệp kết quả thành dạng nhị phân mà hệ thống có thể đọc được. Chúng tôi thay thế tập tin gốc tới của bạn:

cp -f ru.xkm ~/thinstation/packages/keymaps-ru/x-common/lib/kmaps/xkb

Sau khi lắp ráp hình ảnh, chúng ta có được sự chuyển đổi bố cục thông thường theo . Nhưng máy khách VNC chậm đến mức không thể chấp nhận được. Trên các máy tính có bộ xử lý thấp hơn P-200, một loại "trình chiếu" bắt đầu, khi bất kỳ hành động nào trên máy tính để bàn từ xa đều đi kèm với bản vẽ nhàn nhã về những thay đổi này trên màn hình điều khiển máy khách mỏng. Có nhiều giải pháp VNC sử dụng các phương pháp mã hóa dữ liệu tương tự trong quá trình truyền, tất cả đều sử dụng giao thức Remote FrameBuffer (RFB). Chúng khác nhau về số lượng chức năng, tham số mã hóa dữ liệu và số lượng nền tảng được hỗ trợ. Ví dụ: RealVNC hỗ trợ máy chủ và máy khách cho Windows, UNIX, Microsoft PocketPC và Mac OS X, TightVNC bao gồm máy chủ và máy khách cho Windows và UNIX, VNC cho DOS - máy khách cho DOS, UltraVNC - máy chủ và máy khách cho Windows, OSXvnc - máy chủ và client cho Mac OS X. Tôi đã thử nghiệm RealVNC và TightVNC: về mặt chủ quan, sản phẩm thứ hai (cả máy chủ và máy khách) nhanh hơn một chút, nhưng cả hai đều tạo ra hiệu ứng “trình chiếu” trên các máy tính yếu hơn. Chúng ta sẽ phải thử một cái gì đó khác làm giao thức liên lạc giữa máy khách và máy chủ. Bây giờ hãy để VNC yên; chúng ta sẽ phải quay lại vấn đề này sau. Đây là nơi tôi chuyển sang NX.

Hỗ trợ cho máy khách Nomachine NX lần đầu tiên xuất hiện trong phiên bản Thinstation 2.1 vào năm 2005 và phiên bản mới nhất hiện nay là 2.2, sẽ được ngụ ý bên dưới. Để xây dựng hình ảnh bằng gói NX, trước đây cần phải truy cập trực tiếp vào Internet; trong các phiên bản mới nhất của Thinstation, có thể chỉ định đường dẫn đến tệp bằng tiền tố “file://”. Máy khách được sử dụng và hỗ trợ bởi bản phân phối Nomachine NX vẫn có phiên bản 1.5.x, mặc dù đã khá lâu kể từ khi được giới thiệu. phiên bản mới NX 2.0. Trong file cấu hình build.conf bỏ comment dòng “package nx”, cũng ở cuối file chúng ta sẽ tìm thấy dòng “param nxurl”: cho biết đường dẫn đến file tải sẵn hoặc để nguyên ( bạn cần truy cập Internet). Chúng tôi sao chép hình ảnh được tạo ra vào thư mục của máy chủ tftp, sao chép tệp Thinstation.conf.sample từ thư mục gốc của bản phân phối ở đó, đổi tên thành Thinstation.conf.network và chỉnh sửa nó: tìm #SESSION_0_TYPE=NX và chỉnh sửa các dòng liên quan đến phiên này (ở đây là số 0), nhập các thông số cần thiết.

Chúng tôi bật máy khách mỏng và tải hình ảnh đã tạo, kiểm tra hiệu suất. Tiến bộ là rõ ràng: “trình chiếu” dừng trên PC có bộ xử lý P-100, P-120 trở lên. Do đó, đây không phải là điều chúng tôi muốn đạt được, vì vậy những PC có bộ xử lý i486 sẽ không thể được sử dụng ở đây. Chúng tôi gọi những PC như vậy là “siêu mỏng” và cấu hình chúng để hoạt động với các chương trình DOS bằng cách sử dụng kết hợp FreeDOS và sshdos ở phía máy khách và Dosemu ở phía máy chủ Linux. Tôi sẽ không nói về họ trong bài viết này. Tuy nhiên, điều này kết quả tốt, hãy xem các yêu cầu phần cứng từ các nhà phát triển Thinstation và máy khách NX: trước đây đề xuất bộ xử lý i486 và bộ nhớ 16 MB, sau này khuyến nghị bộ xử lý có tần số 400 MHz và 128 MB bộ nhớ. Chúng ta hãy xác định bằng thực nghiệm bộ xử lý và dung lượng P-120 là cấu hình yêu cầu tối thiểu để một máy khách tối thiểu hoạt động với gói NX. bộ nhớ truy cập tạm thời 32 MB. Tôi đã thử nghiệm một số ứng dụng khách khác, đặc biệt là XRDP, VNC cho DOS, nhưng vì lý do này hay lý do khác sự thay thế thực sự Tôi không tìm thấy NX. Bây giờ là lúc để xem xét kỹ hơn về công nghệ NX.

Đánh giá và Mô tả ngắn Nomachine NX

Kiến trúc NX là một tập hợp các công nghệ Nguồn mở và các công cụ thương mại được thiết kế để làm cho việc tính toán mạng trở nên dễ dàng và phân tán. Nó bao gồm phần mềm máy chủ cho phép bất kỳ máy tính UNIX nào trở thành máy chủ đầu cuối và máy khách cho nhiều nền tảng và hệ điều hành. Nomachine đã chọn hệ thống X-Window nổi tiếng và được sử dụng rộng rãi làm nền tảng cho kiến ​​trúc NX, dựa trên GUI của Linux và các hệ điều hành UNIX khác.

Có sẵn nhất giải pháp mạng không được thiết kế làm phương tiện chính để người dùng truy cập máy tính để bàn. Các giao thức như RDP và VNC đơn giản hơn nhiều so với X (và do đó rất phù hợp với các máy khách mỏng), nhưng tính đơn giản của chúng không bù đắp được sự thiếu hiệu quả và chức năng. Ví dụ: các giao thức này sử dụng lượng lớn dữ liệu hình ảnh để hiển thị màn hình từ xa. Mặc dù RDP là giao thức hiệu quả hơn RFB (giao thức được VNC sử dụng), nhưng ban đầu nó không được thiết kế để các thiết bị mạng sử dụng hàng ngày mà chỉ là một phần mở rộng cho HĐH. Cửa sổ X là hệ thống con đồ họa(không phải phần mở rộng của hệ điều hành) và các ứng dụng X tương tác với nó bằng giao thức X, do đó hệ điều hành không có lớp đặc biệt chịu trách nhiệm dịch các bản cập nhật màn hình sang giao thức mạng.

Nhược điểm chính của mạng X-terminal là dư thừa và chậm trễ trong việc truyền dữ liệu đồ họa giao thức X. Kể từ khi X-Window ra đời, máy tính để bàn của người dùng đã có đủ loại yếu tố đồ họa và các hiệu ứng làm tăng nhu cầu về mạng dữ liệu.

Trong bộ lễ phục. 1 dưới số 1 được hiển thị công việc truyền thống thông qua giao thức X: không có nén, các yêu cầu về băng thông mạng và độ trễ là rất quan trọng. Hãy để tôi nhắc bạn rằng trong hệ tư tưởng X-Window, máy chủ X chạy trên thiết bị đầu cuối và trên máy chủ đầu cuối có một máy khách X gửi yêu cầu đến máy chủ X của thiết bị đầu cuối.

Trong trường hợp đơn giản nhất, bạn có thể chạy các ứng dụng có đầu ra đồ họa bằng tùy chọn -X của lệnh ssh, ví dụ: "ssh -X me@server firefox". Bạn có thể thêm tham số -C để nén (thư viện ZLIB được sử dụng). Bạn cũng có thể tối ưu hóa tốc độ tương tác nút bằng cách tăng thông lượng mạng. Nhưng có một giới hạn trên đó việc tăng băng thông sẽ không còn ảnh hưởng đến tốc độ tương tác này nữa. Lý do cho điều này là sự trao đổi yêu cầu/phản hồi mạnh mẽ của các ứng dụng X hiện đại.

NX sử dụng ba phương pháp chính để tăng tốc ứng dụng: nén, lưu vào bộ đệm và ngăn chặn lưu lượng giao thức X quá mức.

Tất cả ba phương pháp kết hợp để đạt được sự cải thiện 70 lần về trải nghiệm GUI X từ xa trong khi sử dụng mức nén cao nhất trên các liên kết tốc độ thấp. thông lượng và độ trễ cao (trong cài đặt máy khách NX, “modem” tương ứng với mức nén tối đa và “lan” tương ứng với không nén). Trong bộ lễ phục. 1 dưới số 2 thể hiện mối quan hệ của các thành phần NX: nén/giải nén và lưu vào bộ nhớ đệm được thực hiện trên các mô-đun NX Proxy, lưu lượng truyền giữa chúng thông qua giao thức NX, yêu cầu về chất lượng đường truyền là tối thiểu, có tuyên bố rằng chúng có thể hoạt động ở tốc độ 9600 bps.

Tương tự như nxagent phát lưu lượng X, có một tác nhân khác (“nxviewer”) chuyển lưu lượng RFB/VNC sang giao thức NX. Điều này cải thiện hiệu quả kết nối lên tới 10 lần so với trình xem vncviewer thông thường liên kết màn hình X cục bộ với máy chủ VNC từ xa. Chúng tôi sẽ đảm bảo điều này.

Trong bộ lễ phục. Hình 1 dưới số 3 thể hiện khả năng hoạt động đồng thời của nhiều tác nhân NX, RDP, VNC khác nhau. Đồng thời, các đại lý NX dịch một cách hiệu quả các giao thức nước ngoài sang giao thức của riêng họ và sau đó truyền lưu lượng truy cập thông qua NX Proxy.

  • Proxy NX– thành phần này chịu trách nhiệm chính xác về việc nén/giải nén: ở chế độ máy khách, nó mã hóa các yêu cầu từ máy khách X và giải mã phản hồi từ máy chủ X, ở chế độ máy chủ – ngược lại.
  • Đại lý NX– thuật ngữ “tác nhân” được sử dụng để mô tả thành phần mà hình ảnh được tạo được truyền tới trước khi được truyền tới mạng thông qua proxy.
  • Trình xem NX– một máy khách VNC thông thường của Nomachine đã được sửa đổi để chuyển lưu lượng VNC/RFB sang giao thức NX.
  • Máy tính để bàn NX– Máy khách RDP chuyển lưu lượng RDP sang giao thức NX.

Nomachine đã mở mã nguồn Hầu hết các phát triển và thư viện của nó đều có thể được tải xuống bởi bất kỳ ai từ . Các bản dựng từ Nomachine được cung cấp miễn phí cho tất cả khách hàng, ngoài ra còn có Các tùy chọn khác nhau Các bản dựng máy chủ NX được cung cấp có tính phí: đăng ký hàng năm cho Máy chủ NX Enterprise với số lượng không giới hạn người dùng và số lượng bộ xử lý 1-2 có giá 1494 USD, cao nhất Giải pháp hoàn chỉnh với tính năng cân bằng tải và quản lý nút dựa trên NX Advanced Server sẽ có giá 3.494 USD. Ngoài ra còn có một biến thể NX Phiên bản miễn phí, có thể tải xuống miễn phí nhưng có giới hạn về số lượng kết nối đồng thời và người dùng bằng hai, vì vậy nếu bạn muốn quản trị máy chủ Linux tại nhà bằng modem analog thông thường thì không thể tìm thấy giải pháp này tốt hơn, an toàn hơn và dễ dàng hơn. Tôi cũng sẽ lưu ý sự hiện diện của các phiên bản client của NX Client Desktop Edition dành cho PlayStation 2 (với sử dụng Linux Kit), cũng như NX Client Embedded Edition dành cho Sharp Zaurus 5xxx và HP/Compaq iPAQ. Họ cũng có thể được tải xuống miễn phí. Vì vậy, nếu bạn đang đi công tác và chỉ có một chiếc PDA bên mình, không có gì ngăn cản bạn kết nối và làm việc từ xa trên máy chủ Linux của mình.

Xây dựng và chạy NX

Đổi lại, dựa trên nguồn mở, cộng đồng đã phát triển một phiên bản của phần máy chủ NX có tên FreeNX, cũng như KNX, một ứng dụng khách để kết nối với máy chủ từ X. FreeNX là một tập hợp các tập lệnh shell, cùng với thư viện mở từ NX chúng tạo thành phần máy chủ (phụ trợ).

Khi bắt đầu làm việc với NX, tôi sử dụng PC có SUSE 10.0 làm máy chủ. FreeNX đã được lắp ráp như một phần của bản phân phối, nhưng thứ nhất, nó đã hơn một năm tuổi và thứ hai, gặp phải những khó khăn đầu tiên khi làm việc, tôi quyết định rằng đã đến lúc lắp ráp phần máy chủ từ mã nguồn riêng tôi. Tôi sẽ nói về việc lắp ráp từ mã nguồn của phiên bản 1.5 là phiên bản được thử nghiệm nhiều thời gian nhất và sau đó tôi sẽ làm rõ những tính năng nào có để lắp ráp phiên bản 2.0 (2.1).

Hiện nay mã nguồn của phiên bản NX 2.0 đã được đăng tải trên website Nomachine, phiên bản này được hãng khuyên dùng và mã nguồn của phiên bản 1.5 cũng có tại đó. liên kết đặc biệt. Tải xuống phiên bản mới nhất các tarball sau từ trang: nx-X11, nxagent, nxcomp, nxcompext, nxdesktop (nếu bạn cần hỗ trợ RDP), nxproxy, nxscripts, nxviewer (nếu bạn cần hỗ trợ VNC). nx-X11 là phiên bản 4.3 của Xfree86, đã sửa đổi thư viện Nomachine X. Một số nguồn sẽ được giải nén trực tiếp vào cây nx-X11 nên chúng ta sẽ mở rộng nó trước, thứ tự giải nén các tarball còn lại không quan trọng, cái chính là chúng đều được giải nén trong một thư mục. Ở đó, chúng tôi tải xuống và giải nén các tập lệnh FreeNX từ địa chỉ . Bạn cũng sẽ cần hai bản vá, tải chúng xuống từ đây [,]. Thư mục lắp ráp của chúng tôi sẽ trông như thế này:

  • freenx-0.4.4
  • nx-X11
  • nxcomp
  • nxcompext
  • nxdesktop
  • nxproxy
  • nxscript
  • nxviewer
  • freenx-lfs_hint.diff
  • NX-lfs_hint.diff

Để xây dựng, bạn sẽ cần các gói sau (chúng có thể được cài đặt từ bản phân phối Linux của bạn): libjpeg-devel, libpng-devel, openssl-devel, netcat, Expect. Một mô tả về lắp ráp cũng có thể được tìm thấy ở đây.

# Áp dụng bản vá NX
vá -p0< NX-lfs_hint.diff

# Lắp ráp X - phần dài nhất, có thể mất tới một giờ
đẩy nx-X11
tạo nên thế giới
popd

#nxproxy
đẩy nxproxy
./configure --prefix=/srv/NX
làm
popd

# Xây dựng tác nhân RFB
pushd nxviewer
xmkmf -a
cp -a /usr/X11R6/lib/libXp.so* ../nx-X11/exports/lib/
tạo 2> /dev/null
popd

# Xây dựng tác nhân RDP
đẩy nxdesktop
./configure --prefix=/srv/NX --sharedir=/srv/NX/share
làm
popd

# Toàn bộ phần server sẽ nằm trong thư mục /srv/NX, tạo một số thư mục con
mkdir -p /srv/NX/bin
mkdir -p /srv/NX/lib
mkdir -p /srv/NX/man/man1
mkdir -p /srv/NX/share/doc

# Cài đặt các thư viện và tác nhân đã thu thập
cp -a nx-X11/lib/X11/libX11.so.* nx-X11/lib/Xext/libXext.so.* nx-X11/lib/Xrender/libXrender.so.* /srv/NX/lib
cài đặt -m 755 nx-X11/programs/Xserver/nxagent /srv/NX/lib

# Tạo tập lệnh nxagent sẽ quản lý tất cả các chương trình
mèo > nxagent<< "EOF"

#!/bin/sh

NXCOMMAND=$(tên cơ sở $0)

xuất LD_LIBRARY_PATH=/srv/NX/lib:$LD_LIBRARY_PATH
thực thi /srv/NX/lib/$NXCOMMAND $(1+"$@")
EOF

# Và cài đặt nó:
cài đặt -m 755 nxagent /srv/NX/bin

# Cài đặt thư viện nén và proxy
cp -a nxcomp/libXcomp.so.* /srv/NX/lib
cp -a nxcompext/libXcompext.so.* /srv/NX/lib
cài đặt -m 755 nxproxy/nxproxy/srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxproxy

# Cài đặt tác nhân RFB
pushd nxviewer
thực hiện cài đặt DESTDIR=/srv/NX
mv /srv/NX/usr/X11R6/bin/nxviewer /srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxviewer
chmod 755 /srv/NX/bin/nxviewer
mv /srv/NX/usr/X11R6/bin/nxpasswd /srv/NX/bin
popd

# Cài đặt tác nhân RDP
đẩy nxdesktop
thực hiện cài đặt
mv /srv/NX/bin/nxdesktop /srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxdesktop
chmod 755 /srv/NX/bin/nxdesktop
rm -rf /srv/NX/usr
popd

# Cài đặt tập lệnh

# Cài đặt FreeNX
mkdir -p /srv/NX/etc
mkdir -p /srv/NX/var
mkdir -p /srv/NX/var/db
mkdir -p /srv/NX/home
mkdir -p /srv/NX/home/nx
đẩy freenx-0.4.4

# Áp dụng bản vá freenx, chủ yếu ở đây các đường dẫn được sửa cho khớp với /srv/NX
vá -p0< ../freenx-lfs_hint.diff
cp -a nxnode /srv/NX/bin
cp -a nxserver /srv/NX/bin
cp -a nxsetup /srv/NX/bin
cp -a nxkeygen /srv/NX/bin
cp -a nxnode-đăng nhập /srv/NX/bin
cp -a nxloadconfig /srv/NX/bin
cp -a nxclient /srv/NX/bin
cp -a nxprint /srv/NX/bin
cài đặt -m 755 node.conf.sample /srv/NX/etc
popd

# Thêm người dùng và nhóm nx
nhómadd -g 77 nx
useradd -c "Người dùng FreeNX" -d /srv/NX/home/nx -g nx -s /bin/bash -u 77 nx
chown -R root.root /srv/NX
chown -R nx.nx /srv/NX/home/nx

# Hơn nữa tâm điểm, trước khi chạy, hãy đọc tham số khởi chạy lệnh: /srv/NX/bin/nxsetup –help.
# Nếu bạn muốn sử dụng xác thực người dùng dựa trên khóa, hãy xóa tùy chọn –setup-nomachine-key.
# Để làm việc với máy khách mỏng, bạn không cần thay đổi bất cứ điều gì
/srv/NX/bin/nxsetup --install --uid 77 --gid 77 --setup-nomachine-key

# Kiểm tra xem máy chủ NX có đang chạy không:
/srv/NX/bin/nxserver --status

Câu trả lời sẽ giống như thế này:

NX>100 NXSERVER - Phiên bản hệ điều hành 1.4.0-44 (GPL)
NX> 110 NX Server đang chạy
NX>999 Tạm biệt

Cài đặt tệp cấu hình freenx:

mv /srv/NX/etc/node.conf.sample /srv/NX/etc/node.conf

Trong tệp cấu hình, chúng tôi tìm thấy dòng sau và bỏ ghi chú nó:

ENABLE_1_5_0_BACKEND="1"

Ở đó bạn cũng có thể kích hoạt ghi nhật ký lần đầu tiên:

NX_LOG_LEVEL=6

Bây giờ bạn có thể cài đặt ứng dụng khách Nomachine NX trên bất kỳ máy tính Linux nào (bạn cũng có thể sử dụng KNX) hoặc Windows và kiểm tra hoạt động của máy chủ NX. Bạn có thể làm việc với máy chủ ở cả chế độ ứng dụng và chế độ máy tính để bàn từ xa.

Thiết lập và tạo image Thinstation

Từ phía máy chủ NX, bây giờ chúng ta hãy chuyển sang tạo image Thinstation. Bản phân phối có thể được tải xuống ở đây. Khi lắp ráp hình ảnh, chúng tôi sẽ cố gắng giảm số lượng mô-đun và gói nhiều nhất có thể, loại bỏ mọi thứ không cần thiết. Vì nhiều máy tính được chọn làm máy khách mỏng sẽ có phần cứng và thiết bị ngoại vi khác nhau nên tôi muốn chuyển các gói riêng lẻ ra khỏi khuôn khổ của một hình ảnh chung cho tất cả. Thinstation có tùy chọn này: pkg nghĩa là xây dựng dưới dạng gói có thể tải xuống riêng biệt với phần mở rộng pkg, gói nghĩa là được đưa vào một hình ảnh chung. Các gói lprng, sshd, samba-server và các gói khác chắc chắn được thu thập dưới dạng có thể tải xuống. Bạn có thể chỉ định tất cả các gói có trình điều khiển card màn hình X dưới dạng pkg, nhưng sau đó một số gói sẽ xuất hiện khi xây dựng hình ảnh gói bổ sung, mọi người sẽ cần phải tải nó và kết quả là kích thước tổng thể Sẽ có nhiều dữ liệu được tải hơn. Hãy làm điều đó đơn giản hơn: một trong những trình điều khiển video được sử dụng thường xuyên nhất, cụ thể là S3, sẽ được chỉ định dưới dạng gói, phần còn lại - pkg. Các mô-đun cũng có thể được di chuyển ra ngoài kernel, nhưng cho đến nay tính năng này vẫn chưa hoạt động chính xác và chúng chiếm rất ít không gian bên trong kernel. Dưới đây là tệp cấu hình build.conf của tôi:

mô-đun nối tiếp
mô-đun intel-agp
mô-đun qua-agp
mô-đun 8139 nữa
đĩa mềm mô-đun
mô-đun vfat
siêu mô-đun
pkg xorg6-ati
pkg xorg6-i810
pkg xorg6-nv
gói xorg6-s3
pkg xorg6-s3virge
pkg xorg6-sis
pkg xorg6-cây đinh ba
sơ đồ bàn phím gói
gói nx
pkg lprng
pkg sshd
pkg máy chủ samba
thông số rootpasswd vui lòng thay đổi tôi
param xorgvncpasswd vui lòng thay đổi tôi
thông số bootlogo sai
độ phân giải khởi động param 800x600
thông số defaultconfig Thinstation.conf.buildtime
thông số tên cơ sở Thinstation
đường dẫn cơ sở param .
thông số knownhosts ./known_hosts
thông số localpkgs đúng
thông số ngôn ngữ đầy đủ sai
thông số khởi động param 3
tập tin nxurl param://home/zhen/sources/nx/bin/nxclient-1.5.0-141.i386.tar.gz

Nếu bạn định in bằng máy in được kết nối với máy khách tối thiểu bằng lprng, bạn sẽ cần thực hiện một sửa đổi nhỏ đối với tệp Thinstation/packages/lprng/etc/init.d/lprng. Để làm điều này, thay thế dòng:

echo "$PRINTER_X_NAME:lp=$PRINTER_X_DEVICE:wd=$PRINTER_X_DRIVER:br=$PRINTER_X_OPTIONS:lf=/var/log/spooler.log:sh:sf" >> /etc/printcap

echo "$PRINTER_X_NAME:lp=$PRINTER_X_DEVICE:wd=$PRINTER_X_DRIVER:br=$PRINTER_X_OPTIONS:if=/bin/lpf:lf=/var/log/spooler.log:sh:sf" >> /etc/printcap

Việc thêm tính năng lọc cục bộ đã loại bỏ vấn đề cầu thang khi in. Ngoài ra, tôi đã tạo tập lệnh sau để kiểm tra xem việc in có hoạt động trong ~/thinstation/packages/base/bin/my hay không:

#!/bin/sh
echo KIỂM TRA MÁY IN tới /dev/printers/0 1>&2
cho tôi trong 1 2 3 4 5 6 7 8 9;
LÀM
echo PRINTER /dev/printers/0 $i > /dev/printers/0;
xong
echo -e \\r\\f > /dev/printers/0
lối ra 0;

Khi không rõ chính xác điều gì không hoạt động, bạn có thể chạy tập lệnh này trên bảng điều khiển máy khách mỏng: /bin/my.

Để ngăn cửa sổ cảnh báo về máy chủ lạ xuất hiện mỗi khi kết nối máy khách NX với máy chủ, hãy tạo tệp known_hosts trong thư mục gốc Thinstation:

ssh-keyscan -t rsa nxserver_ip>>~/thinstation/known_hosts

Với “nxserver_ip”, bạn phải chỉ định địa chỉ IP của máy chủ NX. Bằng cách này, khách hàng sẽ biết về dấu vân tay kỹ thuật số của khóa RSA của máy chủ NX trong quá trình xác thực.

Sau khi thực hiện xây dựng thành công, hãy sao chép Thinstation/boot-images/etherboot/thinstation.nbi và Thinstation.nbi.zpxe, cũng như tất cả các tệp pkg từ Thinstation/boot-images/pkg-packages vào thư mục /tftpboot trên máy chủ tftp . Tệp Thinstation.nbi.zpxe mà tôi đang tạo không hoạt động, trong trường hợp này bạn có thể tải xuống tệp BootPXE535.zip từ địa chỉ này, kho lưu trữ này chứa trình tải phổ quát Loader-native.zpxe, mọi thứ sẽ hoạt động với nó.

Các tệp cấu hình Thinstation được nhận xét khá tốt, nhưng bản thân quá trình thiết lập và trình tự hành động không phải lúc nào cũng rõ ràng, vì vậy tôi vẫn sẽ đề cập đến một số khó khăn mà tôi gặp phải và những chi tiết nhỏ.

Trong bộ lễ phục. Hình 3 thể hiện các bước chính để đưa máy khách tối thiểu vào hoạt động. Đầu tiên, thêm thông tin về địa chỉ MAC của card mạng vào dhcpd.conf. Đừng quên chỉ định các cài đặt liên quan đến tftp trong mô tả mạng con; chúng được thiết lập bởi các chỉ thị “máy chủ tiếp theo” và “đường dẫn gốc tùy chọn”. Dịch vụ tftp và dhcp của tôi giống nhau Máy chủ FreeBSD, điều này làm cho việc thiết lập chúng trở nên dễ dàng hơn. Tất cả các tệp cài đặt đều nằm trong /tftpboot. Sau đó, trong tệp Thinstation.hosts, chúng ta viết theo thứ tự: tên máy chủ tùy ý (tốt hơn là nó bao gồm thông tin về vị trí của thiết bị đầu cuối), địa chỉ MAC, các nhóm mà thiết bị đầu cuối là thành viên, ở cuối dòng bạn có thể đặt bình luận sau dấu “#”, ví dụ:

otd146_57158 00e04d08d710 smb_flop_hard Màn hình TUX1C #máy tính rất quan trọng

Theo thứ tự ở đây: tên máy chủ, trong trường hợp của tôi, bao gồm số bộ phận và số hàng tồn kho, sau đó là MAC và sau đó là danh sách tên của các tệp cấu hình sẽ được máy chủ này sử dụng.

Tiếp theo, chúng ta tạo một tệp cài đặt Thinstation.conf-MAC, tôi sử dụng địa chỉ MAC trong tên, mặc dù bạn có thể sử dụng địa chỉ IP hoặc tên từ Thinstation.hosts. Lưu ý rằng ở đây địa chỉ MAC trong tên file chỉ sử dụng chữ in hoa. Các nhóm được mô tả trong các tệp có tên Thinstation.conf.group-GROUPNAME. Tệp Thinstation.conf-MAC chứa các cài đặt chỉ áp dụng cho thiết bị đầu cuối này và không được đưa vào các nhóm khác. Ví dụ, mọi người Cài đặt chung các màn hình được mô tả trong tệp Thinstation.conf.group-monitor và một tham số “SCREEN_VERTREFRESH” được chuyển sang tệp Thinstation.conf-MAC. Điều này là do thực tế là chúng được sử dụng màn hình khác nhau và bạn có thể thay đổi cài đặt tốc độ khung hình màn hình, thông số này và các thông số khác có thể được định cấu hình cho từng thiết bị đầu cuối hoặc cho tất cả cùng một lúc. Điều tương tự cũng xảy ra với cài đặt chuột. Theo mặc định, cài đặt được thực hiện cho chuột PS/2. Nếu chuột được sử dụng kết nối với cổng COM1 thì hai tham số “MOUSE_PROTOCOL=Microsoft” và “MOUSE_DEVICE=/dev/ttyS0” được chỉ định, nếu với cổng COM2 thì tham số thứ hai là /dev/ttyS1.

Tệp cấu hình chung của tôi /tftpboot/thinstation.conf.network gần như trống. Tất cả thông tin từ nó được bao gồm trong tập tin riêng biệt cài đặt nhóm, được tham chiếu trong Thinstation.hosts. Vì hai máy chủ đầu cuối được sử dụng phiên bản khác nhau NX và mỗi máy khách chỉ sử dụng máy chủ riêng của mình, các cấu hình được đặt trong các tệp văn bản riêng biệt (NX và TUX1C), ngoài ra, hình ảnh khác nhau Trạm mỏng. Ngoài ra, đừng quên rằng tên tệp Thinstation.nbi và Thinstation.nbi.zpxe có liên quan với nhau: nếu dòng được chỉ định trong dhcpd.conf:

Thinstation.nbi.zpxe";

thì hình ảnh Thinstation.nbi sẽ được sử dụng, trong trường hợp của tôi có một số hình ảnh và do đó, các mục trong dhcpd.conf sẽ khác nhau đối với mỗi thiết bị đầu cuối.

Sự khác biệt của bản dựng NX2

Hệ thống của chúng tôi sử dụng hai máy chủ NX. Một máy chạy NX, được biên dịch từ mã nguồn phiên bản 1.5 và các máy khách 1.5.x được sử dụng để làm việc với nó. Cái còn lại đang chạy phiên bản NX 2.0. Tôi sẽ cho bạn biết sự khác biệt trong cách vận hành và lắp ráp phiên bản này. Máy chủ đã cài đặt Opterons 64-bit và sử dụng hệ thống SLES 10.0 x86_64. Vì vậy, tôi không thể xây dựng NX trên máy chủ này giống như trường hợp của NX 1.5 trên hệ thống 32 bit, ngay cả khi tôi đã cố gắng chỉ định rõ ràng bản dựng cho hệ thống 32 bit:

tạo thế giới BOOTSTRAPCFLAGS="-m32"

Rõ ràng đây là những tính năng của hệ thống 64-bit và các thư viện của nó. Một lúc sau trên trang web Nomachine tôi tìm thấy một ghi chú nói rằng văn bản nguồn NX được thiết kế cho hệ thống 32 bit nhưng cũng có thể được sử dụng trên hệ thống 64 bit. Vì tôi vẫn có một máy tính được cài đặt SLED 10.0 x86 và các phiên bản của tất cả các thư viện, kernel và chương trình đều giống hệt như SLES nên tôi quyết định xây dựng NX trên đó và sau đó chuyển thư mục chứa kết quả xây dựng sao chép thường xuyên trên hệ thống 64-bit. Đó là điều tôi đã làm: mọi thứ vẫn diễn ra như chưa hề có chuyện gì xảy ra. Chúng tôi tải xuống các tệp có cùng tên như khi xây dựng phiên bản 1.5, chỉ có hậu tố 2.0 (hoặc 2.1). Mọi thứ biên dịch giống hệt như trong trường hợp của NX 1.5, với một số ngoại lệ: thứ nhất, tôi không áp dụng bản vá NX-lfs_hint.diff, thứ hai, một phiên bản mới của tập lệnh FreeNX 0.5 đã xuất hiện, hỗ trợ NX 2.0 mới, bạn có thể lấy nó ở đây, thứ ba, tệp freenx-lfs_hint.diff, tệp này thực hiện các thay đổi đối với tệp nxloadconfig từ FreeNX 0.4, không phù hợp với phiên bản FreeNX mới, cần phải chỉnh sửa. Đây là đầu ra của lệnh diff, cho thấy sự khác biệt giữa tệp nxloadconfig gốc và tệp đã chỉnh sửa:

Nxloadconf_orig 2006-07-01 22:03:39.000000000 +0500
+++ nxloadconfig 2006-10-16 12:32:19.000000000 +0500
@@ -56,12 +56,12 @@
NX_LICENSE="HĐH (GPL)"

Công nghệ NX do Nomachine phát triển, cung cấp các tùy chọn kết nối mới và có thể phục hồi các máy tính cũ dưới dạng máy khách mỏng.

Trước khi chuyển thẳng sang phần mô tả về NX, tôi sẽ liệt kê một số xu hướng đang trở nên rõ ràng ngày nay đối với nhiều công ty lớn ở nước ta:

1. Thiết bị máy tính ngày càng rẻ hơn và dễ tiếp cận hơn trước. Đồng thời, năng suất của nó tăng gấp đôi cứ sau 1,5-2 năm theo định luật Moore. Điều này dẫn đến việc tích tụ những thiết bị chưa hết tuổi thọ nhưng đã lỗi thời.

2. Các ứng dụng client-server được phát triển tại doanh nghiệp bởi các lập trình viên từ bộ phận hệ thống điều khiển tự động trong những năm perestroika vẫn hoạt động trên công nghệ cũ nhưng không còn đáp ứng được yêu cầu của thời đại.

3. Không thể tạo ra các phần mềm và hệ điều hành hiện đại để hoạt động trên máy tính có bộ xử lý thế hệ trước (i386, i486, v.v.).

4. Không có gì ngạc nhiên khi trong một thời gian dài ở nhiều tổ chức ở nước ta, nhiều chương trình, hệ điều hành do nhân viên tự ý cài đặt đã bị sử dụng trái phép. Lúc đầu, điều này được coi là điều đương nhiên, nhưng sau đó nó được chứng minh bằng tình hình tài chính. Hiện nay nước ta đã gia nhập WTO, Chính phủ buộc phải nhanh chóng khắc phục tình trạng này, do đó, áp lực từ các cơ quan trong nước đối với doanh nghiệp ngày càng tăng trong việc từ bỏ các phần mềm, hệ điều hành bị sử dụng trái phép.

Có sự mâu thuẫn rõ ràng giữa điểm thứ hai và thứ ba: cần phải tìm cách sử dụng hiệu quả công nghệ cũ để thực hiện các nhiệm vụ hiện đại, hoặc phải từ bỏ công nghệ này. Nếu có đủ tiền thì sự lựa chọn là rõ ràng. Nhưng phải làm gì nếu không có tiền hoặc không có cách nào để loại bỏ những thiết bị đó và thật tiếc nếu vứt nó đi? Và làm thế nào để giải quyết vấn đề không kém phần gay gắt về “độ tinh khiết được cấp phép” của các chương trình được sử dụng, được đề cập trong đoạn thứ tư?

Các công nghệ đầu cuối ra đời, cho phép bạn sử dụng các máy tính cũ, đồng thời loại bỏ một phần các vấn đề về “độ tinh khiết của giấy phép” nếu bạn sử dụng các giải pháp dựa trên các sản phẩm Nguồn mở.

Tạp chí đã xuất bản một số bài viết về cách làm việc với bản phân phối Thinstation. Trong bài viết này, tôi sẽ nói về chi tiết cụ thể về trải nghiệm thiết lập và vận hành trong doanh nghiệp của tôi với các máy khách mỏng dựa trên bản phân phối Thinstation và công nghệ NX do Nomachine phát triển.

Cho đến gần đây, trong thế giới truyền thông đầu cuối, có rất ít giao thức mạng cấp cao thành công được biết đến có khả năng nén và mã hóa hiệu quả lưu lượng giữa máy khách tối thiểu và máy chủ. Nổi tiếng và phổ biến nhất trong số đó là RDP của Microsoft và ICA của Citrix. Cả hai giao thức đều được sử dụng bởi các máy chủ dựa trên hệ điều hành MS Windows. Tôi quan tâm đến khả năng sử dụng máy khách mỏng với máy chủ dựa trên Linux. Là nền tảng cho máy khách mỏng, một bộ phân phối nhỏ, một loại nhà thiết kế Linux, Thinstation gần như ngay lập tức được chọn là công cụ phát triển ổn định và phổ biến nhất ở nước ta và nước ngoài. Nhưng với việc lựa chọn giao thức chịu trách nhiệm liên lạc với máy chủ, tôi đã phải mày mò và thử nghiệm. Tôi sẽ liệt kê các tiêu chí chính mà giao thức đã được chọn. Đầu tiên, chúng tôi muốn sử dụng nhiều loại máy tính cũ có bộ xử lý bắt đầu từ i486, với dung lượng bộ nhớ tối thiểu; chúng tôi có rất nhiều thiết bị như vậy. Thứ hai, các sản phẩm thương mại bị từ chối: chúng tôi không muốn phát sinh thêm chi phí. Thứ ba, cần hỗ trợ tốt cho ngôn ngữ tiếng Nga và bảng chữ cái Cyrillic, cũng như sự hiện diện của một cách quen thuộc để người dùng chuyển đổi giữa các bố cục - tổ hợp phím. Thứ tư, trong mạng cục bộ, chúng ta không cần hỗ trợ mã hóa nhưng việc nén và giảm thiểu lưu lượng mạng là rất quan trọng.

Tìm giải pháp

Trước hết, tôi chú ý đến VNC là sản phẩm phổ biến nhất và có sẵn trong bất kỳ bản phân phối Linux nào, đồng thời là một sản phẩm dễ cài đặt. Khi bạn cần kết nối với máy tính để bàn từ xa của máy chủ Linux từ máy trạm Windows hoặc Linux, điều đầu tiên bạn nghĩ đến là VNC. Tải xuống phiên bản mới nhất của bản phân phối Thinstation, sau đó giải nén tệp lưu trữ thu được trong thư mục chính của bạn. Giả sử rằng đường dẫn đến bản phân phối trông như thế này: ~/thinstation. Tệp chịu trách nhiệm về các tham số bản dựng nằm ở đây: ~/thinstation/build.conf. Nó có ý kiến ​​​​chi tiết. Tôi sẽ không nói chi tiết về cách thiết lập nó, cũng như cách buộc image Thinstation khởi động bằng card mạng có chip khởi động; điều này đã được viết trong các bài viết này. Tôi sẽ liệt kê ngắn gọn các bước để định cấu hình máy khách: chỉnh sửa ~/thinstation/build.conf và tạo một hình ảnh bằng cách chạy tập lệnh ~/thinstation/build. Chúng tôi sao chép tệp hình ảnh đã hoàn thành ~/thinstation/boot-images/etherboot/thinstation.nbi vào máy chủ TFTFP. Chúng tôi thêm một mục nhập về địa chỉ MAC của card mạng của máy khách tối thiểu vào tệp cấu hình dhcp.conf của máy chủ DHCP. Trong thư mục máy chủ TFTP, tạo một tệp có cài đặt cho địa chỉ MAC này và/hoặc chỉnh sửa tệp Thinstation.conf.network. Bạn có thể xem cài đặt hệ thống làm việc của tôi trong danh sách phần “Định cấu hình và tạo hình ảnh Thinstation” và trong Hình. 1.


Hình 1. Mối quan hệ thành phần NX

Để thêm gói máy khách VNC vào hình ảnh, hãy bỏ ghi chú dòng “#package vncviewer” trong tệp cấu hình ~/thinstation/build.conf. Nếu thư mục máy chủ tftp nằm trong /tftpboot (như đối với tôi), thì hãy chỉnh sửa tệp /tftpboot/thinstation.conf.network để các dòng xuất hiện trong đó:

SESSION_0_TYPE=người xem vncviewer
SESSION_0_TITLE="VNC"!}
SESSION_0_VNCVIEWER_SERVER=10.10.10.10:5901

Thay thế địa chỉ IP 10.10.10.10 bằng địa chỉ máy chủ VNC của bạn.

Bây giờ chúng ta hãy kiểm tra image đã được ghép với tham số mới đang hoạt động: bật máy khách mỏng, đợi image Thinstation tải xuống và khởi chạy, kết nối với máy chủ VNC. Xin lưu ý rằng việc chuyển đổi bố cục được thực hiện bằng phím “Alt bên phải”. Trên thực tế, nguyên nhân không phải ở đây là máy khách VNC mà là tệp Thinstation từ gói hỗ trợ Cyrillic keymaps-ru. Để không mất nhiều thời gian tìm kiếm giải pháp cho vấn đề, tôi đã tạo một tệp xkb trên hệ thống SUSE-10.0 được cấu hình như sau:

xkbcomp:0 ru.xkb
xkbcomp -xkm ru.xkb ru.xkm

Tiện ích xkbcomp chuyển đổi mô tả bố cục XKB thành một trong các định dạng. Lệnh đầu tiên tạo kết xuất bố cục hiện tại từ nguồn, đó là màn hình X “:0”. Lệnh thứ hai biên dịch tệp kết quả thành dạng nhị phân mà hệ thống có thể đọc được. Thay thế tệp gốc bằng tệp của chúng tôi:

cp -f ru.xkm ~/thinstation/packages/keymaps-ru/x-common/lib/kmaps/xkb

Sau khi lắp ráp hình ảnh, chúng ta sẽ có được sự chuyển đổi bố cục bình thường. Nhưng máy khách VNC chậm đến mức không thể chấp nhận được. Trên các máy tính có bộ xử lý thấp hơn P-200, một loại "trình chiếu" bắt đầu, khi bất kỳ hành động nào trên máy tính để bàn từ xa đều đi kèm với bản vẽ nhàn nhã về những thay đổi này trên màn hình điều khiển máy khách mỏng. Có nhiều giải pháp VNC sử dụng các phương pháp mã hóa dữ liệu tương tự trong quá trình truyền, tất cả đều sử dụng giao thức Remote FrameBuffer (RFB). Chúng khác nhau về số lượng chức năng, tham số mã hóa dữ liệu và số lượng nền tảng được hỗ trợ. Ví dụ: RealVNC hỗ trợ máy chủ và máy khách cho Windows, UNIX, Microsoft PocketPC và Mac OS X, TightVNC bao gồm máy chủ và máy khách cho Windows và UNIX, VNC cho DOS - máy khách cho DOS, UltraVNC - máy chủ và máy khách cho Windows, OSXvnc - máy chủ và client cho Mac OS X. Tôi đã thử nghiệm RealVNC và TightVNC: về mặt chủ quan, sản phẩm thứ hai (cả máy chủ và máy khách) nhanh hơn một chút, nhưng cả hai đều tạo ra hiệu ứng “trình chiếu” trên các máy tính yếu hơn. Chúng ta sẽ phải thử một cái gì đó khác làm giao thức liên lạc giữa máy khách và máy chủ. Bây giờ hãy để VNC yên; chúng ta sẽ phải quay lại vấn đề này sau. Đây là nơi tôi chuyển sang NX.

Hỗ trợ cho máy khách Nomachine NX lần đầu tiên xuất hiện trong phiên bản Thinstation 2.1 vào năm 2005 và phiên bản mới nhất hiện nay là 2.2, sẽ được ngụ ý bên dưới. Để xây dựng hình ảnh bằng gói NX, trước đây cần phải truy cập trực tiếp vào Internet; trong các phiên bản mới nhất của Thinstation, có thể chỉ định đường dẫn đến tệp bằng tiền tố “file://”. Máy khách được phân phối Nomachine NX sử dụng và hỗ trợ vẫn ở phiên bản 1.5.x, mặc dù đã khá lâu trôi qua kể từ khi phát hành phiên bản mới NX 2.0. Trong file cấu hình build.conf bỏ comment dòng “package nx”, cũng ở cuối file chúng ta sẽ tìm thấy dòng “param nxurl”: cho biết đường dẫn đến file tải sẵn hoặc để nguyên ( bạn cần truy cập Internet). Chúng tôi sao chép hình ảnh được tạo ra vào thư mục của máy chủ tftp, sao chép tệp Thinstation.conf.sample từ thư mục gốc của bản phân phối ở đó, đổi tên thành Thinstation.conf.network và chỉnh sửa nó: tìm #SESSION_0_TYPE=NX và chỉnh sửa các dòng liên quan đến phiên này (ở đây là số 0), nhập các thông số cần thiết.

Chúng tôi bật máy khách mỏng và tải hình ảnh đã tạo, kiểm tra hiệu suất. Tiến bộ là rõ ràng: “trình chiếu” dừng trên PC có bộ xử lý P-100, P-120 trở lên. Do đó, đây không phải là điều chúng tôi muốn đạt được, vì vậy những PC có bộ xử lý i486 sẽ không thể được sử dụng ở đây. Chúng tôi gọi những PC như vậy là “siêu mỏng” và cấu hình chúng để hoạt động với các chương trình DOS bằng cách sử dụng kết hợp FreeDOS và sshdos ở phía máy khách và Dosemu ở phía máy chủ Linux. Tôi sẽ không nói về họ trong bài viết này. Tuy nhiên, đây là một kết quả tốt, chúng ta hãy xem xét các yêu cầu phần cứng từ các nhà phát triển Thinstation và máy khách NX: nhà phát triển trước đây khuyến nghị bộ xử lý i486 và bộ nhớ 16 MB, nhà phát triển sau khuyến nghị bộ xử lý có tần số 400 MHz và 128 MB của trí nhớ. Chúng ta hãy xác định theo kinh nghiệm cấu hình yêu cầu tối thiểu để một máy khách tối thiểu hoạt động với gói NX dưới dạng bộ xử lý P-120 và RAM 32 MB. Tôi đã thử nghiệm một số ứng dụng khách khác, đặc biệt là XRDP, VNC cho DOS, nhưng vì lý do này hay lý do khác, tôi không tìm thấy giải pháp thay thế thực sự cho NX. Bây giờ là lúc để xem xét kỹ hơn về công nghệ NX.

Đánh giá và mô tả ngắn gọn về Nomachine NX

Kiến trúc NX là một tập hợp các công nghệ Nguồn mở và các công cụ thương mại được thiết kế để làm cho việc tính toán mạng trở nên dễ dàng và phân tán. Nó bao gồm phần mềm máy chủ cho phép bất kỳ máy tính UNIX nào trở thành máy chủ đầu cuối và máy khách cho nhiều nền tảng và hệ điều hành. Nomachine đã chọn hệ thống X-Window nổi tiếng và được sử dụng rộng rãi làm nền tảng cho kiến ​​trúc NX, dựa trên GUI của Linux và các hệ điều hành UNIX khác.

Hầu hết các giải pháp mạng hiện có không được thiết kế làm phương tiện chính để người dùng truy cập máy tính để bàn. Các giao thức như RDP và VNC đơn giản hơn nhiều so với X (và do đó rất phù hợp với các máy khách mỏng), nhưng tính đơn giản của chúng không bù đắp được sự thiếu hiệu quả và chức năng. Ví dụ: các giao thức này sử dụng lượng lớn dữ liệu hình ảnh để hiển thị màn hình từ xa. Mặc dù RDP là giao thức hiệu quả hơn RFB (giao thức được VNC sử dụng), nhưng ban đầu nó không được thiết kế để các thiết bị mạng sử dụng hàng ngày mà chỉ là một phần mở rộng cho HĐH. X-Window là một hệ thống con đồ họa (không phải phần mở rộng của hệ điều hành) và các ứng dụng X tương tác với nó bằng giao thức X, do đó hệ điều hành không có lớp đặc biệt chịu trách nhiệm dịch các bản cập nhật màn hình sang giao thức mạng.

Nhược điểm chính của mạng X-terminal là dư thừa và chậm trễ trong việc truyền dữ liệu đồ họa giao thức X. Kể từ khi X-Window ra đời, máy tính để bàn của người dùng đã có đủ loại yếu tố và hiệu ứng đồ họa làm tăng nhu cầu về mạng dữ liệu.

Trong bộ lễ phục. Hình 1 bên dưới số 1 cho thấy công việc truyền thống trên giao thức X: không có nén, các yêu cầu về băng thông mạng và độ trễ là rất quan trọng. Hãy để tôi nhắc bạn rằng trong hệ tư tưởng X-Window, máy chủ X chạy trên thiết bị đầu cuối và trên máy chủ đầu cuối có một máy khách X gửi yêu cầu đến máy chủ X của thiết bị đầu cuối.

Trong trường hợp đơn giản nhất, bạn có thể chạy các ứng dụng có đầu ra đồ họa bằng tùy chọn -X của lệnh ssh, ví dụ: "ssh -X me@server firefox". Bạn có thể thêm tham số -C để nén (thư viện ZLIB được sử dụng). Bạn cũng có thể tối ưu hóa tốc độ tương tác nút bằng cách tăng thông lượng mạng. Nhưng có một giới hạn trên đó việc tăng băng thông sẽ không còn ảnh hưởng đến tốc độ tương tác này nữa. Lý do cho điều này là sự trao đổi yêu cầu/phản hồi mạnh mẽ của các ứng dụng X hiện đại.

NX sử dụng ba phương pháp chính để tăng tốc ứng dụng: nén, lưu vào bộ đệm và ngăn chặn lưu lượng giao thức X quá mức.

Ý tưởng nén sự khác biệt dựa trên dự án Differential X Protocol Compressor (DXPC), được tạo ra vào năm 1995, các thuật ngữ proxy máy khách và proxy máy chủ đã được đề cập ở đó. Nomachine đã chọn ý tưởng và phát triển sản phẩm của riêng mình. NX được cho là vượt trội gấp 10 lần so với thư viện chuẩn ZLIB.

Nomachine cũng đã phát triển một cơ chế lưu vào bộ nhớ đệm lưu lượng X thông minh sử dụng thuật ngữ "lượt truy cập bộ đệm" quen thuộc từ các máy chủ proxy. Cơ chế này làm giảm lưu lượng mạng khi truyền các khối dữ liệu giống nhau và khi các khối dữ liệu này thay đổi, luồng sẽ tính toán và truyền chỉ sự khác biệt của chúng.

Trước NX, không có cách nào đáng tin cậy để ngăn chặn lưu lượng giao thức X quá mức trên các liên kết đường dài. NX có thể thực hiện việc này bằng cách dịch lưu lượng X ở đầu xa (từ ứng dụng sang nxagent) thành lưu lượng giao thức NX.

Tất cả ba phương pháp kết hợp để đạt được sự cải thiện 70 lần trong trải nghiệm GUI X từ xa trong khi sử dụng mức nén cao nhất trên các liên kết băng thông thấp, độ trễ cao (trong cài đặt máy khách NX, “modem” tương ứng với mức nén tối đa và “lan” tương ứng với không nén). Trong bộ lễ phục. 1 dưới số 2 thể hiện mối quan hệ của các thành phần NX: nén/giải nén và lưu vào bộ nhớ đệm được thực hiện trên các mô-đun NX Proxy, lưu lượng truyền giữa chúng thông qua giao thức NX, yêu cầu về chất lượng đường truyền là tối thiểu, có tuyên bố rằng chúng có thể hoạt động ở tốc độ 9600 bps.

Tương tự như việc dịch lưu lượng X của nxagent, có một tác nhân khác (“nxviewer”) dịch lưu lượng RFB/VNC sang giao thức NX. Điều này cải thiện hiệu quả kết nối lên tới 10 lần so với trình xem vncviewer thông thường liên kết màn hình X cục bộ với máy chủ VNC từ xa. Chúng tôi sẽ đảm bảo điều này.

Trong bộ lễ phục. Hình 1 dưới số 3 thể hiện khả năng hoạt động đồng thời của nhiều tác nhân NX, RDP, VNC khác nhau. Đồng thời, các đại lý NX dịch một cách hiệu quả các giao thức nước ngoài sang giao thức của riêng họ và sau đó truyền lưu lượng truy cập thông qua NX Proxy.

NX Proxy - thành phần này chịu trách nhiệm chính xác cho việc nén/giải nén: ở chế độ máy khách, nó mã hóa các yêu cầu từ máy khách X và giải mã phản hồi từ máy chủ X, ở chế độ máy chủ - ngược lại.

NX Agent – ​​​​Thuật ngữ “tác nhân” được sử dụng để mô tả thành phần mà hình ảnh được tạo được chuyển đến trước khi được truyền tới mạng thông qua proxy.

NX Viewer là một máy khách VNC thông thường được Nomachine sửa đổi để chuyển lưu lượng VNC/RFB sang giao thức NX.

NX Desktop là một máy khách RDP chuyển lưu lượng RDP sang giao thức NX.

Nomachine đã mở mã nguồn của hầu hết các phát triển và thư viện của mình, bất kỳ ai cũng có thể tải xuống chúng từ các tệp . Các bản dựng từ Nomachine được cung cấp miễn phí cho tất cả khách hàng; cũng có nhiều tùy chọn khác nhau cho các bản dựng máy chủ NX, được cung cấp có tính phí: đăng ký hàng năm cho NX Enterprise Server với số lượng người dùng không giới hạn và 1-2 bộ xử lý có giá 1.494 USD, giải pháp hoàn chỉnh nhất với các nút quản lý và cân bằng tải dựa trên NX Advanced Server sẽ có giá 3.494 USD. Ngoài ra, còn có tùy chọn NX Free Edition, có thể tải xuống miễn phí nhưng có giới hạn về số lượng kết nối đồng thời và số người dùng bằng hai, vì vậy nếu bạn muốn quản trị máy chủ Linux tại nhà bằng modem analog thông thường , thì tốt hơn, an toàn hơn và dễ dàng hơn giải pháp này không thể tìm được. Tôi cũng sẽ lưu ý đến sự hiện diện của các phiên bản máy khách của NX Client Desktop Edition dành cho PlayStation 2 (khi sử dụng Linux Kit), cũng như NX Client Embedded Edition dành cho Sharp Zaurus 5xxx và HP/Compaq iPAQ. Họ cũng có thể được tải xuống miễn phí. Vì vậy, nếu bạn đang đi công tác và chỉ có một chiếc PDA bên mình, không có gì ngăn cản bạn kết nối và làm việc từ xa trên máy chủ Linux của mình.

Xây dựng và chạy NX

Đổi lại, dựa trên nguồn mở, cộng đồng đã phát triển một phiên bản của phần máy chủ NX có tên FreeNX, cũng như KNX, một ứng dụng khách để kết nối với máy chủ từ dưới X. FreeNX là một tập hợp các tập lệnh shell, cùng với các thư viện mở từ NX, tạo thành phần máy chủ (phụ trợ).

Khi bắt đầu làm việc với NX, tôi sử dụng PC có SUSE 10.0 làm máy chủ. FreeNX đã được lắp ráp như một phần của bản phân phối, nhưng thứ nhất, nó đã hơn một năm tuổi và thứ hai, gặp phải những khó khăn đầu tiên khi làm việc, tôi quyết định rằng đã đến lúc lắp ráp phần máy chủ từ mã nguồn riêng tôi. Tôi sẽ nói về việc lắp ráp từ mã nguồn của phiên bản 1.5 là phiên bản được thử nghiệm nhiều thời gian nhất và sau đó tôi sẽ làm rõ những tính năng nào có để lắp ráp phiên bản 2.0 (2.1).

Hiện tại, nguồn của phiên bản NX 2.0 được đăng trên trang web Nomachine, phiên bản này được hãng khuyên dùng và có liên kết đặc biệt đến nguồn của phiên bản 1.5. Tải xuống phiên bản mới nhất của các tarball sau từ trang: nx-X11, nxagent, nxcomp, nxcompext, nxdesktop (nếu bạn cần hỗ trợ RDP), nxproxy, nxscripts, nxviewer (nếu bạn cần hỗ trợ VNC). nx-X11 là phiên bản 4.3 của Xfree86, đã sửa đổi thư viện Nomachine X. Một số nguồn sẽ được giải nén trực tiếp vào cây nx-X11 nên chúng ta sẽ mở rộng nó trước, thứ tự giải nén các tarball còn lại không quan trọng, cái chính là chúng đều được giải nén trong một thư mục. Ở đó, chúng tôi tải xuống và giải nén các tập lệnh FreeNX từ địa chỉ . Bạn cũng sẽ cần hai bản vá, tải chúng xuống từ đây. Thư mục lắp ráp của chúng tôi sẽ trông như thế này:

freenx-lfs_hint.diff

NX-lfs_hint.diff

Để xây dựng, bạn sẽ cần các gói sau (chúng có thể được cài đặt từ bản phân phối Linux của bạn): libjpeg-devel, libpng-devel, openssl-devel, netcat, Expect. Một mô tả về lắp ráp cũng có thể được tìm thấy ở đây.

# Áp dụng bản vá NX
patch -p0 # Lắp ráp X - phần dài nhất, có thể mất tới một giờ
đẩy nx-X11
tạo nên thế giới
popd
#nxproxy
đẩy nxproxy
./configure --prefix=/srv/NX
làm
popd
# Xây dựng tác nhân RFB
pushd nxviewer
xmkmf -a
cp -a /usr/X11R6/lib/libXp.so* ../nx-X11/exports/lib/
tạo 2> /dev/null
popd
# Xây dựng tác nhân RDP
đẩy nxdesktop
./configure –prefix=/srv/NX –sharedir=/srv/NX/share
làm
popd
# Toàn bộ phần server sẽ nằm trong thư mục /srv/NX, tạo một số thư mục con
mkdir -p /srv/NX/bin
mkdir -p /srv/NX/lib
mkdir -p /srv/NX/man/man1
mkdir -p /srv/NX/share/doc
# Cài đặt các thư viện và tác nhân đã thu thập
cp -a nx-X11/lib/X11/libX11.so.* nx-X11/lib/Xext/libXext.so.* nx-X11/lib/Xrender/libXrender.so.* /srv/NX/lib
cài đặt -m 755 nx-X11/programs/Xserver/nxagent /srv/NX/lib
# Tạo tập lệnh nxagent sẽ quản lý tất cả các chương trình
cat > nxagent #!/bin/sh
NXCOMMAND=$(tên cơ sở $0)
xuất LD_LIBRARY_PATH=/srv/NX/lib:$LD_LIBRARY_PATH
thực thi /srv/NX/lib/$NXCOMMAND $(1+"$@")
EOF
# Và cài đặt nó:
cài đặt -m 755 nxagent /srv/NX/bin
# Cài đặt thư viện nén và proxy
cp -a nxcomp/libXcomp.so.* /srv/NX/lib
cp -a nxcompext/libXcompext.so.* /srv/NX/lib
cài đặt -m 755 nxproxy/nxproxy/srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxproxy
# Cài đặt tác nhân RFB
pushd nxviewer
thực hiện cài đặt DESTDIR=/srv/NX
mv /srv/NX/usr/X11R6/bin/nxviewer /srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxviewer
chmod 755 /srv/NX/bin/nxviewer
mv /srv/NX/usr/X11R6/bin/nxpasswd /srv/NX/bin
popd
# Cài đặt tác nhân RDP
đẩy nxdesktop
thực hiện cài đặt
mv /srv/NX/bin/nxdesktop /srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxdesktop
chmod 755 /srv/NX/bin/nxdesktop
rm -rf /srv/NX/usr
popd
# Cài đặt tập lệnh
cp -r nxscripts /srv/NX/share/doc
# cài đặt FreeNX
mkdir -p /srv/NX/etc
mkdir -p /srv/NX/var
mkdir -p /srv/NX/var/db
mkdir -p /srv/NX/home
mkdir -p /srv/NX/home/nx
đẩy freenx-0.4.4
# Áp dụng bản vá freenx, chủ yếu ở đây các đường dẫn được sửa cho khớp với /srv/NX
vá -p0 cp -a nxnode /srv/NX/bin
cp -a nxserver /srv/NX/bin
cp -a nxsetup /srv/NX/bin
cp -a nxkeygen /srv/NX/bin
cp -a nxnode-đăng nhập /srv/NX/bin
cp -a nxloadconfig /srv/NX/bin
cp -a nxclient /srv/NX/bin
cp -a nxprint /srv/NX/bin
cài đặt -m 755 node.conf.sample /srv/NX/etc
popd
# Thêm người dùng và nhóm nx
nhómadd -g 77 nx
useradd -c "Người dùng FreeNX" -d /srv/NX/home/nx -g nx -s /bin/bash -u 77 nx
chown -R root.root /srv/NX
chown -R nx.nx /srv/NX/home/nx
# Tiếp theo, một điểm quan trọng: trước khi chạy, hãy đọc các tham số khởi chạy lệnh: /srv/NX/bin/nxsetup –help.
# Nếu bạn muốn sử dụng xác thực người dùng dựa trên khóa, hãy xóa tùy chọn –setup-nomachine-key.
# Để làm việc với máy khách mỏng, bạn không cần thay đổi bất cứ điều gì
/srv/NX/bin/nxsetup --install --uid 77 --gid 77 --setup-nomachine-key
# Kiểm tra xem máy chủ NX có đang chạy không:
/srv/NX/bin/nxserver --status

Câu trả lời sẽ giống như thế này:

NX> 100 NXSERVER – Phiên bản hệ điều hành 1.4.0-44 (GPL)
NX> 110 NX Server đang chạy
NX>999 Tạm biệt

Cài đặt tệp cấu hình freenx:

mv /srv/NX/etc/node.conf.sample /srv/NX/etc/node.conf

Trong tệp cấu hình, chúng tôi tìm thấy dòng sau và bỏ ghi chú nó:

ENABLE_1_5_0_BACKEND="1"

Ở đó bạn cũng có thể kích hoạt ghi nhật ký lần đầu tiên:

Bây giờ bạn có thể cài đặt ứng dụng khách Nomachine NX trên bất kỳ máy tính Linux nào (bạn cũng có thể sử dụng KNX) hoặc Windows và kiểm tra hoạt động của máy chủ NX. Bạn có thể làm việc với máy chủ ở cả chế độ ứng dụng và chế độ máy tính để bàn từ xa.


Hình 2. Phiên KDE NX ở chế độ máy tính để bàn từ Windows XP

Thiết lập và tạo image Thinstation

Từ phía máy chủ NX, bây giờ chúng ta hãy chuyển sang tạo image Thinstation. Bản phân phối có thể được tải xuống ở đây. Khi lắp ráp hình ảnh, chúng tôi sẽ cố gắng giảm số lượng mô-đun và gói nhiều nhất có thể, loại bỏ mọi thứ không cần thiết. Vì nhiều máy tính được chọn làm máy khách mỏng sẽ có phần cứng và thiết bị ngoại vi khác nhau nên tôi muốn chuyển các gói riêng lẻ ra khỏi khuôn khổ của một hình ảnh chung cho tất cả. Thinstation có tùy chọn này: pkg nghĩa là xây dựng dưới dạng gói có thể tải xuống riêng biệt với phần mở rộng pkg, gói nghĩa là được đưa vào một hình ảnh chung. Các gói lprng, sshd, samba-server và các gói khác chắc chắn được thu thập dưới dạng có thể tải xuống. Bạn có thể chỉ định tất cả các gói có trình điều khiển card màn hình X là pkg, nhưng sau đó khi xây dựng hình ảnh, một số gói bổ sung sẽ xuất hiện mà mọi người sẽ cần tải và do đó, tổng kích thước của dữ liệu được tải sẽ lớn hơn. Hãy làm điều đó đơn giản hơn: một trong những trình điều khiển video được sử dụng thường xuyên nhất, cụ thể là S3, sẽ được chỉ định dưới dạng gói, phần còn lại - pkg. Các mô-đun cũng có thể được di chuyển ra ngoài kernel, nhưng cho đến nay tính năng này vẫn chưa hoạt động chính xác và chúng chiếm rất ít không gian bên trong kernel. Dưới đây là tệp cấu hình build.conf của tôi:

mô-đun nối tiếp
mô-đun intel-agp
mô-đun qua-agp
mô-đun 8139 nữa
đĩa mềm mô-đun
mô-đun vfat
siêu mô-đun
pkg xorg6-ati
pkg xorg6-i810
pkg xorg6-nv
gói xorg6-s3
pkg xorg6-s3virge
pkg xorg6-sis
pkg xorg6-cây đinh ba
sơ đồ bàn phím gói
gói nx
pkg lprng
pkg sshd
pkg máy chủ samba
thông số rootpasswd vui lòng thay đổi tôi
param xorgvncpasswd vui lòng thay đổi tôi
thông số bootlogo sai
độ phân giải khởi động param 800x600
thông số defaultconfig Thinstation.conf.buildtime
thông số tên cơ sở Thinstation
đường dẫn cơ sở param .
thông số knownhosts ./known_hosts
thông số localpkgs đúng
thông số ngôn ngữ đầy đủ sai
thông số khởi động param 3
tập tin nxurl param://home/zhen/sources/nx/bin/nxclient-1.5.0-141.i386.tar.gz

Nếu bạn định in bằng máy in được kết nối với máy khách tối thiểu bằng lprng, bạn sẽ cần thực hiện một sửa đổi nhỏ đối với tệp Thinstation/packages/lprng/etc/init.d/lprng. Để làm điều này, thay thế dòng:

echo "$PRINTER_X_NAME:lp=$PRINTER_X_DEVICE:wd=$PRINTER_X_DRIVER:br=$PRINTER_X_OPTIONS:lf=/var/log/spooler.log:sh:sf" >> /etc/printcap

echo "$PRINTER_X_NAME:lp=$PRINTER_X_DEVICE:wd=$PRINTER_X_DRIVER:br=$PRINTER_X_OPTIONS:if=/bin/lpf:lf=/var/log/spooler.log:sh:sf" >> /etc/printcap

Việc thêm tính năng lọc cục bộ đã loại bỏ vấn đề cầu thang khi in. Ngoài ra, tôi đã tạo tập lệnh sau để kiểm tra xem việc in có hoạt động trong ~/thinstation/packages/base/bin/my hay không:

#!/bin/sh
echo KIỂM TRA MÁY IN tới /dev/printers/0 1>&2
cho tôi trong 1 2 3 4 5 6 7 8 9;
LÀM
echo PRINTER /dev/printers/0 $i > /dev/printers/0;
xong
echo -e \\r\\f > /dev/printers/0
lối ra 0;

Khi không rõ chính xác điều gì không hoạt động, bạn có thể chạy tập lệnh này trên bảng điều khiển máy khách mỏng: /bin/my.

Để ngăn cửa sổ cảnh báo về máy chủ lạ xuất hiện mỗi khi kết nối máy khách NX với máy chủ, hãy tạo tệp known_hosts trong thư mục gốc Thinstation:

ssh-keyscan -t rsa nxserver_ip>>~/thinstation/known_hosts

Với “nxserver_ip”, bạn phải chỉ định địa chỉ IP của máy chủ NX. Bằng cách này, khách hàng sẽ biết về dấu vân tay kỹ thuật số của khóa RSA của máy chủ NX trong quá trình xác thực.

Sau khi thực hiện xây dựng thành công, hãy sao chép Thinstation/boot-images/etherboot/thinstation.nbi và Thinstation.nbi.zpxe, cũng như tất cả các tệp pkg từ Thinstation/boot-images/pkg-packages vào thư mục /tftpboot trên máy chủ tftp . Tệp Thinstation.nbi.zpxe mà tôi đang tạo không hoạt động, trong trường hợp này bạn có thể tải xuống tệp BootPXE535.zip từ địa chỉ này, kho lưu trữ này chứa trình tải phổ quát Loader-native.zpxe, mọi thứ sẽ hoạt động với nó.

Các tệp cấu hình Thinstation được nhận xét khá tốt, nhưng bản thân quá trình thiết lập và trình tự hành động không phải lúc nào cũng rõ ràng, vì vậy tôi vẫn sẽ đề cập đến một số khó khăn mà tôi gặp phải và những chi tiết nhỏ.

Vì vậy, bạn không cần tốn nhiều công sức để tạo một máy khách mỏng từ máy tính thông thường. Để hiểu tối thiểu bài viết này, bạn cần có ít nhất một ý tưởng mơ hồ về:

Thời gian trôi qua, phần cứng trở nên lỗi thời về mặt vật chất và đạo đức, ban quản lý như thường lệ không có tiền để mua máy tính mới trong tổ chức, trong trường hợp này có cơ hội “thổi hồn” vào thùng rác bảo tàng. Dành cho khách hàng mỏng Bất cứ điều gì sẽ làm một điều hiếm có với bộ xử lý lõi đơn tần số 1 GHz và RAM 128 MB, và chi tiết quan trọng nhất là bo mạch chủ với card mạng hỗ trợ khởi động PXE. Chúng tôi sẽ không cần ổ cứng hay ổ đĩa mềm, chúng tôi sẽ tạo ra một máy khách mỏng thực sự chứ không phải một tác phẩm nhại thảm hại! ;)

Cách tạo một máy khách mỏng từ máy tính cũ (phương pháp 2)

Chuẩn bị máy khách tối thiểu và thiết bị bổ sung.

Tất nhiên, trước tiên hãy lắp ráp một thiết bị sống ít nhiều từ rác rưởi, như tôi đã nói ở trên, chúng ta hoàn toàn không cần ổ cứng, còn đối với ổ đĩa và các thiết bị ngoại vi khác, tất cả phụ thuộc vào nhiệm vụ trước mắt mà chúng ta mỏng khách hàng phải đối phó, tôi có đủ thiết bị ngoại vi tại nơi làm việc chỉ có màn hình, bàn phím, chuột, thiết bị USB Ban quản lý cho rằng nó không cần thiết (tất nhiên là ngoại trừ bàn phím và chuột), bởi vì mong muốn làm cho hệ thống trở nên khép kín hơn đã vượt quá mong muốn của người dùng (kỳ lạ thay, tôi đồng ý với họ về điều này, tất cả các chức năng đều phương tiện di động thay thế thư và bộ nhớ tệp nội bộ, đồng thời đối với những người cần làm việc với các tệp lớn và năng suất từ ​​PC hoàn toàn không được chuyển sang máy khách mỏng). Sau khi chắc chắn rằng phần cứng đang hoạt động, bạn cần định cấu hình khởi động từ card mạng trong BIOS và tắt tất cả các phương thức khởi động khác. Điều này được thực hiện khác nhau trên các tấm thảm khác nhau. bảng, nhưng bản chất tập trung vào một điều.

Để vận hành một máy khách tối thiểu, bạn cần một máy chủ hoạt động như một máy trạm từ xa mà máy khách tối thiểu của chúng tôi sẽ kết nối. Tôi sẽ không đi sâu vào việc xem xét tất cả các loại hình làm việc từ xa mà sẽ tập trung vào Terminal Server phổ biến nhất của Microsoft. Chúng tôi sẽ cho rằng bạn đã có máy chủ để triển khai Máy chủ đầu cuối, ví dụ, trên Windows Server 2008 R2. Nếu không có nhu cầu kết nối người dùng bên ngoài tổ chức thì chúng tôi sẽ xem xét việc chỉ thiết lập kết nối “bên trong”. Hãy để máy chủ đầu cuối của chúng tôi có nội bộ IP 192.168.0.5.

DHCP

Bây giờ, hãy định cấu hình DCHP để phân phối địa chỉ IP cho các máy khách tối thiểu của chúng ta và thông số bổ sung. Bạn có thể đọc cách cấu hình DHCP trên Windows Server 2008 tại đây, cho Linux Server tại đây. Trong bài viết này tôi sẽ chỉ chỉ ra những gì cần điều chỉnh đối với mạch hoàn thiện.

Để cấu hình trong Windows Server 2008 R2: chúng ta hãy đi đến các thông số khu vực

Chọn Cấu hình tham số và thêm tham số:

066 Tên máy chủ của máy chủ tải xuống và cho biết địa chỉ IP của máy chủ TFTP của chúng tôi (trong trường hợp của chúng tôi là 192.168.0.4)

067 Tên file tải về, nhập pxelinux.0

và đừng quên khởi động lại dịch vụ DHCP.

Cài đặt trong Máy chủ Ubuntu :

Sẽ được sau

máy chủ TFTP

Cài đặt, trong Máy chủ Ubuntu 14.04 LTS . Bạn cũng có thể sử dụng chương trình tftpd32 cho hệ thống Windows

Phân phối Thinstation

Bạn có thể làm quen với các khả năng của bản phân phối này trên trang web của nhà phát triển http://thinstation.github.io/thinstation/. Để có được bản phân phối hoạt động với khả năng tải xuống từ máy chủ TFTP, bạn cần phải lắp ráp nó, tôi sẽ không xem xét cách thực hiện việc này mà sẽ sử dụng bản phân phối làm sẵn với khả năng tải xuống qua phiên bản mạng PXE của tập hợp (gương) được biên dịch với tùy chọn allmodules (đối với điều này có một nhờ riêng nik0el ). Tải xuống kho lưu trữ và giải nén nó, bây giờ bạn cần phân tán các tập tin. Tôi sẽ xem ví dụ về máy chủ TFTP được cấu hình trong Windows Server 2008 R2.

Hãy đặt tất cả các tệp và thư mục như trong C:\TFTPRoot

Bây giờ hãy bắt đầu thiết lập các tệp chính mà bạn sẽ chỉnh sửa cho phù hợp với nhu cầu của mình:

Thinstation.conf.network - chịu trách nhiệm cài đặt kết nối mặc định cho tất cả các máy khách tối thiểu

Thinstation.conf.sample -

Thinstation.hosts - chỉ định cài đặt riêng lẻ

Thinstation.conf.group-... - thay vì dấu chấm, tên của nhóm được chỉ định (1280@75 - độ phân giải và tần số, người dùng - tên của máy khách tối thiểu được chỉ định trong tệp Thinstation.hosts, v.v.)

Dưới đây là các thông số được chỉnh sửa một chút theo địa chỉ IP của chúng tôi:

Thinstation.conf.network

MÀN HÌNH=0
WORKSPACE=1SESSION_0_TITLE="Máy chủ đầu cuối"!}
SESSION_0_TYPE=rmáy tính để bàn
SESSION_0_SCREEN=1
SESSION_0_RDESKTOP_SERVER=192.168.0.5
SESSION_0_RDESKTOP_OPTIONS="-u "người dùng""
SESSION_0_AUTOSTART=Bật#SESSION_#_TITLE="Máy chủ xấu lớn Donald"!}
#SESSION_#_TYPE=freerdp
#SESSION_#_SCREEN=1
#SESSION_#_SCREEN_POSITION=2
#SESSION_#_FREERDP_SERVER=192.168.1.1
#SESSION_#_FREERDP_OPTIONS="-tên người dùng -p mật khẩu"
#SESSION_#_AUTOSTART=TắtRDESKTOP_SOUND=Tắt
RDESKTOP_FDD=Tắt
RDESKTOP_CDROM=Tắt
RDESKTOP_HDD=Tắt
RDESKTOP_USB=Tắt
RDESKTOP_1394=Tắt
RDESKTOP_COM3=Tắt
RDESKTOP_COM4=Tắt
RDESKTOP_SLOWLINK=Bật
RDESKTOP_COMPRESSION=Bật
RDESKTOP_COLOR_DEPTH="16"
#RDESKTOP_DOMEN=mydom
RDESKTOP_USB_NO_MOUNT_DIR=BậtFREERDP_USB_NO_MOUNT_DIR=Trên # Núi Ổ đĩa USB Bật/Tắt
FREERDP_USB=Tắt # Bật/Tắt gắn ổ USB
FREERDP_SOUND=Bật # Âm thanh, Bật/Tắt
FREERDP_KEYMAP=419 # Số sơ đồ bàn phím
FREERDP_CONSOLE=Tắt # Kết nối với bảng điều khiển, Bật/Tắt
FREERDP_SLOWLINK=Tắt # Liên kết mạng chậm, Bật/Tắt
FREERDP_COMPRESSION=Tắt # Nén RDP, Bật/Tắt
FREERDP_CDROM=Tắt # Ổ đĩa CDROM hiện có, Bật/Tắt
FREERDP_CDROM_SATA=Tắt # SATA CDROM hiện có, Bật/Tắt
FREERDP_FDD=Tắt # Ổ đĩa mềm hiện tại, Bật/Tắt
FREERDP_USBFDD=Tắt # Có đĩa mềm USB, Bật/Tắt
FREERDP_HDD=Tắt # Ổ đĩa HDD hiện có, Bật/Tắt
FREERDP_1394=Tắt # Hiện có FireWare HDD, Bật/Tắt
FREERDP_COM3=Tắt # Chuyển hướng COM1, Bật/Tắt
FREERDP_COM4=Tắt # Chuyển hướng COM2, Bật/TắtKEYBOARD_MAP=en_us
TIME_ZONE="Châu Âu/Moscow"
AUDIO_LEVEL=67
AUTOPLAYCD=Bật
DAILY_REBOOT=Bật
CUSTOM_CONFIG=tắt
RECONNECT_PROMPT=trình đơn
NET_TELNETD_ENABLED=Bật
SCREEN_RESOLUTION="1024x768"
SCREEN_HORIZSYNC="30-65"
SCREEN_VERTREFRESH="75"
SCREEN_COLOR_DEPTH="16"
MOUSE_PROTOCOL=IMPS/2
MOUSE_RESOLUTION=100
MOUSE_ACCELERIC="1"
X_DRIVER_OPTION1="Bật con trỏ"
PRINTER_0_NAME=song song
PRINTER_0_DEVICE=/dev/printers/0
PRINTER_0_TYPE=P
PRINTER_1_NAME=usb
PRINTER_1_DEVICE=/dev/usb/lp0
PRINTER_1_TYPE=U

Thinstation.hosts

# TÊN NHÓM MAC #COMMENT #thinstation01 0013D409A812 1024@75 cdrom fdd usb #192.168.0.21 user 000A5E1ADCAA 1280@60 cdrom usb #192.168.0.10

Ở đây chúng tôi chỉ định tên cho địa chỉ Mac của máy tính tối thiểu và cho biết các nhóm cài đặt. Trong ví dụ, đây là nhóm có các cài đặt cho màn hình, ổ đĩa và cổng usb.

bất hạnh

Bây giờ hãy đảm bảo rằng các máy chủ đã hoạt động. Khởi động máy khách mỏng, sau khi tải xuống bản phân phối và khởi chạy hoàn toàn, một cửa sổ sẽ mở ra để nhập tên người dùng và mật khẩu để đăng nhập vào máy chủ đầu cuối của chúng tôi. Trong ví dụ này, tôi đã sử dụng ứng dụng khách rdesktop để kết nối và có khoảng 10 loại mà bạn có thể chọn và tùy chỉnh cho riêng mình.

Có một phương pháp thứ hai được mô tả trong bài viết