Step-by-Step Guide to Sharing a USB Scanner Over a Windows Network Using NAPS2

Most small office/home office (SOHO) multifunction printers (MFPs) don’t support network scanning. If you own such a scanner that can’t scan to a shared SMB folder or email, a convenient tool named NAPS2 can help you share any local USB scanner.

The tool, NAPS2, stands for Not Another PDF Scanner. It is a prevalent free open-source software designed to scan and recognize documents using WIA and TWAIN-compatible scanners. With the release of version 7.2.0 in December 2023, NAPS2 has extended its capabilities to allow local USB scanners to be shared over a LAN with other users.

In this arrangement, a computer equipped with a local USB scanner acts like a scan server. The server enables NAPS2 clients to seamlessly connect over the network using eSCL (a driverless scanning protocol).

Install NAPS2, configure a profile for a local scanner with a WIA or TWAIN driver, and click the Scanner Sharing button.

Select the local scanner you want to share and enter a name for the connection.

The NAPS2 app must be running on the host computer (running as a Windows service in the background is not yet supported). NAPS2 runs a listener on UDP port 5353. You can use PowerShell to list the processes listening on this port.

Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress,LocalPort,OwningProcess,@{ Name="ProcessName"; Expression={((Get-Process -Id $_.OwningProcess).Name )} }

UDP port 5353 and TCP 9801,9901 must be opened on the NAPS2 server. Use PowerShell to create Windows Defender firewall rules for the NAPS2 app:

New-NetFirewallRule -DisplayName NAPS2-UDP-in -Profile any -Direction Inbound -Action Allow -Protocol UDP -LocalPort 5353 -Program "C:Program FilesNAPS2NAPS2.exe"

New-NetFirewallRule -DisplayName NAPS2-TCP-in -Profile any -Direction Inbound -Action Allow -Protocol TCP -LocalPort 9801,9901 -Program "C:Program FilesNAPS2NAPS2.exe"

Then install NAPS2 on the client computer, add a new scanner, and select the ESCL driver type.

The client computer will send the mDNS broadcast (UDP to discover the shared scanners on the LAN. Select the shared scanner and you are ready to scan.

The mDNS (Multicast DNS) protocol is enabled in Windows 10 1703 and higher. It is used to resolve local network names using broadcasts. Try adding the suffix .local to the hostname of the scan server to resolve its address over mDNS.

The computer hostname is used to connect to the NAPS server, so if the IP address of the server host changes, this will not affect network scanning. mDNS broadcast packets are not routed between subnets, so the scan server and the client must be connected to the same LAN (VLAN).

You can connect to the NAPS2 network scanner not only from Windows devices but also from Linux clients (SANE-AirScan), Android (Mopria Scan), iOS (AirScan), and macOS (Image Capture) with ESCL protocol support.