【问题处理】银河麒麟操作系统实例分享,理光打印机lpr协议打印问题处理

1.问题环境

系统版本:Kylin-Desktop-V10-SP1-General-Release-xxx-20221120-x86_64

内核版本:linux 5.4.18-44kt-generic

系统版本:麒麟v10 sp1

处理器:kx6640ma

2.问题描述

问题详细描述:用户通过lpr协议去连接文印打印机的,打印传输时间需要5分钟,在做文印打印机得连接测试,发现使用lpr协议去连接文印机进行打印的时候,打印任务发送到打印机需要278秒时间(无论打印文件大小)

从抓包日志上看到,连接lpr515端口就是用了278秒后才能成功,中间发生过多次重试连接。连接3次后才能成功,理光厂家就判断麒麟电脑的LPR协议对windows server协议不兼容导致的。

处理方法一:uri配置的时候加入?reserve=no

例如添加打印机的时候,使用lpd://10.41.124.131?reserve=no

根据分析lpd可能是根据url来判断是否使用预留端口进行打印。

处理方法二:尝试使用网络命名空间的部署脚本

添加网络命名空间,将cups的守护进程放入到ns1的网络命名空间中执行,而后在系统网络命名空间中使用iptables实现源地址和端口转换。

1、创建部署脚本deploy.sh

#!/bin/bash

# 部署网络命名空间
cat <<EOF > /usr/local/bin/netns.sh
#!/bin/bash
ip netns add ns1
ip link add veth0 type veth peer name veth1
ip link set veth1 netns ns1
ip addr add 10.0.0.1/24 dev veth0
ip link set veth0 up
ip netns exec ns1 ip addr add 10.0.0.2/24 dev veth1
ip netns exec ns1 ip link set veth1 up
ip netns exec ns1 ip route add default via 10.0.0.1 dev veth1
ip netns exec ns1 sysctl -w net.ipv4.tcp_syn_retries=1
iptables -t nat -A POSTROUTING -s 10.0.0.2 -j MASQUERADE --random
sysctl -w net.ipv4.ip_forward=1
EOF

chmod a+x /usr/local/bin/netns.sh

# 部署开机服务
cat <<EOF > /etc/systemd/system/netns.service
[Unit]
Description=Create and configure network namespaces
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=bash /usr/local/bin/netns.sh

[Install]
WantedBy=multi-user.target
EOF

systemctl enable netns.service
systemctl start netns.service

# 修改cups服务
systemctl stop cups
cp /lib/systemd/system/cups.service /lib/systemd/system/cups.service.bak
sed -i 's#ExecStart=/usr/sbin/cupsd -l#ExecStart=/usr/bin/ip netns exec ns1 /usr/sbin/cupsd -l#g' /lib/systemd/system/cups.service

systemctl daemon-reload
systemctl start cups

2、登录root用户,su - root

3、进行部署,bash ./deploy.sh

3.问题处理

1、建议使用方法一,修改uri,在uri结尾添加?reserve=no

2、也可以使用方法二的部署脚本,直接部署,不会影响其它进程。

4.参考资料

http://web.mit.edu/ops/services/print/Attic/src/doc/LPRng-HOWTO-18.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/598016.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Azure runbook 使用用户托管标识查看资源状态

Azure runbook 使用用户托管标识查看资源状态 在托管标识里创建用户托管标识在被查看或变更资源进行授权创建自动化账号和runbook发布脚本添加计划 在托管标识里创建用户托管标识 在被查看或变更资源进行授权 这里是选取的Analysis Services 资源 创建自动化账号和runbook 发布…

【1】初识 Python

【1】初识 Python 1、编程语言(1) 语言(2) 编程语言(3) 如何利用编程语言与计算机交流(4) 常见的编程语言(5) 语法 2、Python 简介(1) 什么是 Python(2) Python 能做什么(3) Python 的由来(4) Python的特点① 语法精简② 生态好&#xff0c;开发效率高③ Python开发初体验&…

LC 226.翻转二叉树

226. 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a; root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a; root [2,1,3] 输出&#xff1a…

以动态库链接库 .dll 探索结构体参数

Dev c C语言实现第一个 dll 动态链接库 创建与调用-CSDN博客 在写dll 插件中发现的函数指针用途和 typedef 的定义指针的用法-CSDN博客 两步之后&#xff0c;尝试加入结构体实现整体数据使用。 注意结构体 Ak 是相同的 代码如下 DLL文件有两个&#xff0c;dll.dll是上面提到…

SpringCloud Alibaba Sentinel 实现熔断功能

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十六篇&#xff0c;即使用 Sentinel 实现熔断功能。 二、 Ribbon 系列 首先我们新建两个服务的提供者…

演示python连接数据库

先准备好数据库的配置&#xff0c; 域名&#xff0c;端口号&#xff0c;用户&#xff0c;密码&#xff0c;数据库名称。安装好【pymysql】库。 注意这里的db里&#xff0c;输入 数据库的分库名称&#xff0c;不是输数据库的名称 # 导包 import pymysql# # 连接到MySQL数据库 …

RuoYi-Vue若依框架-vue前端给对象添加字段

处理两个字段的时候有需求都要显示在下拉框的同一行&#xff0c;这里有两种解决方案&#xff0c;一是后端在实体类添加一个对象&#xff0c;加注解数据库忽略处理&#xff0c;在接口处拼接并传给前端&#xff0c;二是在前端获取的数据数组内为每个对象都添加一个字段&#xff0…

LeetCode热题100:哈希

1.两数之和 题目链接&#xff1a;两数之和 题目描述&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数…

【蓝桥杯-读数据】

蓝桥杯-读数据 P8598 [蓝桥杯 2013 省 AB] 错误票据 P8598 [蓝桥杯 2013 省 AB] 错误票据 这道题本身很简单&#xff0c;最大的难点在于读入数据。 #include<bits/stdc.h> using namespace std; #define int long long const int N 2e5 10; int a[N]; signed main()…

ArcGIS Pro怎么进行挖填方计算

在工程实施之前&#xff0c;我们需要充分利用地形&#xff0c;结合实际因素&#xff0c;通过挖填方计算项目的标高&#xff0c;以达到合理控制成本的目的&#xff0c;这里为大家介绍一下ArcGIS Pro中挖填方计算的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的…

STM32F103C8T6-CAN

本文内容 HAL库下printf重定向解决问题&#xff1a;Keil下调试可以正常运行&#xff0c;而下载后运行不了CAN总线的回环测试&#xff0c;自发自收 printf重定向 实现printf重定向的目的是方便调试&#xff0c;通过UART查看打印的调试信息。 下面以STM32F103C8T6为例&#xf…

Linux Shell:`cat`命令

Linux Shell&#xff1a;cat命令 Linux 系统中的 cat 命令是一种多用途的工具&#xff0c;主要用于查看、创建、连接和追加文件内容。其名称来源于 concatenate 的缩写&#xff0c;意味着它可以用来连接文件内容到标准输出&#xff08;屏幕&#xff09;。在日常使用中&#xf…