First, install Avahi and SANE on the server:
sudo apt install avahi-daemon libnss-mdns sane-utils
Then edit the SANE daemon configuration:
# Set to yes to start saned RUN=yes
Add user saned
to the lp
and scanner
groups.
sudo usermod -a -G lp,scanner saned
Check whether your scanner is recognized. If it’s not, you’re probably missing a driver, such as hplip
. Or worse.
scanimage -L
The output will look something like this:
device 'hpaio:/usb/Photosmart_C4500_series' is a Hewlett-Packard Photosmart_C4500_series all-in-one
If all is well, edit the SANE server configuration and add your subnet to the access list.
# The hostname matching is not case-sensitive. 192.168.0.0/24
If you’re using a firewall (ufw in this case), you’ll have to open some ports:
sudo ufw allow from 192.168.0.0/24 to any port 5353 proto udp sudo ufw allow from 192.168.0.0/24 to any port 6566 proto tcp sudo ufw allow from 192.168.0.0/24 to any port 40000:40100 proto tcp
Then set the port range in /etc/sane.d/saned.conf
accordingly:
# Port range for the data connection. data_portrange = 40000 - 40100
Finally, start saned
:
sudo systemctl start saned.socket sudo systemctl enable saned.socket
All that’s left to do now is having the client computers look for the SANE server. Unlike CUPS, this isn’t autodetected.
Edit /etc/sane.d/net.conf
and add your server’s hostname or IP address to the bottom.
scanserver.local
Launch Simple Scan (or another SANE front-end), and your network scanner should be found within a few seconds.