📌 网络拓扑
| 角色 | IP/端口 | 说明 |
|---|---|---|
| 打印机 | EPSON L3255 地址:192.168.31.137 端口:9100/515/631 |
需要共享的打印机 |
| Pi3 服务器 | WireGuard:10.0.0.5 局域网:192.168.31.121 CUPS 端口:631 |
CUPS 打印服务器 |
| 客户端 | 任意网段 | 通过 WireGuard 访问 ipp://10.0.0.5:631/ |
🛠️ 配置步骤
1️⃣ 环境准备
Pi3 上 CUPS 已预装,所需软件包:
# 已安装的依赖
cups-filters # CUPS 过滤器
cups-filters-core-drivers # 驱动打印支持
printer-driver-escpr # Epson ESC/P-R 驱动
ghostscript # PostScript 解释器
2️⃣ 确认打印机连通性
# 测试网络连通
ping 192.168.31.137
# 端口扫描确认(三个端口都通)
# 端口 9100 (Raw/JetDirect) ✅
# 端口 515 (LPD) ✅
# 端口 631 (IPP) ✅
3️⃣ 配置 CUPS
cupsd.conf 修改要点:
# 监听地址
Listen localhost:631
Listen 10.0.0.5:631
# 允许局域网访问
<Location />
Order allow,deny
Allow from localhost
Allow from 10.0.0.0/24
Allow from 192.168.31.0/24
</Location>
💡 注意:停用了 cups-browsed 服务,防止自动发现覆盖固定配置。
4️⃣ 添加打印机
💡 驱动选择:原版 L3250 ESC/P-R 驱动在 ARM64 上有兼容性问题(epson-escpr-wrapper 崩溃),改用 L3110 系列驱动完美兼容。
# 删除旧打印机
sudo lpadmin -x EPSON_L3250_Series
# 用 L3110 驱动 + socket 连接添加
sudo lpadmin -p EPSON_L3250_Series \
-v socket://192.168.31.137:9100 \
-m 'escpr:0/cups/model/epson-inkjet-printer-escpr/Epson-L3110_Series-epson-escpr-en.ppd' \
-o printer-is-shared=true \
-E
5️⃣ 验证配置
# 查看打印机状态
lpstat -t
# 查看连接 URI
lpstat -v EPSON_L3250_Series
# 打印测试页
lp -d EPSON_L3250_Series /usr/share/cups/data/testprint
✅ 所有过滤器(gstopdf → pdftopdf → gstoraster → epson-escpr-wrapper → socket)均正常退出,无错误。
📊 最终配置
| 项目 | 值 | 说明 |
|---|---|---|
| 打印机 URI | socket://192.168.31.137:9100 |
直连 Raw 端口 |
| 驱动 | Epson L3110 ESC/P-R | 兼容 L3250 |
| CUPS 地址 | http://10.0.0.5:631/ |
WireGuard 网络 |
| 共享状态 | Shared: Yes |
跨网段可用 |
| iptables | 全部 ACCEPT | 无防火墙限制 |
💻 客户端连接
Windows
- 控制面板 → 设备和打印机 → 添加打印机
- 选择”我需要的打印机不在列表中”
- 选择”按名称选择共享打印机”
- 输入:
ipp://10.0.0.5:631/printers/EPSON_L3250_Series - 安装 Epson L3250 Series 官方驱动
- 打印测试页验证
Linux / macOS
# 添加打印机
lpadmin -p EPSON_L3250_Series \
-v ipp://10.0.0.5:631/printers/EPSON_L3250_Series \
-E
# 打印测试
lp -d EPSON_L3250_Series /path/to/file.pdf
🔧 故障排查
| 问题 | 原因 | 解决 |
|---|---|---|
| 打印乱码/不停出纸 | Raw 模式直接传数据,打印机无法解析 | 使用 ESC/P-R 驱动,让 CUPS 先转换格式 |
| epson-escpr-wrapper 崩溃 | L3250 原版 PPD 在 ARM64 有 bug | 改用 L3110 PPD(同架构兼容) |
| cups-browsed 覆盖配置 | 自动发现服务覆盖固定设置 | 停用 cups-browsed |
📝 注意事项
- 打印机名称:虽然实际型号是 L3255,但驱动识别为 L3250 Series,CUPS 中名称为
EPSON_L3250_Series - 驱动兼容性:L3110 与 L3250 使用相同的 ESC/P-R 指令集,打印质量无差异
- WireGuard:确保客户端已配置 WireGuard 连接到 Pi4,才能通过 10.0.0.5 访问 CUPS
- 防火墙:Pi3 未启用 UFW,端口 631 默认开放;如果启用需放行
ufw allow 631/tcp
酷居科技