让无线打印机再次升级,支持 iPhone、iPad 直接打印
办公室里有两台打印机,一台是兄弟 DCP-1618W,一台是爱普生 L805。买打印机的时候,并没有注意看是不是支持 iOS(包含 iPadOS)的 AirPrint,打印机自带的 APP 用起来也不是那么舒服,特别是某些 SAAS 系统直接打印的选项,还需要转换成 PDF 再到 APP 打印。
为了解决这个问题,我们尝试了各种方法,终于确定了一个稳定可行的方法,下面是抄作业教程。
先决条件
- 内网有一台长期不关机的服务器,最好是 PVE
- 实在不行,支持虚拟机的 NAS 也可以
准备工作
- PVE 下载好 Ubuntu 24 的 CT 模板,然后创建一个特权容器(重点:需要带嵌套,教程另列)
- 虚拟机里安装 Ubuntu 24,建议安装资源占用少的 Server 版,桌面版也是可以的
本教程以 PVE 里的 LXC 容器为例,因为它占用资源跟 Docker 差不多。
步骤一:更换国内镜像源
因为官方源非常慢,为了节省时间,我们必须更换成国内镜像源。PVE 容器里,直接在终端复制并运行下面对应的命令即可:
sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list && \
sed -i 's|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list替换完成后,照常运行更新命令:
apt update步骤二:安装底层套件及驱动
A. 安装 CUPS 核心组件
apt install -y cups cups-filtersB. 配置 CUPS 允许局域网远程访问
默认情况下,CUPS 只允许在容器内部(localhost)访问管理页面。我们需要修改 /etc/cups/cupsd.conf 来放行局域网。
直接复制运行以下这几行配置命令:
# 1. 让 CUPS 监听所有网络接口(不只是 127.0.0.1)
cupsctl --remote-any
# 2. 允许从局域网内的其他机器访问管理后台和打印机
sed -i 's/<Location \/>/<Location \/>\n Allow all/' /etc/cups/cupsd.conf
sed -i 's/<Location \/admin>/<Location \/admin>\n Allow all/' /etc/cups/cupsd.conf
sed -i 's/<Location \/admin\/conf>/<Location \/admin\/conf>\n Allow all/' /etc/cups/cupsd.conf
# 3. 重启 CUPS 服务使配置生效
systemctl restart cupsC. 创建 CUPS 管理员账号
当你通过网页添加打印机时,CUPS 会弹窗要求输入账号密码。它使用的是 Linux 系统的本地账号。
为了安全和方便,我们可以直接把容器的 root 账户加入到 CUPS 的管理员组(lpadmin)中:
# 将 root 用户加入打印机管理组
usermod -aG lpadmin root
# 如果你之前没有给这个 LXC 容器的 root 设置过密码,请现在设置一个:
passwd rootD. 安装兄弟打印机驱动
Linux 社区有一个专门针对兄弟激光打印机的开源驱动项目叫 brlaser,它比官方那套繁琐的 32 位脚本更轻量、对新版系统的兼容性更好。
apt install -y printer-driver-brlaserE. 安装 Epson 打印机驱动
爱普生喷墨照片机在 Linux 下的官方驱动和开源驱动都非常成熟。这里推荐安装 Linux 社区最强大的开源高精度喷墨驱动包 Gutenprint,它对 L805 的色彩和分辨率支持更好。
apt install -y printer-driver-gutenprintF. 重启 CUPS 识别新驱动
驱动包安装完毕后,顺手重启一下 CUPS 服务,确保它刷新了驱动列表:
systemctl restart cups步骤三:添加打印机
- 打开浏览器进入 CUPS 后台:
https://[容器IP]:631 - 点击 Administration → Add Printer(输入 root 账号密码)
- 在 Other Network Printers(其他网络打印机)列表中,点选 LPD/LPR Host or Printer,点击 Continue
- 先添加 DCP-1618W,Connection 里输入
lpd://[DCP-1618W的IP]/PASSTHRU,点击 Continue - 弹出的页面里,Name 填一下打印机的名称(这个名称会出现在以后搜索出来的列表里),Description 和 Location 留空就行,勾选底部的 Share This Printer,点击 Continue
- 弹出来的页面里,选择打印机品牌 Brother,然后选择 Brother DCP-1600 series using brlaser,这就完成了添加
- 添加 L805,同样选择 LPD/LPR Host or Printer 点击 Continue,其他跟上次一样
- 打印机驱动选择时,L805 是没有对应系列和型号的,这里我们选择 Epson Stylus Photo R290
- 完成添加
步骤四:测试打印机驱动
CUPS 后台选择 Printers,点击列表的打印机名称,弹出的页面里选择 Print Test Page。

可以打印出准确的测试页,就接近成功啦。
步骤五:配置 AirPrint 需要的服务
A. 启用 Avahi 广播服务
# 启动并设置开机自启
systemctl enable avahi-daemon
systemctl start avahi-daemonB. 配置 CUPS 允许向局域网广播
# 开启远程分享和浏览功能
cupsctl --share-printers --remote-printers
# 重启 CUPS 刷新广播状态
systemctl restart cupsC. 激活共享
cupsctl --share-printers完成!
现在你的 Ubuntu 24.04 容器已经变成了一个完美的轻量级网络打印服务器。不管是 iPhone 还是 iPad,都能在局域网内无线打印了。
小建议
容器开机自启:别忘了在 PVE 的网页后台,选中这个容器,在「选项 (Options)」里把「开机自启 (Start at boot)」改成「是」,这样以后 PVE 宿主机或者服务器重启,打印服务也会跟着自动启动。虚拟机也是差不多,选择开机自启即可。