个人工具

“UbuntuHelp:NetworkPrintingWithUbuntu”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
第17行: 第17行:
 
Printer sharing in Ubuntu 7.04 Feisty is very simple. It no longer requires manual editing of config files.  I will assume there is a working printer installed and printing on the Ubuntu computer that will be used as the print server.
 
Printer sharing in Ubuntu 7.04 Feisty is very simple. It no longer requires manual editing of config files.  I will assume there is a working printer installed and printing on the Ubuntu computer that will be used as the print server.
 
=== Ubuntu Print Server ===
 
=== Ubuntu Print Server ===
# On the server machine (the one the printer is attached to) open up printer manager with
+
* On the server machine (the one the printer is attached to) open up printer manager with
    <pre><nowiki>  
+
<pre><nowiki>  
 
sudo gnome-cups-manager  
 
sudo gnome-cups-manager  
    </nowiki></pre>
+
</nowiki></pre>
    or '''System->Administration->Printing'''.
+
or '''System->Administration->Printing'''.
# Under '''Global Settings''' click on the '''share printers'''.
+
* Under '''Global Settings''' click on the '''share printers'''.
  
 
=== Ubuntu Client Machine ===
 
=== Ubuntu Client Machine ===
 
Now on the client(s) open up the printer manager '''System->Administration->Printing''' and under the '''Global Settings''' check the '''Detect LAN Printers''' option.Then go to '''Printer->Add Printer''' check the '''Network Printer''' option and in the area marked '''URI''' write something like  
 
Now on the client(s) open up the printer manager '''System->Administration->Printing''' and under the '''Global Settings''' check the '''Detect LAN Printers''' option.Then go to '''Printer->Add Printer''' check the '''Network Printer''' option and in the area marked '''URI''' write something like  
ipp://192.168.0.1/printers/<name of printer>
+
ipp://192.168.0.1/printers/<name of printer>
 
where 192.168.0.1 is your servers ip address and <name of printer> is the name you gave the printer when you set  it up usually the model of the printer.Click '''Next''' and select the brand,model, and driver just like you did when setting up the printer on the server.Click '''Next''' and fill in the name and description like on the server's printer then click '''Next'''.
 
where 192.168.0.1 is your servers ip address and <name of printer> is the name you gave the printer when you set  it up usually the model of the printer.Click '''Next''' and select the brand,model, and driver just like you did when setting up the printer on the server.Click '''Next''' and fill in the name and description like on the server's printer then click '''Next'''.
 
There you should now have a networked printer.  
 
There you should now have a networked printer.  
  
 
=== WindowsXP Client Machine ===
 
=== WindowsXP Client Machine ===
# Open the Control Panel
+
* Open the Control Panel
# Click '''Printers and Faxes'''
+
* Click '''Printers and Faxes'''
# Click '''Add a Printer'''
+
* Click '''Add a Printer'''
# On the first page of the Add Printer Wizard, click '''Next'''
+
* On the first page of the Add Printer Wizard, click '''Next'''
# Choose '''Add a network Printer'''
+
* Choose '''Add a network Printer'''
# Choose '''Connect to a printer on the internet''' and type '''http://SERVER_NAME:631/printers/PRINTER_NAME''' in the text box and then click '''next'''
+
* Choose '''Connect to a printer on the internet''' and type '''http://SERVER_NAME:631/printers/PRINTER_NAME''' in the text box and then click '''next'''
# On the next screen, Choose the correct driver for your printer
+
* On the next screen, Choose the correct driver for your printer
# Click '''ok''' to finish
+
* Click '''ok''' to finish
# Right click the printer, choose '''properties''', and then try to '''print a test page'''
+
* Right click the printer, choose '''properties''', and then try to '''print a test page'''
  
 
== Ubuntu 6.10 ==
 
== Ubuntu 6.10 ==
第45行: 第45行:
 
=== Server Side ===
 
=== Server Side ===
 
First on the server machine (the one the printer is attached to) open up printer manager with
 
First on the server machine (the one the printer is attached to) open up printer manager with
gnome-cups-manager
+
gnome-cups-manager
 
or '''System->Administration->Printing'''.Under '''Global Settings''' click on the share printers.
 
or '''System->Administration->Printing'''.Under '''Global Settings''' click on the share printers.
 
Next we must edit the cups config file like this
 
Next we must edit the cups config file like this
sudo vim /etc/cups/cupsd.conf
+
sudo vim /etc/cups/cupsd.conf
 
You will probably see a section like this:
 
You will probably see a section like this:
<pre><nowiki>
+
<pre><nowiki>
# Only listen for connections from the local machine.
+
# Only listen for connections from the local machine.
Listen localhost:631
+
Listen localhost:631
Listen /var/run/cups/cups.sock
+
Listen /var/run/cups/cups.sock
</nowiki></pre>
+
</nowiki></pre>
  
 
Add this line to it:
 
Add this line to it:
Listen 192.168.0.1:631
+
Listen 192.168.0.1:631
 
Assuming 192.168.0.1 is your servers ip address.
 
Assuming 192.168.0.1 is your servers ip address.
 
Restart cups with  
 
Restart cups with  
sudo /etc/init.d/cupsys restart
+
sudo /etc/init.d/cupsys restart
  
 
=== Client Side ===
 
=== Client Side ===
 
Now on the client(s) open up the printer manager '''System->Administration->Printing''' and under the '''Global Settings''' check the '''Detect LAN Printers''' option.Then go to '''Printer->Add Printer''' check the '''Network Printer''' option and in the area marked '''URI''' write something like  
 
Now on the client(s) open up the printer manager '''System->Administration->Printing''' and under the '''Global Settings''' check the '''Detect LAN Printers''' option.Then go to '''Printer->Add Printer''' check the '''Network Printer''' option and in the area marked '''URI''' write something like  
ipp://192.168.0.1/printers/<name of printer>
+
ipp://192.168.0.1/printers/<name of printer>
 
where 192.168.0.1 is your servers ip address and <name of printer> is the name you gave the printer when you set  it up usually the model of the printer.Click '''Next''' and select the brand,model, and driver just like you did when setting up the printer on the server.Click '''Next''' and fill in the name and description like on the server's printer then click '''Next'''.
 
where 192.168.0.1 is your servers ip address and <name of printer> is the name you gave the printer when you set  it up usually the model of the printer.Click '''Next''' and select the brand,model, and driver just like you did when setting up the printer on the server.Click '''Next''' and fill in the name and description like on the server's printer then click '''Next'''.
 
There you should now have a networked printer.  
 
There you should now have a networked printer.  
第71行: 第71行:
 
== Ubuntu 5.10 ==
 
== Ubuntu 5.10 ==
  
... print from one Ubuntu desktop ("client") machine to another Ubuntu ("print server") machine that has a printer connected to it.
+
... print from one Ubuntu desktop ("client") machine to another Ubuntu ("print server") machine that has a printer connected to it.
  
 
''Currently, with Ubuntu 5.10 (Breezy Badger) you need to make changes with an editor to the CUPS configuration file /etc/cups/cupsd.conf for network printing to work. The following are complete working replacement examples that work for a Print Server and for a Client Machine.
 
''Currently, with Ubuntu 5.10 (Breezy Badger) you need to make changes with an editor to the CUPS configuration file /etc/cups/cupsd.conf for network printing to work. The following are complete working replacement examples that work for a Print Server and for a Client Machine.
  
 
=== Ubuntu Print Server ===
 
=== Ubuntu Print Server ===
  This is the machine that has a printer attached to it, that you want to send print jobs to.
+
This is the machine that has a printer attached to it, that you want to send print jobs to.
## '''Add a local printer definition''', using the Printer Admin utility (Gnome menu System -> Administration -> Printing).
+
** '''Add a local printer definition''', using the Printer Admin utility (Gnome menu System -> Administration -> Printing).
  
## '''Reconfigure the CUPS server'''
+
** '''Reconfigure the CUPS server'''
    Cups Server: /etc/cups/cupsd.conf
+
Cups Server: /etc/cups/cupsd.conf
  
    This file is based on that supplied with Ubuntu 5.10. Comment lines have been removed. Copy it onto your system.
+
This file is based on that supplied with Ubuntu 5.10. Comment lines have been removed. Copy it onto your system.
    <pre><nowiki>
+
<pre><nowiki>
    # /etc/cups/cupsd.conf
+
# /etc/cups/cupsd.conf
    # Simple CUPS configuration file for a print server
+
# Simple CUPS configuration file for a print server
    # which serves printers within a private local area network.
+
# which serves printers within a private local area network.
    # - There is no need for additional security within the print server, ie only authorises people can access the machine.
+
# - There is no need for additional security within the print server, ie only authorises people can access the machine.
   
+
 
    # This setup also allows access to the CUPS "Administrative tasks" system
+
# This setup also allows access to the CUPS "Administrative tasks" system
    # via your web browser to http://localhost:631
+
# via your web browser to http://localhost:631
    # File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386)
+
# File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386)
    # Server Directives are explained in http://localhost:631/sam.html
+
# Server Directives are explained in http://localhost:631/sam.html
   
+
 
    # 25/04/2006
+
# 25/04/2006
+
   
+
 
    ConfigFilePerm 0600
+
ConfigFilePerm 0600
    LogLevel info
+
LogLevel info
    Printcap /var/run/cups/printcap
+
Printcap /var/run/cups/printcap
    RunAsUser Yes
+
RunAsUser Yes
    Port 631
+
Port 631
    Include cupsd-browsing.conf
+
Include cupsd-browsing.conf
    BrowseAddress @LOCAL
+
BrowseAddress @LOCAL
    BrowseAddress 10.0.0.0/8
+
BrowseAddress 10.0.0.0/8
    BrowseAddress 172.16.0.0/12
+
BrowseAddress 172.16.0.0/12
    BrowseAddress 192.168.0.0/16
+
BrowseAddress 192.168.0.0/16
   
+
 
    <Location />
+
<Location />
    AuthType None
+
AuthType None
    Order Deny,Allow
+
Order Deny,Allow
    Deny From All
+
Deny From All
    Allow From @LOCAL
+
Allow From @LOCAL
    Allow From 10.0.0.0/8
+
Allow From 10.0.0.0/8
    Allow From 172.16.0.0/12
+
Allow From 172.16.0.0/12
    Allow From 192.168.0.0/16
+
Allow From 192.168.0.0/16
    </Location>
+
</Location>
   
+
 
    <Location /jobs>
+
<Location /jobs>
    AuthType None
+
AuthType None
    Order Deny,Allow
+
Order Deny,Allow
    Deny From All
+
Deny From All
    Allow From @LOCAL
+
Allow From @LOCAL
    Allow From 10.0.0.0/8
+
Allow From 10.0.0.0/8
    Allow From 172.16.0.0/12
+
Allow From 172.16.0.0/12
    Allow From 192.168.0.0/16
+
Allow From 192.168.0.0/16
    </Location>
+
</Location>
   
+
 
    <Location /printers>
+
<Location /printers>
    AuthType None
+
AuthType None
    Order Deny,Allow
+
Order Deny,Allow
    Deny From All
+
Deny From All
    Allow From @LOCAL
+
Allow From @LOCAL
    Allow From 10.0.0.0/8
+
Allow From 10.0.0.0/8
    Allow From 172.16.0.0/12
+
Allow From 172.16.0.0/12
    Allow From 192.168.0.0/16
+
Allow From 192.168.0.0/16
    </Location>
+
</Location>
   
+
 
    <Location /admin>
+
<Location /admin>
    AuthType None
+
AuthType None
    Order Deny,Allow
+
Order Deny,Allow
    Deny From All
+
Deny From All
    Allow From @LOCAL
+
Allow From @LOCAL
    Allow From 10.0.0.0/8
+
Allow From 10.0.0.0/8
    Allow From 172.16.0.0/12
+
Allow From 172.16.0.0/12
    Allow From 192.168.0.0/16
+
Allow From 192.168.0.0/16
    </Location>
+
</Location>
    </nowiki></pre>
+
</nowiki></pre>
  
 
****** ''This config file should be altered if security within your local network is an issue for you.  E.g. if you use a poorly-secured wireless network, this could allow access to anyone nearby.''
 
****** ''This config file should be altered if security within your local network is an issue for you.  E.g. if you use a poorly-secured wireless network, this could allow access to anyone nearby.''
第153行: 第153行:
 
****** This config allows you to use a web browser to manage CUPS, eg set up printers, manage jobs, via "http://PRINTSERVERNAME:631/".
 
****** This config allows you to use a web browser to manage CUPS, eg set up printers, manage jobs, via "http://PRINTSERVERNAME:631/".
  
## '''Restart CUPS'''
+
** '''Restart CUPS'''
    After changing this file, restart CUPS by running ...
+
After changing this file, restart CUPS by running ...
      <pre><nowiki>
+
<pre><nowiki>
      sudo /etc/init.d/cupsys restart</nowiki></pre>
+
sudo /etc/init.d/cupsys restart</nowiki></pre>
    or use the '''Services''' tool under Gnome menu '''System -> Administration'''.
+
or use the '''Services''' tool under Gnome menu '''System -> Administration'''.
  
    After CUPS is restarted the printers will immediately be found automatically by machines that are set up as per the next sections.
+
After CUPS is restarted the printers will immediately be found automatically by machines that are set up as per the next sections.
  
 
=== Ubuntu Client Machine ===
 
=== Ubuntu Client Machine ===
    This is the machine you want to work on and send print jobs from.
+
This is the machine you want to work on and send print jobs from.
 +
 
 +
** '''Reconfigure CUPS'''
 +
CUPS Client: /etc/cups/cupsd.conf
 +
Use the following file. Its features are contained in its comments.
 +
<pre><nowiki>
 +
# /etc/cups/cupsd.conf
 +
# Simple CUPS configuration file for a pure client machine:
 +
# which has:
 +
# - no printers of its own, (or any local printers will not be shared?)
 +
# - no need for security within the machine, ie a personal workstation
 +
# - a network connection to a local network, where it will find CUPS-controlled printer servers
 +
 
 +
# This setup also allows access to the "Administrative tasks" system at
 +
# http://localhost:631
 +
# File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386)
 +
# Server Directives are explained in http://localhost:631/sam.html
 +
 
 +
# 25/04/2006
 +
 +
 
 +
ConfigFilePerm 0600
 +
LogLevel info
 +
Printcap /var/run/cups/printcap
 +
RunAsUser Yes
 +
### Listen fails. Use Port
 +
#Listen 127.0.0.1:631
 +
#Listen 10.0.0.0/8:631
 +
#Listen 128.0.0.0/16:631
 +
#Listen 192.168.0.0/24:631
 +
Port 631
 +
 
 +
### Which print servers to use
 +
Include cupsd-browsing.conf
 +
BrowseOrder deny,allow
 +
BrowseDeny from All
 +
BrowseAllow from @LOCAL
 +
BrowseAllow from 10.0.0.0/8
 +
BrowseAllow from 172.16.0.0/12
 +
BrowseAllow from 192.168.0.0/16
 +
 
 +
<Location />
 +
AuthType None
 +
Order Deny,Allow
 +
Deny From All
 +
Allow From @LOCAL
 +
</Location>
 +
 
 +
<Location /jobs>
 +
AuthType None
 +
Order Deny,Allow
 +
Deny From All
 +
Allow From @LOCAL
 +
</Location>
 +
 
 +
<Location /printers>
 +
AuthType None
 +
Order Deny,Allow
 +
Deny From All
 +
Allow From @LOCAL
 +
</Location>
  
## '''Reconfigure CUPS'''
+
<Location /admin>
    CUPS Client: /etc/cups/cupsd.conf
+
AuthType None
    Use the following file. Its features are contained in its comments.
+
Order Deny,Allow
    <pre><nowiki>
+
Deny From All
    # /etc/cups/cupsd.conf
+
Allow From @LOCAL
    # Simple CUPS configuration file for a pure client machine:
+
</Location>
    # which has:
+
</nowiki></pre>
    # - no printers of its own, (or any local printers will not be shared?)
+
    # - no need for security within the machine, ie a personal workstation
+
    # - a network connection to a local network, where it will find CUPS-controlled printer servers
+
   
+
    # This setup also allows access to the "Administrative tasks" system at
+
    # http://localhost:631
+
    # File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386)
+
    # Server Directives are explained in http://localhost:631/sam.html
+
   
+
    # 25/04/2006
+
+
   
+
    ConfigFilePerm 0600
+
    LogLevel info
+
    Printcap /var/run/cups/printcap
+
    RunAsUser Yes
+
    ### Listen fails. Use Port
+
    #Listen 127.0.0.1:631
+
    #Listen 10.0.0.0/8:631
+
    #Listen 128.0.0.0/16:631
+
    #Listen 192.168.0.0/24:631
+
    Port 631
+
   
+
    ### Which print servers to use
+
    Include cupsd-browsing.conf
+
    BrowseOrder deny,allow
+
    BrowseDeny from All
+
    BrowseAllow from @LOCAL
+
    BrowseAllow from 10.0.0.0/8
+
    BrowseAllow from 172.16.0.0/12
+
    BrowseAllow from 192.168.0.0/16
+
   
+
    <Location />
+
    AuthType None
+
    Order Deny,Allow
+
    Deny From All
+
    Allow From @LOCAL
+
    </Location>
+
   
+
    <Location /jobs>
+
    AuthType None
+
    Order Deny,Allow
+
    Deny From All
+
    Allow From @LOCAL
+
    </Location>
+
   
+
    <Location /printers>
+
    AuthType None
+
    Order Deny,Allow
+
    Deny From All
+
    Allow From @LOCAL
+
    </Location>
+
   
+
    <Location /admin>
+
    AuthType None
+
    Order Deny,Allow
+
    Deny From All
+
    Allow From @LOCAL
+
    </Location>
+
    </nowiki></pre>
+
  
## '''Restart CUPS'''
+
** '''Restart CUPS'''
    After making any alterations you wish to this file, restart CUPS by running ...<pre><nowiki>
+
After making any alterations you wish to this file, restart CUPS by running ...
      sudo /etc/init.d/cupsys restart</nowiki></pre>
+
<pre><nowiki>
    or use the '''Services''' tool under Gnome menu '''System -> Administration'''.
+
sudo /etc/init.d/cupsys restart</nowiki></pre>
 +
or use the '''Services''' tool under Gnome menu '''System -> Administration'''.
  
    After CUPS is restarted, the printers on file servers, (eg, set up in the Print Servers section above) will be found automatically by your machine. They will pop up in your "Printers" screen. This might take up to 30 seconds though.th  
+
After CUPS is restarted, the printers on file servers, (eg, set up in the Print Servers section above) will be found automatically by your machine. They will pop up in your "Printers" screen. This might take up to 30 seconds though.th  
  
 
If you want your machine to print to printers on other Ubuntu hosts, and also to be a print server for other machines, you need to create a combination of the above two cupsd.conf files.  
 
If you want your machine to print to printers on other Ubuntu hosts, and also to be a print server for other machines, you need to create a combination of the above two cupsd.conf files.  
  
 
=== Windows Client Machine ===
 
=== Windows Client Machine ===
    Add the printer to the Windows client by using the Windows "Add Printer" Wizard. Type in the following in the printer URL:
+
Add the printer to the Windows client by using the Windows "Add Printer" Wizard. Type in the following in the printer URL:
    <pre><nowiki>
+
<pre><nowiki>
    http://PRINTSERVERNAME:631/printers/PRINTERNAME</nowiki></pre>
+
http://PRINTSERVERNAME:631/printers/PRINTERNAME</nowiki></pre>
 
**** PRINTSERVERNAME is the name or ip address of the print server,
 
**** PRINTSERVERNAME is the name or ip address of the print server,
 
**** PRINTERNAME is the name given to the printer on the print server.
 
**** PRINTERNAME is the name given to the printer on the print server.
  
 
== Common Problems ==
 
== Common Problems ==
## '''Print jobs stay on the client machine and do not print.'''
+
** '''Print jobs stay on the client machine and do not print.'''
  
  Run the command
+
Run the command
  <pre><nowiki>
+
<pre><nowiki>
    lpstat -p -d</nowiki></pre>
+
lpstat -p -d</nowiki></pre>
  If it reports something like ...
+
If it reports something like ...
    <pre><nowiki>printer HP-OfficeJet-D155 is idle.  enabled since Jan 01 00:00
+
<pre><nowiki>printer HP-OfficeJet-D155 is idle.  enabled since Jan 01 00:00
        Network host 'alice' is busy; will retry in 30 seconds...</nowiki></pre>
+
Network host 'alice' is busy; will retry in 30 seconds...</nowiki></pre>
  
  or it reports something like ...
+
or it reports something like ...
    <pre><nowiki>printer [email protected] is idle.  enabled since Jan 01 00:00
+
<pre><nowiki>printer [email protected] is idle.  enabled since Jan 01 00:00
        Unable to get printer status (client-error-forbidden)!
+
Unable to get printer status (client-error-forbidden)!
 
system default destination: [email protected]</nowiki></pre>
 
system default destination: [email protected]</nowiki></pre>
  ... your client computer cannot obtain printer information from the server.
+
... your client computer cannot obtain printer information from the server.
  
  In either case use the "/etc/cups/cupsd.conf" files as above and restart CUPS.
+
In either case use the "/etc/cups/cupsd.conf" files as above and restart CUPS.
 
----
 
----
  ''This info is current for Ubuntu 5.10 (Breezy Badger)''
+
''This info is current for Ubuntu 5.10 (Breezy Badger)''
 
----
 
----
 
[[category:CategoryNetworking]] [[category:CategoryDocumentation]]
 
[[category:CategoryNetworking]] [[category:CategoryDocumentation]]
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2007年5月24日 (四) 15:47的版本


Overview

Ubuntu supports network printing, so you can print from either your Ubuntu machine or a Windows machine etc, to another Ubuntu machine that has a printer attached (ie a "print server"). This page covers these scenarios only.

This page does not cover printing from Ubuntu to a printer attached to a Windows machine, ie a Windows print server. The UbuntuHelp:WindowsXPPrinter page addresses this.

Background

Ubuntu uses the Common UNIX Printing System ("CUPS") to handle printing. CUPS uses the Internet Printing Protocol ("IPP") as the basis for managing print jobs and queues. The Line Printer Daemon ("LPD") Server Message Block ("SMB"), and AppSocket (a.k.a. JetDirect) protocols are also supported with reduced functionality. This page describes network printing with CUPS and IPP.

CUPS printer configuration and management is handled by the Printer Admin utility launched from the Gnome menu - System -> Administration -> Printing. In addition CUPS provides command-line commands that are similar to old Berkley and SystemV print commands such as lpq, lpstat etc. Also IPP provides web services so after you have configured CUPS appropriately, you can access the printers and jobs via your web browser.

When a locally attached printer is defined, eg using the Printer Admin utility, that printer is automatically published from this "print server" host to the network, depending on the server directives in the CUPS configuration file. A remote Ubuntu "client" host can then be able to see and use the printer attached to the server. The network printer automatically appears in the client's Printer Admin utility. It simply pops up if CUPS is up and configured correctly and disappears if you stop CUPS at either the Print Server or your local machine.

Ubuntu 7.04

Printer sharing in Ubuntu 7.04 Feisty is very simple. It no longer requires manual editing of config files. I will assume there is a working printer installed and printing on the Ubuntu computer that will be used as the print server.

Ubuntu Print Server

  • On the server machine (the one the printer is attached to) open up printer manager with
 
sudo gnome-cups-manager 

or System->Administration->Printing.

  • Under Global Settings click on the share printers.

Ubuntu Client Machine

Now on the client(s) open up the printer manager System->Administration->Printing and under the Global Settings check the Detect LAN Printers option.Then go to Printer->Add Printer check the Network Printer option and in the area marked URI write something like ipp://192.168.0.1/printers/<name of printer> where 192.168.0.1 is your servers ip address and <name of printer> is the name you gave the printer when you set it up usually the model of the printer.Click Next and select the brand,model, and driver just like you did when setting up the printer on the server.Click Next and fill in the name and description like on the server's printer then click Next. There you should now have a networked printer.

WindowsXP Client Machine

  • Open the Control Panel
  • Click Printers and Faxes
  • Click Add a Printer
  • On the first page of the Add Printer Wizard, click Next
  • Choose Add a network Printer
  • Choose Connect to a printer on the internet and type http://SERVER_NAME:631/printers/PRINTER_NAME in the text box and then click next
  • On the next screen, Choose the correct driver for your printer
  • Click ok to finish
  • Right click the printer, choose properties, and then try to print a test page

Ubuntu 6.10

Printer sharing in Edgy is fairly simple ,although it does require opening one .conf file.I will assume there is a working printer connected and printing.

Server Side

First on the server machine (the one the printer is attached to) open up printer manager with gnome-cups-manager or System->Administration->Printing.Under Global Settings click on the share printers. Next we must edit the cups config file like this sudo vim /etc/cups/cupsd.conf You will probably see a section like this:

# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock

Add this line to it: Listen 192.168.0.1:631 Assuming 192.168.0.1 is your servers ip address. Restart cups with sudo /etc/init.d/cupsys restart

Client Side

Now on the client(s) open up the printer manager System->Administration->Printing and under the Global Settings check the Detect LAN Printers option.Then go to Printer->Add Printer check the Network Printer option and in the area marked URI write something like ipp://192.168.0.1/printers/<name of printer> where 192.168.0.1 is your servers ip address and <name of printer> is the name you gave the printer when you set it up usually the model of the printer.Click Next and select the brand,model, and driver just like you did when setting up the printer on the server.Click Next and fill in the name and description like on the server's printer then click Next. There you should now have a networked printer.


Ubuntu 5.10

... print from one Ubuntu desktop ("client") machine to another Ubuntu ("print server") machine that has a printer connected to it.

Currently, with Ubuntu 5.10 (Breezy Badger) you need to make changes with an editor to the CUPS configuration file /etc/cups/cupsd.conf for network printing to work. The following are complete working replacement examples that work for a Print Server and for a Client Machine.

Ubuntu Print Server

This is the machine that has a printer attached to it, that you want to send print jobs to.

    • Add a local printer definition, using the Printer Admin utility (Gnome menu System -> Administration -> Printing).
    • Reconfigure the CUPS server

Cups Server: /etc/cups/cupsd.conf

This file is based on that supplied with Ubuntu 5.10. Comment lines have been removed. Copy it onto your system.

# /etc/cups/cupsd.conf
# Simple CUPS configuration file for a print server
# which serves printers within a private local area network.
# - There is no need for additional security within the print server, ie only authorises people can access the machine.

# This setup also allows access to the CUPS "Administrative tasks" system
# via your web browser to http://localhost:631
# File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386)
# Server Directives are explained in http://localhost:631/sam.html

# 25/04/2006
# [email protected]

ConfigFilePerm 0600
LogLevel info
Printcap /var/run/cups/printcap
RunAsUser Yes
Port 631
Include cupsd-browsing.conf
BrowseAddress @LOCAL
BrowseAddress 10.0.0.0/8
BrowseAddress 172.16.0.0/12
BrowseAddress 192.168.0.0/16

<Location />
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
Allow From 10.0.0.0/8
Allow From 172.16.0.0/12
Allow From 192.168.0.0/16
</Location>

<Location /jobs>
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
Allow From 10.0.0.0/8
Allow From 172.16.0.0/12
Allow From 192.168.0.0/16
</Location>

<Location /printers>
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
Allow From 10.0.0.0/8
Allow From 172.16.0.0/12
Allow From 192.168.0.0/16
</Location>

<Location /admin>
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
Allow From 10.0.0.0/8
Allow From 172.16.0.0/12
Allow From 192.168.0.0/16
</Location>
            • This config file should be altered if security within your local network is an issue for you. E.g. if you use a poorly-secured wireless network, this could allow access to anyone nearby.
            • Change the network addresses if you are part of a different network, eg on the real internet, and remove unnecessary ones.
            • This config allows you to use a web browser to manage CUPS, eg set up printers, manage jobs, via "http://PRINTSERVERNAME:631/".
    • Restart CUPS

After changing this file, restart CUPS by running ...

sudo /etc/init.d/cupsys restart

or use the Services tool under Gnome menu System -> Administration.

After CUPS is restarted the printers will immediately be found automatically by machines that are set up as per the next sections.

Ubuntu Client Machine

This is the machine you want to work on and send print jobs from.

    • Reconfigure CUPS

CUPS Client: /etc/cups/cupsd.conf Use the following file. Its features are contained in its comments.

# /etc/cups/cupsd.conf
# Simple CUPS configuration file for a pure client machine:
# which has:
# - no printers of its own, (or any local printers will not be shared?)
# - no need for security within the machine, ie a personal workstation
# - a network connection to a local network, where it will find CUPS-controlled printer servers

# This setup also allows access to the "Administrative tasks" system at
# http://localhost:631
# File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386)
# Server Directives are explained in http://localhost:631/sam.html

# 25/04/2006
# [email protected]

ConfigFilePerm 0600
LogLevel info
Printcap /var/run/cups/printcap
RunAsUser Yes
### Listen fails. Use Port
#Listen 127.0.0.1:631
#Listen 10.0.0.0/8:631
#Listen 128.0.0.0/16:631
#Listen 192.168.0.0/24:631
Port 631

### Which print servers to use
Include cupsd-browsing.conf
BrowseOrder deny,allow
BrowseDeny from All
BrowseAllow from @LOCAL
BrowseAllow from 10.0.0.0/8
BrowseAllow from 172.16.0.0/12
BrowseAllow from 192.168.0.0/16

<Location />
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
</Location>

<Location /jobs>
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
</Location>

<Location /printers>
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
</Location>

<Location /admin>
AuthType None
Order Deny,Allow
Deny From All
Allow From @LOCAL
</Location>
    • Restart CUPS

After making any alterations you wish to this file, restart CUPS by running ...

sudo /etc/init.d/cupsys restart

or use the Services tool under Gnome menu System -> Administration.

After CUPS is restarted, the printers on file servers, (eg, set up in the Print Servers section above) will be found automatically by your machine. They will pop up in your "Printers" screen. This might take up to 30 seconds though.th

If you want your machine to print to printers on other Ubuntu hosts, and also to be a print server for other machines, you need to create a combination of the above two cupsd.conf files.

Windows Client Machine

Add the printer to the Windows client by using the Windows "Add Printer" Wizard. Type in the following in the printer URL:

http://PRINTSERVERNAME:631/printers/PRINTERNAME
        • PRINTSERVERNAME is the name or ip address of the print server,
        • PRINTERNAME is the name given to the printer on the print server.

Common Problems

    • Print jobs stay on the client machine and do not print.

Run the command

lpstat -p -d

If it reports something like ...

printer HP-OfficeJet-D155 is idle.  enabled since Jan 01 00:00
Network host 'alice' is busy; will retry in 30 seconds...

or it reports something like ...

printer [email protected] is idle.  enabled since Jan 01 00:00
Unable to get printer status (client-error-forbidden)!
system default destination: [email protected]

... your client computer cannot obtain printer information from the server.

In either case use the "/etc/cups/cupsd.conf" files as above and restart CUPS.


This info is current for Ubuntu 5.10 (Breezy Badger)