Sharing a USB Brother Printer on Android via Linux and CUPS
·5 min
You have a Brother printer plugged into a Linux box on your home network, and you want to print from your Android phone without fiddling with cables or third-party apps. This is doable with CUPS, nginx, and Avahi — but there are several non-obvious pitfalls along the way. This post covers the full setup, including the debugging steps that actually taught me what was going wrong.
Architecture #
Android
│ mDNS discovery (_ipps._tcp)
▼
Avahi (advertises printserver.local:631)
│
nginx (port 631, TLS terminated, cert trusted by Android)
│
CUPS (localhost:6310)
│
Brother printer (USB)
nginx sits between Android and CUPS to handle TLS properly. Android’s Mopria print service requires a trusted HTTPS connection for automatic discovery to work.