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

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

前言

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

准备工作

  • 旧电脑一台(我用的是一台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

相关推荐
刚刚觉醒的小菜鸡3 小时前
ssh连接本地虚拟机
linux·服务器·ssh
持梦远方3 小时前
Linux之认识理解目录
linux·运维·服务器
openHiTLS密码开源社区3 小时前
【密码学实战】openHiTLS s_server命令行:搭建国密标准安全通信服务器
服务器·物联网·密码学·openhitls·tlcp·商用密码算法·dtlcp
真命天子_重庆_中国3 小时前
记一次生产服务器磁盘I/O性能瓶颈与负载过高分析与处理
运维·服务器
携欢3 小时前
PortSwigger靶场之CSRF where token is tied to non-session cookie通关秘籍
运维·服务器·前端
BothSavage3 小时前
Ubuntu-8卡H20服务器升级nvidia驱动+cuda版本
linux·服务器·ubuntu·gpu·nvidia·cuda·nvcc
从零开始的ops生活4 小时前
【Day 77】Linux-iptables防火墙
开发语言·php
kali-Myon4 小时前
NewStarCTF2025-Week2-Web
web安全·sqlite·php·web·ctf·文件上传·文件包含
K_i1344 小时前
OSI七层模型:从原理到实战
运维·服务器·网络