Linux: CUPS Yazdırma Sunucusunu Kurun (Bonjour, IPP, Samba, AirPrint)

Bu eğitim, bir Ubuntu bilgisayara bağlı bir yazıcıyı aynı ağdaki Windows, macOS ve iOS istemcileriyle nasıl paylaşacağınızı gösterecektir. CUPS (Ortak Unix Yazdırma Sistemi), Linux, FreeBSD ve macOS’ta varsayılan yazdırma sistemidir. Linux masaüstü ortamınızda özel bir yazıcı yapılandırma yardımcı programı olabilir, ancak hepsi kaputun altında CUPS kullanır.CUPS printer can be shared on the network using several protocols, including:

  • Bonjour + IPP: mDNS/DNS-SD (çok noktaya yayın DNS/DNS hizmeti keşfi) olarak da bilinen Bonjour, bir bilgisayarın yerel ağdaki hizmetleri bulmasına olanak tanır. IPP (İnternet Yazdırma Protokolü), aktarım protokolüdür.
  • SMB: diğer adıyla Samba, esas olarak dosyaları ve yazıcıları Windows istemcileriyle paylaşmak için kullanılır.
  • AirPrint: iPhone, iPad ve macOS istemcilerinin Wi-Fi üzerinden yazdırmasına izin verir.

Her protokolün avantajları ve dezavantajları vardır. İlk olarak, size CUPS’u nasıl kuracağınızı ve yapılandıracağınızı göstereceğim. Ardından CUPS yazıcısını yukarıdaki 3 protokol aracılığıyla nasıl paylaşacağımızı öğreneceğiz. Yazıcınızı paylaşmak için 3 yöntemi de kullanmanızı öneririm, böylece kullanıcılar yerel ağda minimum çabayla uygun bir yazıcı bulabilirler.

 

1. Adım: CUPS’u Ubuntu’ya Kurun ve Yapılandırın

Ubuntu masaüstü sürümünde CUPS önceden yüklenmiştir. Ubuntu sunucu sürümünü kullanıyorsanız, CUPS’u varsayılan Ubuntu deposundan yüklemek için aşağıdaki komutu çalıştırmanız gerekir.

sudo apt install cups

Ardından CUPS’a başlayın.

sudo systemctl start cups

Önyükleme sırasında otomatik başlatmayı etkinleştirin.

sudo systemctl enable cups

Durumunu kontrol edin:

systemctl status cups

Örnek çıktı:

cups printing system ubuntu

Ardından, CUPS ana yapılandırma dosyasını Nano gibi bir komut satırı metin düzenleyicisiyle düzenleyin.

sudo nano /etc/cups/cupsd.conf

Öncelikle yerel ağdaki paylaşılan yazıcıları göstermemiz gerekiyor. Aşağıdaki satırı bulun.

Browsing Off

Olarak değiştirin

Browsing On

böylece aynı ağdaki diğer bilgisayarlar Ubuntu bilgisayarınıza bağlı yazıcıları görebilir.

Varsayılan olarak, CUPS web arayüzü yalnızca localhost:631’de mevcuttur. Ubuntu sunucu sürümünü çalıştırıyorsanız, CUPS’un mevcut tüm ağ arayüzlerinde dinlemesini de isteyebilirsiniz, böylece CUPS web arayüzüne diğer bilgisayarlardan erişebilirsiniz. Aşağıdaki satırı bulun.

Listen localhost:631

Olarak değiştirin

Port 631

Böylece CUPS tüm ağ arayüzlerini dinleyecektir. Ardından aşağıdaki satırları bulun.

<Location />
  Order allow,deny
</Location>

Yukarıdaki yapılandırma, CUPS web arayüzüne yalnızca localhost’tan erişime izin verir. Aynı ağdaki diğer bilgisayarlardan erişime izin vermek için aşağıdaki gibi yapılandırmaya Allow @LOCAL ekleyin.

<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

Ayrıca, yerel ağdan uzaktan yönetime izin vermek için /admin dizinine ekleyin.

<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>

Belirli bir IP adresine şu şekilde de izin verebilirsiniz:

<Location />
  Order allow,deny
  Allow 192.168.0.101
</Location>

Dosyayı kaydedin ve kapatın. Ardından, değişikliklerin etkili olması için CUPS’u yeniden başlatın.

sudo systemctl restart cups

Ubuntu’da UFW güvenlik duvarını etkinleştirdiyseniz, aynı ağdaki istemcilerin Ubuntu kutunuzdaki 631 numaralı bağlantı noktasına erişmesine izin vermeniz gerektiğini unutmayın. Örneğin, özel ağım 192.168.0.0 ~192.168.0.255 ağ aralığını kullanıyor, bu yüzden aşağıdaki komutu çalıştırıyorum.

sudo ufw allow in from 192.168.0.0/24 to any port 631

CUPS web arayüzü https://IP-address-of-Ubuntu-box:631’da mevcuttur. Bu yazıda web arayüzünü kullanmamıza gerek yok ancak kullanmak istiyorsanız CUPS web arayüzünde değişiklik yapabilmek için kullanıcı hesabınızı lpadmin grubuna eklemeniz gerekiyor.

sudo adduser your_username lpadmin

2. Adım: Yazıcınızın Sürücüsünü Ubuntu’ya Yükleyin

Yazıcıyı tanıyabilmesi ve kullanabilmesi için sürücüyü Ubuntu’ya yüklemeniz gerekir. Bir HP yazıcınız varsa, sürücüyü aşağıdaki komutla kolayca yükleyebilirsiniz.

sudo apt install hplip

Ayrıca Canon, Epson, HP ve uyumlu yazıcılar için CUPS sürücüleri sağlayan yazıcı-sürücü-gutenprint paketini yüklemenizi öneririm.

sudo apt install printer-driver-gutenprint

Başka yazıcılarınız varsa, sürücüleri openprinting.org‘de bulabilirsiniz.

Sürücüyü yükledikten sonra, yazıcıyı Ubuntu bilgisayarınızın USB bağlantı noktasına yeniden bağlamanız gerekebilir. Sürücünün düzgün çalışıp çalışmadığını test etmek için Ubuntu’da bir metin dosyası oluşturabilirsiniz:

echo "LinuxBabe is awesome!" > file.txt

Ardından bu metin dosyasını komut satırından yazdırmak için aşağıdaki komutu çalıştırın.

lp file.txt

Bu çok ilkel bir yöntemdir, bu nedenle artık baskı kalitesi konusunda endişelenmeyin.

3. Adım: CUPS Yazıcısını Bonjour/IPP Protokolü ile Paylaşın

Avahi-daemon’u yükleme

CUPS, ağdaki varlığını mDNS (çok noktaya yayın DNS) ve Bonjour olarak da bilinen DNS-SD (DNS Service Discovery) protokolü aracılığıyla duyurabilir. Bunu yapmak için, bilgisayarların yerel ağdaki paylaşılan cihazları ve hizmetleri otomatik olarak keşfetmesini sağlayan Apple Bonjour hizmetine benzer bir hizmet olan avahi-daemon’u kurmanız ve çalıştırmanız gerekir.

sudo apt install avahi-daemon

avahi-daemon’u başlatın.

sudo systemctl start avahi-daemon

Önyükleme sırasında otomatik başlatmayı etkinleştirin.

sudo systemctl enable avahi-daemon

Avahi-daemon, UDP bağlantı noktası 5353’ü dinler. Güvenlik duvarında açın.

sudo ufw allow 5353/udp

IPP Sürücüsüz Yazdırma

Bonjour, yazıcının yerel ağda reklamını yapmak için kullanılır. İstemcilerin ve CUPS sunucusunun birbiriyle iletişim kurmasını sağlamak için IPP’ye (İnternet Yazdırma Protokolü) ihtiyaç vardır. IPP’nin avantajı, istemcilerin kendi cihazlarına herhangi bir sürücü yüklemeden paylaşılan yazıcıyı kullanabilmeleridir. CUPS, kutudan çıktığı haliyle IPP’yi destekler, bu nedenle CUPS yazıcıyı IPP aracılığıyla paylaşmak için başka bir şey yapmanıza gerek yoktur.

4. Adım: İstemci Bilgisayarlara Yazıcı Ekleyin

macOS ve Linux İstemcileri

macOS ve çoğu Linux masaüstü dağıtımında varsayılan yazdırma sistemi olarak CUPS yüklü olduğundan, Ubuntu kutusunda Bonjour/IPP aracılığıyla yazıcı paylaşımını etkinleştirdikten sonra, aynı ağdaki macOS ve Linux kullanıcıları yazıcıyı otomatik olarak kullanabilir. Uygulamalarda (kelime işlemciler, e-posta okuyucular, fotoğraf düzenleyiciler ve web tarayıcıları) yazdırma seçeneğine tıkladıklarında, yazıcı otomatik olarak kullanılabilir olacaktır. Yazıcıyı açıkça eklemeleri gerekmez. Bu sihir.

Linux bilgisayarınız yazıcıyı bulamıyorsa, sisteminizde ippfind komutu olmayabilir. Debian tabanlı Linux dağıtımına kurmak için aşağıdaki komutu çalıştırın.

sudo apt install cups-ipp-utils

CentOS 8’de aşağıdaki komutu çalıştırın.

sudo dnf install cups-ipptool

Ardından istemci bilgisayarda CUPS’u yeniden başlatın.

sudo systemctl restart cups

Windows

Windows 10, bir IPP istemcisi ile birlikte gelir. Sol alt arama çubuğuna yazıcı yazın ve Yazıcılar & Tarayıcılar’ı açın. Ardından Yazıcı veya tarayıcı ekle düğmesini tıklayın. Yerel ağdaki mevcut yazıcıları tarayacaktır.

windows 10 printers & scanners

Gördüğünüz gibi HP Deskjet yazıcımı buldu. Bulunan yazıcıyı seçin ve Cihaz ekle’ye tıklayın. Birkaç dakika içinde yazıcı listesine eklenecektir.

add-printers-scanners-windows10-ipp

Bu şekilde yazıcı ekleyemeyen farklı bir Windows sürümü kullanıyorsanız, Bonjour Print hizmetlerini yükleyebilirsiniz. Kurulduktan sonra Bonjour yazıcı sihirbazını başlatın. Yerel ağdaki mevcut yazıcıları otomatik olarak tarar. Ekran görüntüsünden de görebileceğiniz gibi, HP yazıcımı buldu.

add-bonjour-shared-printer-on-windows

İleri’ye tıklayın, ardından bu yazıcı için bir sürücü seçmeniz gerekir. Varsayılan olarak sistemde yüklü olan Microsoft IPP sınıfı sürücüsünü seçebilirsiniz.

bonjour microsoft ipp class driver

İleri’ye tıkladığınızda yazıcı Windows sisteminize eklenecektir.

Linux’ta Yazıcıyı Manuel Olarak Ekleme

Herhangi bir nedenle yazıcıyı göremiyorsanız, manuel olarak bir tane ekleyebilirsiniz. Masaüstü Linux’ta Bonjour paylaşımlı bir yazıcı eklemek için, sistem ayarlarınızda veya uygulama menüsünde yazıcı yapılandırma yardımcı programını arayın. Yeni bir yazıcı eklemek için Ekle düğmesini tıklatın.

add cups printer on linux

Ardından Ağ Yazıcısı’na tıkladığınızda yerel ağdaki mevcut yazıcılar otomatik olarak taranır. Gördüğünüz gibi HP Deskjet yazıcımı buldu. İleri düğmesini tıklatın.

cups ubuntu dnssd

Ardından yazıcıya bir ad ve açıklama verebilirsiniz. Sadece varsayılan değerleri kabul ediyorum. Uygula’ya tıklayın ve işiniz bitti.

ubuntu-cups-printer-mdns-dnssd

macOS’ta Yazıcıyı Manuel Olarak Ekleme

macOS’ta bir Bonjour paylaşımlı yazıcı eklemek için, sistem tercihleri -> Yazıcılar & Tarayıcılar’a gidin. Yazıcı eklemek için artı (+) düğmesine tıklayın.

add a bonjour printer on macOS

Yerel ağdaki mevcut yazıcıları otomatik olarak tarar. Gördüğünüz gibi HP Deskjet yazıcımı buldu.

macos bonjour shared printer

Ekle düğmesine tıkladığınızda yazıcı listesinde görünecektir.

macOS-printers-scanners-list

Adım 5: CUPS Yazıcısını Samba ile paylaşın

Samba, Unix ve Linux için yerel alan ağındaki Unix/Linux ve Windows makineleri arasında dosya ve baskı paylaşımına izin veren ücretsiz ve açık kaynaklı bir SMB/CIFS protokolü uygulamasıdır. Esas olarak dosyaları ve yazıcıyı Windows istemcileriyle paylaşmak için kullanılır.

Samba’yı Ubuntu’ya kurmak için terminalde aşağıdaki komutu çalıştırmanız yeterlidir.

sudo apt install samba samba-common-bin

Samba hizmetinin çalışıp çalışmadığını kontrol etmek için aşağıdaki komutları verin.

systemctl status smbd

systemctl status nmbd

Bu iki hizmeti başlatmak için aşağıdaki komutları verin:

sudo systemctl start smbd

sudo systemctl start nmbd

Ardından ana yapılandırma dosyasını düzenleyin.

sudo nano /etc/samba/smb.conf

Yazıcıyı paylaşırken spoolssd hizmetini etkinleştirmeniz önerilir. Bu, çok sayıda yazdırma işi olduğunda Samba’yı daha verimli hale getirecektir. Spoolssd hizmetini etkinleştirmek için [global] bölümüne aşağıdaki iki satırı eklemeniz yeterlidir.

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

Ardından, dosyanın sonuna gidin ve [yazıcılar] bölümünü göreceksiniz. Nano metin düzenleyicisinde, Ctrl+W tuşlarına ve ardından Ctrl+V tuşlarına basarak bir dosyanın sonuna atlayabilirsiniz. Aşağıdaki iki satırı bulun.

browseable = no
guest ok = no

Onları şu şekilde değiştirin

browseable = yes
guest ok = yes

Dosyayı kaydedin ve kapatın. Ardından Samba’yı yeniden başlatın.

sudo systemctl restart smbd nmbd

Windows’ta Samba paylaşımlı Yazıcı ekleme.

Open file explorer, enter the IP address of the Ubuntu computer in the address bar like \\192.168.0.110. The printer should now be listed.

add samba-shared printer on Windows 10

Yazıcıyı Windows sisteminize eklemek için çift tıklatın. Ardından, yüklenecek bir sürücü seçmek için Tamam düğmesine tıklayın. Sürücüyü yükledikten sonra yazıcı Windows sisteminize eklenecektir.

windows add printer wizard

Adım 6: CUPS Yazıcısını AirPrint aracılığıyla iOS İstemcileriyle Paylaşın

AirPrint, iPhone, iPad ve macOS istemcilerinin istemci aygıtlara sürücü yazılımı yüklemeden Wi-Fi üzerinden yazdırmasına olanak tanır. CUPS Airprint’i destekler, ancak avahi-daemon varsayılan olarak yerel ağda AirPrint hizmetini duyurmaz. Bir tane yaratmamız gerekiyor .aşağıdaki komutu içeren bir Python betiğine sahip yazıcı için /etc/avahi/services/ dizinindeki hizmet dosyası. Yazıcımın modeli DeskJet 2130 serisi. Kendi model adınızla değiştirin.

sudo nano /etc/avahi/services/AirPrint-DeskJet-2130-series.service

Dosyaya aşağıdaki satırları ekleyin.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">AirPrint DeskJet-2130-series @ %h</name>
  <service>
    <type>_ipp._tcp</type>
    <subtype>_universal._sub._ipp._tcp</subtype>
    <port>631</port>
    <txt-record>txtvers=1</txt-record>
    <txt-record>qtotal=1</txt-record>
    <txt-record>Transparent=T</txt-record>
    <txt-record>URF=none</txt-record>
    <txt-record>rp=printers/DeskJet-2130-series</txt-record>
    <txt-record>note=HP DeskJet 2130 series</txt-record>
    <txt-record>product=(GPL Ghostscript)</txt-record>
    <txt-record>printer-state=3</txt-record>
    <txt-record>printer-type=0x2900c</txt-record>
    <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-pdf</txt-record>
  </service>
</service-group>

Dosyayı kaydedin ve kapatın. Avahi-daemon’u yeniden başlatın.

sudo systemctl restart avahi-daemon

Artık aynı ağdaki iOS ve macOS istemcileri yazıcınızı kullanabilmelidir. Aşağıdaki ekran görüntüsü iphone’umun bir AirPrint Yazıcısını başarıyla bulduğunu gösteriyor.

ubuntu-cups-airprint

 

 

Yazının orijinalini buradan okuyabilirsiniz

Hüseyin GÜÇ

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım. Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum. Son 6 yıldır  sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum. Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.