利用CUPS 无线共享USB打印机,SANE共享扫描仪

2022-11-27 23:30 来源: 本站
利用CUPS安装打印机, 局域网内共享打印机和扫描仪

利用CUPS安装打印机, 局域网内共享打印机

1.终端登录root
 
2.输入apt-get update等待更新
 
3.输入apt-get install cups安装打印服务。
 
4.安装打印机驱动。
CUPS驱动包  包含大量打印机驱动(找不到同型号的可以尝试同系型号驱动)
apt install printer-driver-gutenprint
惠普
apt install hplip
兄弟
apt-get install printer-driver-brlaser
 
5.输入cupsctl --remote-any运行远程访问
 
6.输入机器IP:631根据提示添加对应打印机,会弹出登录框输入root账户和密码。
 
#想在局域网搜到打印机,只需要在cups页面打开Edit Configuration File里面的配置文件Browsing off改为Browsing on然后重启cups.或者终端输reboot重启盒子。

 

如果重启后手机等移动设备无法 发现打印机尝试下面操作:

其实只要再添加一条命令就可以让局域网里的其他设备自动发现打印机。我们再回到ssh命令行去运行一下。

apt install avahi-daemon

有的机器安装这一个插件就可以了。不过我的机器需要安装下面插件才可以。

运行:

apt-get install avahi-daemon avahi-utils

 

最后设置下开机默认启动

systemctl enable cups
systemctl enable avahi-daemon

 

 

进阶设置,如果 发现 手机连接打印机慢,或者很久才能找到打印机,可能存在的问题是 avahi-daemon 广播了多个网络配置,修改 avahi-daemon 配置文件,关闭无用的网络广播。

 

输入命令
 
avahi-browse -a -t -p
 
查看网络广播项目
 
输入命令查看网卡
ifconfig
 
打开 配置文件
/etc/avahi/avahi-daemon.conf
 
[server]
allow-interfaces=wlan0    //只保留你需要的网卡,特别是启用docker后大量网卡 造成网络广播 太多。
use-ipv4=yes
use-ipv6=no  //局域网内共享 用不到ipv6 可以关闭
 
 
保存并重启avahi-daemon
 
sudo systemctl restart avahi-daemon
 
 
 
输入命令再次查看网络广播项目。
 
avahi-browse -a -t -p

 

 

扫描仪篇  使用 SANE 网络共享服务 

 

服务端 

 

apt-get update && apt-get install -y sane sane-utils saned
 
# 设置缓存目录
mkdir -p /home/saned_tmp
chown -R saned:saned /home/saned_tmp
chmod 777 /home/saned_tmp
# 开启局域网访问,注意你的局域网ip段
echo "192.168.31.0/24" >> /etc/sane.d/saned.conf
# 启用saned服务
sed -i 's/RUN=no/RUN=yes/' /etc/default/saned
 
#可选  这会把数据传输端口固定在 10000-10100 之间,防止连接被系统随机掐断
#/etc/sane.d/saned.conf 取消注释 data_portrange = 10000 - 10100
# 启动saned.socket
systemctl enable saned.socket
systemctl start saned.socket
 
本机测试命令 
scanimage --resolution 75 --format=pnm > /tmp/test.pnm

 

*存在的坑,本人使用的是爱普生官方提供的驱动,扫描报错
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_any_cast> >' what(): boost::bad_any_cast: failed conversion using boost::any_cast Aborted
卸载官方驱动使用sane带的开源驱动就可以。

 

 

win11 客户端使用sane协议的方法

 

WIA-on-SANE(也称作 wiasane)是一个开源的 Windows 驱动程序。它能够通过局域网的 SANE 网络协议,将远程 Linux 上的扫描仪虚拟为 Windows 原生的 WIA(Windows Image Acquisition)扫描设备。

配置完成后,Win11 会直接把这台网络扫描仪识别为本地插入的硬件,你完全不需要每次打开专门的第三方传输软件,直接使用 Win11 自带的“Windows 扫描”“传真和扫描”即可一键扫描。

下载地址:请在 WIA-on-SANE GitHub Releases 页面中下载最新版的发布文件。

安装会提示添加扫描仪
关键参数填写:

  • Hostname / IP Address:填写你 Ubuntu 服务器的局域网 IP(例如 192.168.1.100)。
  • Port(端口):保持默认的 6566(这是 SANE 服务的官方默认网络端口)。
  • Username / Password:如果你的 Ubuntu SANE 没有设置访问密码,此处直接保持留空

填写完毕后,点击下方的 Get Device List(获取设备列表)按钮。

此时工具会通过局域网握手 Ubuntu。在下拉菜单中会正确识别并显示出你的 Epson 扫描仪:epsonscan2:epson l360 series...

选中该设备,点击 SaveInstall 确认。此时 Windows 会弹窗提示“正在成功安装 WIA 扫描仪驱动”。

 

使用系统自带的扫描 软件可以进行扫描,更多功能推荐 NAPS2 软件,其它操作系统如果原生支持sane协议无需安装WIA-on-SANE。

 

 

其它 还可以使用 SANEWinDS 类似转换成 TWAIN 协议 。或者在服务器共享端 使用 AirSane 共享广播 eSCL 协议。因为 扫描仪 没有像打印机那样统一认可协议 所以还有兼容问题。

 

方案对比与选择指南

方案名称 驱动协议转换方向优点缺点

WIA-on-SANE

模拟驱动

SANE (网络)→ WIA(本地)

win端支持比较好。其它系统端是不支持。

SANEWinDS

模拟驱动

SANE (网络)→ TWAIN (本地)

对企业虚拟化、终端服务器支持较好。wps指定只能使用TWAIN协议进行直接扫描仪导入。

AirSane (eSCL)

(无驱)

SANE →eSCL (网络)→eSCL(本地)

Windows 自动发现,符合现代无驱网络扫描标准。仅支持纯 TWAIN 的医疗/财务老软件无法识别。

 

推荐内容