网站cdn+自己做,济南建网站公司排行榜,上海国际人力资源开发公司,网络服务提供者不履行法律行政法规规定的信息网络安全管理义务背景 平时主力机器是Windows#xff0c;不想额外开一个Linux服务器来共享打印机。由于主力机平时也不关机#xff0c;尝试在Windows上安装CUPS服务。 结论 先说结论#xff0c;结论是可行#xff0c;但是麻烦且不稳定#xff0c;虚拟机方案少折腾#xff0c;但是资源消耗…背景 平时主力机器是Windows不想额外开一个Linux服务器来共享打印机。由于主力机平时也不关机尝试在Windows上安装CUPS服务。 结论 先说结论结论是可行但是麻烦且不稳定虚拟机方案少折腾但是资源消耗大WSL次之最后是Docker方案。 技术难点
应用软件层面
CUPS在Windows上没有找到可行的方案。因此得在Linux中安装CUPS。 Windows的自带的共享打印机服务楼主按照各种教程实践没能成功开启
硬件层面
USB打印机可以直接接入Windows但是虚拟机、WSL和Docker无法直接使用USB设备。
系统持久化
让打印机服务开机就可以自动启动无需后续手动开启。
网络层面
Windows主机到虚拟机/Docker主机/WSL主机的端口映射。
硬件问题思路
CUPS直接在Windows运行貌似不太可行 大体上应该有三种方式
虚拟机 以 VMWare为例安装CentOS 7 后安装LPR和CUPS驱动。把打印机的USB接口直接接入虚拟机中。 WSL 驱动安装与虚拟机一致。USB接口映射需要依赖 USBIP 工具。下载地址https://github.com/dorssel/usbipd-win大体上分为两步 通过bind命令把指定USB端口共享出去通过attach通过网络共享该USB接口。 缺点 梯子可能导致失效重启后失效 Docker 很遗憾Docker并不能像虚拟机一样直接做到USB端口映射也需要依赖USBIP工具。 如果host和容器设备都是Linux是可以的但是由于Win和Linux的USB接口实现方式差异太大Docker没能做到直接映射。
持久化问题思路
设置计划任务 触发时机启动时权限管理员权限命令记得带参数
网络层面思路
使用Windows主机的端口映射命令。 netsh interface portproxy add v4tov4 listenport监听端口 listenaddress监听地址 connectport目标端口 connectaddress目标地址 例如 netsh interface portproxy add v4tov4 listenport631 listenaddress0.0.0.0 connectport631 connectaddress192.168.1.100host主机的631端口映射到内部主机的631端口。host端监听所有可用的网络接口。0.0.0.0 意味着无论是本地网络接口还是外部网络接口任何连接到该主机的631端口请求都可以被接受。虚拟机/WSL主机/Docker主机的IP为192.168.1.100端口为631。 允许win防火墙通过631端口 netsh advfirewall firewall add rule nameCUPS Printer dirin actionallow protocolTCP localport631