Tutorial ini akan menunjukkan kepada Anda cara berbagi printer yang terpasang ke komputer CentOS 8/RHEL 8 dengan klien Windows, macOS, dan iOS di jaringan yang sama. CUPS (Common Unix Printing System) adalah sistem pencetakan default di Linux, FreeBSD, dan macOS. Lingkungan desktop Linux Anda mungkin memiliki utilitas konfigurasi printer khusus, tetapi semuanya menggunakan CUPS di bawah tenda. Printer CUPS dapat digunakan bersama di jaringan menggunakan beberapa protokol, antara lain:
- Bonjour + IPP :Bonjour, juga dikenal sebagai mDNS/DNS-SD (penemuan layanan DNS/DNS multicast), memungkinkan komputer menemukan layanan di jaringan lokal. IPP (Internet Printing Protocol) adalah protokol transport.
- UKM :alias Samba, terutama digunakan untuk berbagi file dan printer dengan klien Windows.
- AirPrint :Mengizinkan klien iPhone, iPad, dan macOS untuk mencetak melalui Wi-Fi.
Setiap protokol memiliki kelebihan dan kekurangannya masing-masing. Pertama, saya akan menunjukkan cara menginstal dan mengkonfigurasi CUPS. Kemudian kita akan belajar cara berbagi printer CUPS melalui 3 protokol di atas. Sebaiknya gunakan ketiga metode tersebut untuk membagikan printer Anda, sehingga pengguna dapat menemukan printer yang tersedia di jaringan lokal dengan sedikit usaha.
Langkah 1:Instal dan Konfigurasi CUPS di CentOS 8/RHEL 8
Edisi desktop CentOS 8/RHEL 8 memiliki CUPS yang sudah diinstal sebelumnya. Jika Anda menggunakan edisi server CentOS 8/RHEL 8, Anda perlu menjalankan perintah berikut untuk menginstal CUPS dari repositori default CentOS 8/RHEL 8.
sudo dnf install cups
Kemudian mulai CUPS.
sudo systemctl start cups
Aktifkan mulai otomatis saat boot.
sudo systemctl enable cups
Periksa statusnya:
systemctl status cups
Contoh keluaran:
Selanjutnya, edit file konfigurasi utama CUPS dengan editor teks baris perintah seperti Nano.
sudo nano /etc/cups/cupsd.conf
Secara default, antarmuka web CUPS hanya tersedia di localhost:631
. Jika Anda menjalankan edisi server CentOS 8/RHEL 8, Anda mungkin ingin membuat CUPS mendengarkan di semua antarmuka jaringan yang tersedia, sehingga Anda akan dapat mengakses antarmuka web CUPS dari komputer lain. Temukan baris berikut.
Listen localhost:631
Ubah ke berikut, Jadi CUPS akan mendengarkan di semua antarmuka jaringan.
Port 631
Baris berikut akan membuat CUPS menampilkan printer bersama di jaringan lokal, sehingga komputer lain di jaringan yang sama dapat melihat printer yang terhubung ke komputer CentOS 8/RHEL 8 Anda.
Browsing On
Kemudian temukan baris berikut.
<Location /> Order allow,deny </Location>
Konfigurasi di atas hanya mengizinkan akses ke antarmuka web CUPS dari localhost. Untuk mengizinkan akses dari komputer lain di jaringan yang sama, tambahkan Allow @LOCAL
ke konfigurasi seperti di bawah ini.
<Location /> Order allow,deny Allow @LOCAL </Location>
Jika Anda ingin mengizinkan administrasi jarak jauh dari jaringan lokal, tambahkan juga untuk /admin
direktori.
<Location /admin> Order allow,deny Allow @LOCAL </Location>
Simpan dan tutup file. Kemudian mulai ulang CUPS agar perubahan diterapkan.
sudo systemctl restart cups
Kami perlu mengizinkan klien di jaringan yang sama untuk mengakses port 631 di komputer CentOS 8/RHEL 8 Anda.
sudo firewall-cmd --permanent --add-port=631/tcp
Muat ulang firewall agar perubahan diterapkan.
sudo systemctl reload firewalld
Selain cups.service
utama , ada juga cups-browsed.service
, yang digunakan untuk memindai dan menambahkan printer dari jaringan lokal. Jika Anda ingin komputer CentOS 8/RHEL 8 Anda dapat menggunakan printer lain di jaringan lokal, mulai layanan ini.
sudo systemctl start cups-browsed
Dan aktifkan mulai otomatis saat boot.
sudo systemctl enable cups-browsed
Langkah 2:Instal Driver untuk Printer Anda di CentOS 8/RHEL 8
Anda perlu menginstal driver pada CentOS 8/RHEL 8, sehingga dapat mengenali dan menggunakan printer. Jika Anda memiliki printer HP, Anda dapat menginstal driver dengan mudah dengan perintah berikut.
sudo dnf install hplip
Saya juga merekomendasikan menginstal gutenprint-cups
paket, yang menyediakan driver CUPS untuk Canon, Epson, HP, dan printer yang kompatibel.
sudo dnf install gutenprint-cups
Jika Anda memiliki printer lain, Anda dapat menemukan driver di openprinting.org.
Setelah menginstal driver, Anda mungkin perlu menghubungkan kembali printer ke port USB komputer CentOS 8/RHEL 8 Anda. Untuk menguji apakah driver berfungsi dengan benar, Anda dapat membuat file teks di CentOS 8/RHEL 8:
echo "LinuxBabe is awesome!" > file.txt
Kemudian jalankan perintah berikut untuk mencetak file teks ini dari baris perintah.
lp file.txt
Ini adalah metode yang sangat sederhana, jadi jangan khawatir tentang kualitas pencetakan sekarang.
Langkah 3:Bagikan Printer CUPS melalui Bonjour/IPP Protocol
Menginstal Avahi-daemon
CUPS dapat mengumumkan kehadirannya di jaringan melalui protokol mDNS (multicast DNS) dan DNS-SD (DNS Service Discovery), yang juga dikenal sebagai Bonjour. Untuk melakukannya, Anda perlu menginstal dan menjalankan avahi-daemon
, yang merupakan layanan serupa dengan layanan Apple Bonjour yang memungkinkan komputer menemukan perangkat dan layanan bersama secara otomatis di jaringan lokal.
sudo dnf install avahi
Kita juga perlu menginstal nss-mdns
paket dari repositori EPEL, yang diperlukan klien untuk menyelesaikan .local
domain di jaringan.
sudo dnf install epel-release sudo dnf install nss-mdns
Mulai avahi-daemon.
sudo systemctl start avahi-daemon
Aktifkan mulai otomatis saat boot.
sudo systemctl enable avahi-daemon
Avahi-daemon mendengarkan pada port UDP 5353. Buka di firewall.
sudo firewall-cmd --permanent --add-port=5353/udp
Muat ulang firewall agar perubahan diterapkan.
sudo systemctl reload firewalld
Pencetakan Tanpa Pengemudi IPP
Bonjour digunakan untuk mengiklankan printer di jaringan lokal. Untuk membuat klien dan server CUPS saling berkomunikasi, diperlukan IPP (Internet Printing Protocol). Keuntungan IPP adalah klien dapat menggunakan printer bersama tanpa menginstal driver apa pun di perangkat mereka sendiri. CUPS mendukung IPP, jadi Anda tidak perlu melakukan hal lain untuk membagikan printer CUPS melalui IPP.
Langkah 4:Tambahkan Printer pada Komputer Klien
Klien macOS dan Linux
Karena macOS dan sebagian besar distribusi desktop Linux memiliki CUPS yang diinstal sebagai sistem pencetakan default, setelah Anda mengaktifkan berbagi printer melalui Bonjour/IPP pada kotak CentOS 8/RHEL 8, pengguna macOS dan Linux di jaringan yang sama dapat menggunakan printer secara otomatis. Ketika mereka mengklik opsi cetak dalam aplikasi (pengolah kata, pembaca email, editor foto, dan browser web), printer akan tersedia secara otomatis. Mereka tidak harus secara eksplisit menambahkan printer. Ini ajaib.
Jika komputer Linux Anda tidak dapat menemukan printer, mungkin sistem Anda tidak memiliki ippfind
memerintah. Jalankan perintah berikut untuk menginstalnya pada distribusi Linux berbasis Debian.
sudo apt install cups-ipp-utils
Pada CentOS 8, jalankan perintah berikut.
sudo dnf install cups-ipptool
Kemudian restart CUPS di komputer klien.
sudo systemctl restart cups
Windows
Windows 10 dikirimkan dengan klien IPP. Ketik printer di bilah pencarian kiri bawah dan buka Printers &Scanners . Kemudian klik Tambahkan printer atau pemindai tombol. Ini akan memindai printer yang tersedia di jaringan lokal.
Seperti yang Anda lihat, ia menemukan printer HP Deskjet saya. Pilih printer yang ditemukan dan klik Tambahkan perangkat . Ini akan ditambahkan ke daftar printer dalam beberapa saat.
Jika Anda menggunakan versi Windows yang berbeda yang tidak dapat menambahkan printer dengan cara ini, maka Anda dapat menginstal layanan Bonjour Print. Setelah terinstal, luncurkan wizard printer Bonjour. Ini akan secara otomatis memindai printer yang tersedia di jaringan lokal. Seperti yang Anda lihat dari tangkapan layar, ia menemukan printer HP saya.
Klik next, maka Anda harus memilih driver untuk printer ini. Anda dapat memilih driver kelas Microsoft IPP, yang diinstal pada sistem secara default.
Klik Berikutnya, dan printer akan ditambahkan ke sistem Windows Anda.
Menambahkan Printer Secara Manual di Linux
Jika karena alasan apa pun Anda tidak melihat printer, Anda dapat menambahkannya secara manual. Untuk menambahkan printer bersama Bonjour di desktop Linux, cari pengaturan sistem Anda atau menu aplikasi untuk utilitas konfigurasi printer. Klik tombol Tambah tombol untuk menambahkan printer baru.
Kemudian klik Network Printer, dan secara otomatis akan memindai printer yang tersedia di jaringan lokal. Seperti yang Anda lihat, ia menemukan printer HP Deskjet saya. Klik tombol Teruskan tombol.
Kemudian Anda dapat memberi nama dan deskripsi pada printer. Saya hanya menerima nilai default. Klik Terapkan dan selesai.
Menambahkan Printer Secara Manual di macOS
Untuk menambahkan printer bersama Bonjour di macOS, buka preferensi sistem -> Printer &Pemindai . Klik tombol plus (+) untuk menambahkan printer.
Ini akan secara otomatis memindai printer yang tersedia di jaringan lokal. Seperti yang Anda lihat, ia menemukan printer HP Deskjet saya.
Klik tombol Tambah tombol dan itu akan muncul di daftar printer.
Langkah 5:Bagikan Printer CUPS melalui Samba
Samba adalah implementasi protokol SMB/CIFS sumber terbuka dan gratis untuk Unix dan Linux yang memungkinkan berbagi file dan cetak antara mesin Unix/Linux dan Windows di jaringan area lokal. Ini terutama digunakan untuk berbagi file dan printer dengan klien Windows.
Untuk menginstal Samba di CentOS 8/RHEL 8, jalankan perintah berikut.
sudo dnf install samba
Kemudian jalankan perintah berikut untuk memulai smbd
dan nmbd
layanan.
sudo systemctl start smb nmb
Aktifkan mulai otomatis saat boot.
sudo systemctl enable smb nmb
Untuk memeriksa apakah layanan Samba berjalan, jalankan perintah berikut.
systemctl status smb nmb
Setelah dimulai, smb
daemon akan mendengarkan pada port TCP 139 dan 445. nmbd
akan mendengarkan pada port UDP 137 dan 138. Jalankan perintah berikut untuk membuka port ini di firewall.
sudo firewall-cmd --permanent --add-service=samba
Muat ulang daemon firwall untuk mengubah efeknya.
sudo systemctl reload firewalld
Kemudian edit file konfigurasi utama.
sudo nano /etc/samba/smb.conf
Temukan [printers]
bagian. Secara default, tampilannya seperti ini:
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No
Kita perlu mengubah nilai browseable
untuk yes
, sehingga klien di jaringan yang sama dapat menemukan printer dan menambahkan guest ok = yes
untuk mengizinkan siapa pun di jaringan menggunakan printer.
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = yes guest ok = yes
Disarankan untuk mengaktifkan spoolssd
layanan saat berbagi printer. Ini akan membuat Samba lebih efisien ketika ada banyak pekerjaan pencetakan. Cukup tambahkan dua baris berikut di [global]
bagian untuk mengaktifkan spoolssd
layanan.
rpc_server:spoolss = external rpc_daemon:spoolssd = fork
Simpan dan tutup file. Kemudian mulai ulang Samba.
sudo systemctl restart smb nmb
Menambahkan Printer Samba-shared di Windows.
Buka file explorer, masukkan alamat IP komputer CentOS 8/RHEL 8 di address bar seperti \\192.168.0.110
. Printer sekarang harus terdaftar.
Klik dua kali printer untuk menambahkannya ke sistem Windows Anda. Kemudian klik tombol OK untuk memilih driver yang akan diinstal. Setelah menginstal driver, printer akan ditambahkan ke sistem Windows Anda.
Langkah 6:Bagikan Printer CUPS dengan Klien iOS melalui AirPrint
AirPrint memungkinkan klien iPhone, iPad, dan macOS untuk mencetak melalui Wi-Fi tanpa menginstal perangkat lunak driver pada perangkat klien. CUPS mendukung Airprint, tetapi avahi-daemon
secara default tidak mengumumkan layanan AirPrint di jaringan lokal. Kita perlu membuat .service
file di /etc/avahi/services/
direktori untuk printer dengan skrip Python. Jalankan perintah berikut untuk mengunduh skrip di CentOS 8/RHEL 8.
wget https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
Tambahkan izin eksekusi.
chmod +x airprint-generate.py
Skrip python ini dibuat untuk Python2. CentOS 8/RHEL 8 menggunakan Python3 secara default. Kita perlu menginstal Python2.
sudo dnf install python2
Edit file ini.
nano airprint-generate.py
Ubah
#!/usr/bin/env python
untuk
#!/usr/bin/env python2
Simpan dan tutup file. Kemudian instal dependensi.
sudo dnf install gcc python2-devel cups-devel redhat-rpm-config
Pasang modul cangkir.
sudo pip2 install cups pycups
Kemudian jalankan skrip ini.
sudo ./airprint-generate.py -d /etc/avahi/services/
Sekarang seharusnya ada .service
file di bawah /etc/avahi/services/
direktori untuk printer Anda.
ls /etc/avahi/services/
Contoh keluaran:
AirPrint-DeskJet-2130-series.service
Mulai ulang Avahi-daemon.
sudo systemctl restart avahi-daemon
Sekarang klien iOS dan macOS di jaringan yang sama seharusnya dapat menggunakan printer Anda. Tangkapan layar berikut menunjukkan iPhone saya berhasil menemukan Printer AirPrint.