旧电脑变废为宝:打造低成本网络打印机服务器全记录

让尘封的旧电脑重获新生,成为家庭或办公室的网络打印中心

前言

你是否有一台旧电脑闲置在角落吃灰?其实只要稍加改造,它就能变身实用的网络打印机服务器,让所有设备都能无线打印!本文将详细记录我从零开始搭建网络打印机服务器的完整过程。

准备工作

  • 旧电脑一台(我用的是一台10年前的老台式机)
  • Ubuntu Server 24.04 LTS 系统镜像
  • Ventoy 启动盘
  • USB 打印机(本文以HP LaserJet 1320为例)

第一步:系统安装

使用 Ventoy 启动盘安装 Ubuntu Server 24.04,选择最小化安装。最小化安装不包含图形界面,更加轻量省资源,非常适合做服务器。

如何制作Ventoy 启动盘参考:https://zhuanlan.zhihu.com/p/17040276952

如何安装Ubuntu Server参考:https://zhuanlan.zhihu.com/p/698434939

第二步:网络配置

安装完成后首先需要配置网络。最小化安装没有图形界面,也没有常见的文本编辑器,这时候就需要一些命令行技巧。

确定网卡名称

bash 复制代码
ip link show

这个命令会显示所有网络接口,我这里的网卡名称是 enp3s0

配置网络连接

由于没有编辑器,我们使用 cat 命令来编辑配置文件:

bash 复制代码
# 先给配置文件写权限
sudo chmod 777 /etc/netplan/50-cloud-init.yaml

# 使用cat编辑文件
sudo cat > /etc/netplan/50-cloud-init.yaml << 'EOF'
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
EOF

# 改回安全权限
sudo chmod 600 /etc/netplan/50-cloud-init.yaml

重要提示 :一定要根据 ip link show 的结果使用正确的网卡名称!

设置静态IP(推荐)

为了方便后续使用,建议设置静态IP:

bash 复制代码
sudo cat > /etc/netplan/50-cloud-init.yaml << 'EOF'
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: no
      addresses: [10.0.3.206/16]
      routes:
        - to: default
          via: 10.0.0.2
      nameservers:
        addresses: [114.114.114.114, 8.8.8.8]
EOF

应用网络配置:

bash 复制代码
sudo netplan apply

联网后即可安装nano等组件:

bash 复制代码
# 更新系统
sudo apt update -y && sudo apt upgrade -y

# 安装nano
sudo apt install nano

第三步:安装和配置CUPS

什么是CUPS?

CUPS(Common UNIX Printing System,通用UNIX打印系统)是一个开源的打印系统,提供完整的管理打印设备、实现可靠打印和网络打印的方案。

安装步骤

bash 复制代码
# 更新系统
sudo apt update -y && sudo apt upgrade -y

# 安装CUPS
sudo apt install cups

配置CUPS

编辑配置文件 /etc/cups/cupsd.conf

bash 复制代码
sudo nano /etc/cups/cupsd.conf

需要修改的关键配置:

  1. Listen localhost:631 改为 Listen 0.0.0.0:631
  2. Browsing Off 改为 Browsing On
  3. 在相应位置添加 Allow all

重启CUPS服务:

bash 复制代码
sudo systemctl restart cups

第四步:连接打印机和安装驱动

检测硬件

bash 复制代码
# 查看USB设备
lsusb

# 查看已连接的打印机
sudo lpinfo -v

查询结果:

复制代码
p303@printer-202-mzy:~$ sudo lpinfo -v
network beh
direct hp:/usb/HP_LaserJet_Professional_P1106?serial=000000000Q8FTERRPR1a
network lpd
network socket
serial serial:/dev/ttyS0?baud=115200
direct usb://HP/LaserJet%20Professional%20P1106?serial=000000000Q8FTERRPR1a
network ipps
network ipp
network https
network http
direct hpfax
network dnssd://HP%20LaserJet%20Pro%20M304-M305%20%5B472B71%5D._ipp._tcp.local/?uuid=e54d745b-e453-58d5-e671-089d9a126b79
network dnssd://HP-LaserJet-1320%20%40%20printer303._ipp._tcp.local/cups?uuid=c85b7787-a592-34b2-5c7f-0ba10bafe928
network dnssd://HP-P1106%20%40%20printer303._ipp._tcp.local/cups?uuid=02202fce-e209-388c-4c85-6aea277eaa8f
network socket://10.0.2.10:9100
network ipps://HP%20LaserJet%20Pro%20M304-M305%20%5B472B71%5D._ipps._tcp.local/

其中打印机串码为:

复制代码
# P1106的串码
hp:/usb/HP_LaserJet_Professional_P1106?serial=000000000Q8FTERRPR1a

# HP1320的串码
direct usb://HP/LaserJet%201320%20series?serial=00CNBG4CSGX8

注意:每台打印机的串码是唯一的,添加打印机时需要使用串码。

安装惠普打印机驱动

bash 复制代码
sudo apt install hplip

惠普打印机检测(没啥大用)

bash 复制代码
hp-probe
hp-check

添加打印机到CUPS

根据lpinfo -v查询到的打印机串码添加打印机:

bash 复制代码
# 添加hp1320打印机(无驱动方式)
sudo lpadmin -p HP-LaserJet-1320 -v "hp:/usb/hp_LaserJet_1320_series?serial=00CNBG4CSGX8" -E
# 添加P1106打印机
sudo lpadmin -p HP-P1106-Room202-MZY -v "hp:/usb/HP_LaserJet_Professional_P1106?serial=000000000Q8FTERRPR1a" -E -m drv:///sample.drv/generpcl.ppd

# 启用打印机共享
sudo cupsctl --share-printers

验证打印机状态

bash 复制代码
# 查看所有打印机状态
lpstat -t

# 查看特定打印机详情
lpstat -p HP-LaserJet-1320 -l

输出示例:

复制代码
scheduler is running
device for HP-LaserJet-1320: hp:/usb/hp_LaserJet_1320_series?serial=00CNBG4CSGX8
HP-LaserJet-1320 accepting requests since Sat Oct 11 06:40:21 2025
printer HP-LaserJet-1320 is idle. enabled since Sat Oct 11 06:40:21 2025

测试打印

bash 复制代码
echo "HP LaserJet 1320 测试页" | lp -d HP-LaserJet-1320

第五步:Windows客户端连接

现在可以在其他设备上连接这台网络打印机了:

  1. 打开"设备和打印机"
  2. 点击"添加打印机"
  3. 选择"网络打印机"
  4. 输入打印机地址:http://10.0.3.206:631/printers/HP-LaserJet-1320

注意:IP地址和打印机名称要替换成你自己的设置。

遇到的问题和解决方案

问题1:驱动兼容性问题

在添加打印机时遇到警告:

复制代码
lpadmin: Printer drivers are deprecated and will stop working in a future version of CUPS.

解决方案:使用无驱动方式添加打印机,现代CUPS支持自动识别大多数打印机。

问题2:权限问题

解决方案:确保使用sudo执行管理命令,并正确设置文件权限。

问题3:网络连接失败

解决方案:检查防火墙设置,确保631端口开放。

成果展示

现在,我的旧电脑已经成功变身网络打印机服务器:

  • ✅ 支持多台打印机同时工作
  • ✅ 网络内所有设备均可无线打印
  • ✅ 24小时稳定运行
  • ✅ 零额外成本

总结

通过这个项目,我们不仅让旧电脑重获新生,还建立了一个功能完整的网络打印解决方案。整个过程涉及Linux系统安装、网络配置、服务部署等多个方面,是一个很好的学习实践。

最重要的是,这个方案成本极低,只需要一台即将淘汰的旧电脑,就能为整个家庭或办公室提供便捷的打印服务。


希望这篇教程对你有帮助!如果你也在考虑搭建网络打印机服务器,不妨动手试试,让旧设备继续发挥余热。

参考文档:https://blog.csdn.net/zhengshaolin128/article/details/142366933

相关推荐
YuMiao17 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair4 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean5 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩5 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试