Lý do nên dùng một máy chủ in ấn Linux chuyên dụng
Năm ngoái, tôi đã quá mệt mỏi với đống dây cáp lộn xộn sau bàn làm việc. Chúng tôi có một chiếc HP LaserJet P1102 cũ và một máy in ảnh Epson cao cấp vẫn hoạt động hoàn hảo nhưng lại thiếu kết nối Wi-Fi.
Thay vì chi 200 USD cho các bộ chuyển đổi mạng hoặc thay thế phần cứng vẫn còn dùng tốt, tôi đã lấy chiếc Dell OptiPlex bám đầy bụi với 4GB RAM từ trong kho. Bằng cách tăng tốc hiệu suất Linux và cài đặt CUPS (Common Unix Printing System), tôi đã biến đống ‘rác điện tử’ đó thành một máy chủ in ấn chuyên dụng. Giờ đây, nó quản lý mọi tài liệu trong văn phòng mà không gặp bất kỳ trục trặc nào.
CUPS là xương sống của việc in ấn trên Linux. Nó sử dụng Giao thức In ấn Internet (IPP) để quản lý hàng đợi và chia sẻ phần cứng qua mạng. Thậm chí, nó còn cho phép sử dụng AirPrint cho các thiết bị di động. Sau 180 ngày hoạt động liên tục (uptime), hệ thống này đã chứng minh được độ tin cậy vượt xa việc giám sát server Linux qua các tính năng mạng tích hợp trên nhiều dòng máy in ‘thông minh’ hiện đại.
Cài đặt cơ bản: Vận hành nhanh chóng
Bạn có thể khởi chạy dịch vụ cốt lõi chỉ trong khoảng ba phút. Tôi đã sử dụng Ubuntu 22.04 cho bản build này, nhưng các bước này hoạt động trên hầu hết mọi hệ thống dựa trên Debian.
1. Cài đặt gói CUPS
Đầu tiên, hãy cập nhật kho lưu trữ và tải về các tệp thực thi CUPS mới nhất:
sudo apt update
sudo apt install cups -y
2. Quản lý dịch vụ
Kích hoạt dịch vụ để nó tự động khởi động sau khi mất điện hoặc khởi động lại hệ thống:
sudo systemctl enable --now cups
3. Mở quản lý từ xa
Các bản cài đặt CUPS tiêu chuẩn giới hạn giao diện web ở localhost:631. Để quản lý máy chủ từ laptop, bạn phải cấu hình CUPS lắng nghe mạng và cấp quyền quản trị cho người dùng của mình:
sudo cupsctl --remote-admin --remote-any
sudo usermod -aG lpadmin $USER
Truy cập bảng điều khiển bằng cách điều hướng đến https://[ip-may-chu-cua-ban]:631 trên bất kỳ trình duyệt nào. Trình duyệt sẽ cảnh báo chứng chỉ tự ký là rủi ro. Chỉ cần nhấn ‘Nâng cao’ (Advanced) và tiếp tục truy cập vào bảng điều khiển.
Tối ưu hóa hệ thống để sử dụng hàng ngày
Các thiết lập cơ bản phù hợp cho phòng thí nghiệm tại nhà, nhưng một văn phòng bận rộn cần sự ổn định cao hơn. Cấu hình chính nằm ở tệp /etc/cups/cupsd.conf.
Trên máy chủ thực tế của mình, tôi nhận thấy các tệp PDF lớn trên 100MB đôi khi gây ra hiện tượng giật lag. Tôi đã tối ưu hóa tham số Kernel Linux để ưu tiên việc phân bổ bộ nhớ cho tiến trình in ấn (printing daemon). Kể từ khi thực hiện những thay đổi này, máy chủ xử lý các đợt ảnh độ phân giải cao nhanh hơn đáng kể.
Tinh chỉnh cấu hình
Mở tệp cấu hình để thiết lập các quy tắc truy cập cụ thể:
sudo nano /etc/cups/cupsd.conf
Tìm chỉ thị Listen. Để bảo mật tốt hơn, hãy giới hạn máy chủ ở một IP nội bộ tĩnh thay vì để nó tự do:
# Liên kết với IP mạng cục bộ cụ thể
Listen 192.168.1.50:631
Xác minh rằng chỉ các thiết bị cục bộ mới có thể truy cập bảng quản trị bằng cách kiểm tra khối <Location />:
<Location />
Order allow,deny
Allow @LOCAL
</Location>
Thêm máy in qua CLI
Giao diện web rất tuyệt, nhưng việc làm chủ dòng lệnh Linux sẽ nhanh hơn cho các tác vụ hàng loạt. Nếu bạn có tệp PostScript Printer Description (PPD), hãy sử dụng lệnh này để thêm máy in ngay lập tức:
lpadmin -p Office_LaserJet -E -v usb://HP/LaserJet%20P1102 -m everywhere
Tham số -m everywhere giúp tiết kiệm rất nhiều thời gian. Nó sử dụng IPP Everywhere, tự động cấu hình các máy in hiện đại mà không yêu cầu bạn phải tìm kiếm driver cụ thể.
In ấn di động và AirPrint
Khoảnh khắc ‘Aha!’ thực sự đối với đội ngũ của tôi là khi họ có thể in trực tiếp từ iPhone. Điều này hoạt động thông qua Avahi (mDNS), giúp quảng bá vị trí của máy in tới toàn bộ mạng Wi-Fi.
Cài đặt Avahi
sudo apt install avahi-daemon -y
sudo systemctl enable --now avahi-daemon
CUPS bắt đầu quảng bá máy in ngay khi Avahi hoạt động. Người dùng iPhone trong cùng lớp mạng sẽ tự động thấy ‘Office_LaserJet’ trong menu in ấn. Chỉ riêng tính năng này đã giúp giảm khoảng 40% các yêu cầu hỗ trợ kỹ thuật về ‘lỗi máy in’ của tôi.
Thiết lập định mức in ấn
Trong không gian chung, một người có thể dễ dàng dùng hết cả hộp mực cho dự án cá nhân. CUPS cho phép bạn thiết lập giới hạn cứng cho từng người dùng:
lpadmin -p Office_LaserJet -o job-quota-period=604800 -o job-page-limit=150
Lệnh cụ thể này giới hạn người dùng chỉ được in 150 trang mỗi bảy ngày.
Bài học sau 6 tháng vận hành thực tế
Quản lý hệ thống này đã dạy tôi một vài điều mà tài liệu hướng dẫn thường bỏ qua. Những mẹo này cùng kỹ năng phân tích log Linux sẽ giúp bạn tiết kiệm hàng giờ gỡ lỗi:
- Cố định IP: Sử dụng địa chỉ IP tĩnh. Nếu bộ định tuyến (router) cấp lại IP khác cho máy chủ qua DHCP, mọi máy tính trong văn phòng sẽ mất kết nối với máy in.
- Luôn cập nhật Ghostscript: CUPS sử dụng Ghostscript để kết xuất (render) các tệp PDF phức tạp. Nếu bản in bị lỗi hiển thị hoặc thiếu font chữ, lệnh
sudo apt upgrade ghostscriptthường sẽ giải quyết được vấn đề. - Theo dõi Log: Nếu một lệnh in biến mất, đừng đoán mò. Hãy kiểm tra
/var/log/cups/error_log. Hầu hết các lỗi bắt nguồn từ vấn đề phân quyền trong thư mục/var/spool/cups. - Driver chung (Generic) vẫn tốt: Nếu bạn không tìm thấy driver cụ thể, các tùy chọn ‘Generic PCL’ hoặc ‘Generic PostScript’ hoạt động tốt cho khoảng 9 trên 10 máy in văn phòng.
- PDF là ưu tiên số một: Hãy khuyến khích mọi người in từ file PDF. Các tệp Word hoặc Excel thô đôi khi bị nhảy định dạng khi gửi qua mạng.
Xóa hàng đợi
Đôi khi một tệp bị hỏng sẽ làm đình trệ việc in ấn của cả văn phòng. Đừng khởi động lại máy chủ. Hãy sử dụng lệnh cancel để dọn sạch hệ thống:
# Xóa tất cả lệnh in cho một máy in cụ thể
cancel -a Office_LaserJet
# Xóa mọi lệnh in trên máy chủ
cancel -a
Máy chủ CUPS về cơ bản là một công cụ ‘thiết lập một lần rồi thôi’. Ngoài việc thỉnh thoảng xử lý kẹt giấy, phần mềm này vẫn là một trong những thành phần đáng tin cậy nhất trong mạng của tôi. Đây là một dự án xứng đáng giúp tiết kiệm chi phí và giữ cho những phần cứng vẫn còn tốt không bị đưa ra bãi rác.

