linux搭建打印服务器

admin 2023年11月15日 279次浏览

家里有台惠普的 M1136 MFP 打印机,放在单独的办公室里偶尔来打印一下文件,平时也没觉得有啥不方便的,因为都是在办公室里用。但是有时候突然要打印一两页文件,还得抱着笔记本到办公室去打,这就有点不方便了。

想着在网上在网上买一个 USB 打印服务器架上,改成网络打印,这样就不用抱着笔记本跑了,而且打印机也可以放在不碍事的地方,结果在网上一看,一个 USB 打印服务器要两百多大洋,自己又不是随时都有网络打印的需求,然后这个事情也就不了了之了。

今天突然发现在办公室的角落里躺着的 NAS 服务器,乖乖,我咋把这哥们儿忘了呢,干一件事也是干,干两件事也是干,要不幸苦一下这哥们儿,再兼个职?那就干呗,说干就干。

一、安装打印服务

1、安装打印服务

  • 安装CUPS服务

    root@localhost:~# apt install cups cups-browsed -y
    
  • 修改配置文件

    这里主要是限制能使用打印服务的终端设备

    root@localhost:~# vim /etc/cups/cupsd.conf
    # Only listen for connections from the local machine.
    # 修改监听地址为实际ip地址
    Listen 192.168.1.25:631
    
    # Restrict access to the server...
    <Location />
      Order allow,deny
      # 在此处添加授权的ip地址
      Allow From 192.168.1.0/24
    </Location>
    
    # Restrict access to the admin pages...
    <Location /admin>
      Order allow,deny
      # 在此处添加授权的ip地址
      Allow From 192.168.1.0/24
    </Location>
    
    # Restrict access to configuration files...
    <Location /admin/conf>
      AuthType Default
      Require user @SYSTEM
      Order allow,deny
      # 在此处添加授权的ip地址
      Allow From 192.168.1.0/24
    </Location>
    
  • 启动打印服务

    root@localhost:~# systemctl enable --now cups
    Synchronizing state of cups.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable cups
    

2、安装samba服务

打印机的共享需要依赖 samba 服务,所以这里还需要把 samba 服务安装上

  • 安装samba服务

    root@localhost:~# apt install samba -y
    
  • 配置samba服务

    # 在配置文件中添加以下信息
    root@localhost:~# vim /etc/samba/smb.conf
    [global]
    load printers = yes
    printing = cups
    printcap name = cups
    use client driver = yes
    share print = yes
    client spooling = yes
    
    [printers]
    browseable = yes
    path = /var/spool/samba
    guest ok = yes
    printable = yes
    printer name = HP_LaserJet_Professional_M1136_MFP
    
  • 启动samba服务

    root@localhost:~# systemctl enable --now smbd
    Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable smbd
    

二、配置打印机

使用浏览器登陆 https://192.168.1.25:631

1、安装打印机驱动

我的系统中没有安装该打印机的驱动,因此需要先安装该打印机的驱动

  • 驱动下载地址:https://developers.hp.com/hp-linux-imaging-and-printing/gethplip

  • 修改pip镜像源

    因为编译驱动时,部分依赖需要使用 pip 工具安装,但是官方源不一定能连接上,就算连接上了,那速度也是特别的惊人,因此我们使用清华大学的镜像源

    # 临时使用本镜像站来升级pip
    root@localhost:~# python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
    
    # 配置默认镜像源
    root@localhost:~# python -m pip install --upgrade pip
    root@localhost:~# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 安装打印机驱动

    注意:此处需要使用 普通用户 来进行安装,安装过程比较漫长

    user@localhost:~$ ./hplip-3.23.8.run
    ...
    Adding print queue to CUPS:
    Device URI: hp:/usb/HP_LaserJet_Professional_M1136_MFP?serial=000000000QHBD3H4PR1a
    Queue name: HP_LaserJet_Professional_M1136_MFP
    PPD file: drv:///hp/hpcups.drv/hp-laserjet_professional_m1136_mfp.ppd
    ...
    Done.
    
  • 安装hp-plugin

    如果不安装此插件,将不能打印,打印状态会提示 stopped “Filter failed” ,查看 /var/log/cups/error_log 日志时,会出现 prnt/hpcups/HPCupsFilter.cpp 503: m_Job initialization failed with error = 48 错误

    注意:此处同样需要使用 普通用户 来进行安装

    oldyan@storage:~$ ./hplip-3.23.8-plugin.run
    ...
    Plug-in version: 3.23.8
    Installed HPLIP version: 3.23.8
    Number of files to install: 64
    ...
    

2、添加打印机

  • 首先点击【administration】,切换到管理页面,点击【Add Printer】添加打印机

  • 输入系统的用户名和密码

  • 选择需要添加的打印机,然后点击【continue】

  • 开启打印机共享

  • 选择打印机驱动

    在此选择正确的型号,然后点击【Add printer】

  • 配置打印机默认参数

    这里根据实际情况填写,然后点击【Set Default Options】

  • 到此 CUPS 配置完毕

    配置完毕后,将自动跳转到打印机管理界面

  • 测试打印机

    在打印机管理页,点击【Print Test Page】即可打印测试页

三、Windows添加共享打印机

如果服务器上的打印正常,那么就可以在客户机上安装共享打印机了,其添加方法与普通共享打印机添加方法相同,此处不再阐述

注意: 因为打印服务器是 Linux 系统,所以在 Windows 上安装打印机时,会提示找不到打印机驱动,因此需要手动选择打印机驱动