中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

群暉安裝打印服務器,驅動(dong)HP P1106札記(一)—— 群暉配置

一、需求背景

今(jin)年小朋友(you)開(kai)始上學,老(lao)師習慣(guan)從(cong)釘(ding)釘(ding)或者微(wei)信布置(zhi)作業,幾乎每天都需要(yao)打印(yin)。現在打印(yin)機(ji)接在電(dian)腦(nao)上,每次都要(yao)開(kai)電(dian)腦(nao),就想著(zhu)做一個打印(yin)服務器,不再依賴于(yu)電(dian)腦(nao),手機(ji)、iPad各類終端(duan)都可以發起(qi)打印(yin)。 

前后折騰了好幾天,踩坑的過程真的是一言難盡,總結下來主要有幾個坑:
1)群暉的版(ban)本問題:群暉的dsm版本(ben)不(bu)一樣(yang),對命令的支持(chi)就(jiu)不(bu)一樣(yang)。網上很多資料也(ye)有巨大的誤導性。

2)docker被墻:網上(shang)也有各種(zhong)解(jie)決辦法,但是,但是在群(qun)暉里(li)都不(bu)太好(hao)用,一方(fang)面(mian)是很多源(yuan)都失(shi)效了(le),另一方(fang)面(mian)群(qun)暉有很多奇(qi)奇(qi)怪(guai)怪(guai)的(de)特殊設置。

3)群(qun)暉打印(yin)服務器配置:網上資料很(hen)(hen)多(duo)很(hen)(hen)多(duo),但不是(shi)版本過時(shi),就是(shi)信息有誤,還(huan)有很(hen)(hen)多(duo)博(bo)主是(shi)搬運工,信息不準確(que)容(rong)易誤導人。

4)打印(yin)機(ji)的Linux驅動:驅動非常不好找,HP還自己搞了個叫HPLIP的鬼,這個HPLIP更難找,網上資料也(ye)少。

二、硬件配置說明

NAS:群暉NAS 220+ ,DSM版本:7.2.2-72806 Update 4
打印機:HP LaserJet Pro P1106(沒有無線網卡版本(ben)),打印機通過USB線插在(zai)NAS220+的后(hou)面

特別提示:理論上,本文的方法(fa)是適用HP及其他打(da)印機(ji)的,尤其是CUPS的一系(xi)列配置。

三、群暉配置

群暉(hui)(hui)的配置,主要涉(she)及:1)群暉(hui)(hui)自帶的cups、avahi、dbus服務,2)docker安裝cups。

先(xian)簡要說(shuo)明這三(san)個服(fu)務是(shi)干嘛用的(de):

CUPS?:Linux下的打印隊列與作業調度服務(wu),包括(kuo):驅(qu)動(dong)打印機、配(pei)置驅(qu)動(dong)、開打印機共享、提供遠程打印服務(wu)等。

?Avahi??:Linux下的(de)局域網內設(she)備(bei)廣播服(fu)務(wu)(譬如(ru)打印(yin)機),告訴(su)?網絡中的(de)其他(ta)設(she)備(bei)(電腦、手機之(zhi)類)我提供打印(yin)機服(fu)務(wu)。

?DBus?:Linux 下的消息總線服務,負責在 ?CUPS/Avahi之間傳遞事件與指令,實現解耦通信。

這里不(bu)解(jie)釋(shi)什么ipp、mdns、wsdd協議之類(lei),說起來(lai)確實有點復雜。

1、群暉的服務配置

停用自帶的CUPS、啟用avahi、dbus服(fu)務,需要先開群(qun)暉(hui)的telnet或者ssh端口。

特別提示:群暉自(zi)帶的CUPS一定要停,因為(wei)他默認占用(yong)631端口,會(hui)與(yu)后面的docker里的cups端口重(zhong)疊,導致(zhi)Docker創建容器失敗(bai)。

1)啟用群暉的ssh端口

群(qun)暉(hui):控制面(mian)板(ban)-終(zhong)(zhong)端機和SNMP-終(zhong)(zhong)端機- 啟(qi)用SSH功能,端口默認(ren)22,我改成220(可以隨意),打開ssh,后(hou)(hou)面(mian)用netterm之類ssh軟件去登錄群(qun)暉(hui)后(hou)(hou)臺進行配置(zhi)。

netterm的下載()和使用,包(bao)括(kuo)常見(jian)命令的使用,就不展開了(le)。 

如下圖所示。

8d8d4a10-5891-435e-9316-63f5aa70253e

 2)配置群暉后臺服務

停cups、開avahi、dbus,默(mo)認情況下,這幾個服務群暉(hui)系統都是開的。

a)先查詢 cups服(fu)務狀態(tai)(我(wo)(wo)這里(li)顯示已(yi)經(jing)mask,是因為我(wo)(wo)已(yi)經(jing)做過后續(xu)操作)

root@nas220:~# systemctl list-unit-files --type=service|grep cups
cups-lpd@.service masked
cups-service-handler.service masked
cups.service masked
cupsd.service masked

b)禁用 cups服務

#禁用cups相關服務,先stop,在disable,再(zai)mask(確保萬一(yi))
systemctl stop cups.service
systemctl stop cups-lpd@service
systemctl stop cupsd.service
systemctl disable cups.service
systemctl disable cups-lpd@service
systemctl disable cupsd.service
systemctl mask cups.service
systemctl mask cups-lpd@service
systemctl mask cupsd.service

c)順帶說下一些其他操作,譬如,恢復服務,重啟服務,查看服務狀態,查看服務依賴關系,查看服務日志

#恢復cups相關服務(萬一操作出錯,可以改回來
systemctl unmask cups.service
systemctl unmask cups-lpd@service
systemctl unmask cupsd.service
systemctl enable cups.service
systemctl enable cups-lpd@service
systemctl enable cupsd.service
systemctl start cups.service
systemctl start cups-lpd@service
systemctl start cupsd.service
systemctl start avahi.service
systemctl start dbus.service

# 查看avahi服務狀態,可以看到
avahi使用(yong)的配(pei)置,指向/usr/lib/systemd/system/avahi.service
avahi狀態(tai)是active,后(hou)臺進程(cheng)是avahi-daemon,進程(cheng)id為25262
另外,有些linux版本,avahi服務名字叫avahi-daemon

root@nas220:~# systemctl status avahi
● avahi.service - Avahi daemon
Loaded: loaded (/usr/lib/systemd/system/avahi.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2025-10-28 21:55:36 CST; 2 days ago
Main PID: 25262 (avahi-daemon)
Memory: 540.0K
CGroup: /system.slice/avahi.service
└─25262 avahi-daemon: running [nas220.local]

Oct 30 23:07:37 nas220 systemd[1]: Started Avahi daemon.
Oct 30 23:07:37 nas220 systemd[1]: Started Avahi daemon.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

# 查看avahi日志
root@nas220:~# journalctl -fu avahi

-- Logs begin at Thu 2025-10-30 03:00:09 CST. --
Oct 30 23:07:37 nas220 systemd[1]: Started Avahi daemon.
Oct 30 23:07:37 nas220 systemd[1]: Started Avahi daemon.

 

這些操作(zuo)都完(wan)成后,正常(chang)狀態下,打(da)印機插在群暉上(shang)并(bing)通(tong)電,界面上(shang)是(shi)看不到(dao)打(da)印機的,如下圖。

企業微信截圖_17618814679919

2、在群暉的docker中安裝cups容器

包括兩個關(guan)鍵(jian)步驟:1)配置docker倉(cang)庫地址,2)下(xia)載 鏡(jing)像(xiang)文件,3)安(an)裝容器并啟動(dong)docker 

 1)配置docker倉庫的下載地址

特別提示(shi):網上各種解決docker墻的教程,基本上都是(shi)替換mirror地址的方(fang)法(fa),但這(zhe)(zhe)些(xie)鏡(jing)像(xiang)地址隔一(yi)段時間就會失效(xiao),我這(zhe)(zhe)里推薦的地址,也不排除后面(mian)會被墻。

a)查看群暉的docker使用的配置文件

這一部分網上也有一堆教(jiao)程(cheng),但(dan)(dan)是,但(dan)(dan)是,因(yin)為群暉(hui)的版本差異(yi)性(xing),很(hen)多教(jiao)程(cheng)是不適用的,這里重點(dian)講方法(fa),大家按(an)照(zhao)方法(fa)去找,再怎(zen)么升級版本也不會有問(wen)題。

#查看 Docker 在(zai)群暉(hui)上守護進程
root@nas220:# systemctl list-units --type=service --state=running|grep ContainerManager
pkg-ContainerManager-dockerd.service                     loaded active running Docker Application Container Engine
pkg-ContainerManager-event-watcherd.service              loaded active running Docker event watch service
pkg-ContainerManager-termd.service                       loaded active running Daemon for container terminal session
#pkg-ContainerManager-dockerd.service 負責把docker cli的指令傳給pkgctl-ContainerManager
#pkg-ContainerManager-event-watcherd 事件/日志收集服務
#pkg-ContainerManager-termd 容器終端(duan)服務
#查看pkg-ContainerManager-dockerd.service讀取那個配置文件
root@nas220:# systemctl cat pkg-ContainerManager-dockerd.service | grep -E 'ExecStart|dockerd.*config-file'
ExecStart=/var/packages/ContainerManager/target/usr/bin/dockerd --config-file /var/packages/ContainerManager/etc/dockerd.json

#讀取docker配(pei)置文件(jian),注意配(pei)置文件(jian)在目錄 /var/packages/ContainerManager/etc下
root@nas220:# vi /var/packages/ContainerManager/etc/dockerd.json
"data-root":"/var/packages/ContainerManager/var/docker",
"log-driver":"db",
"max-concurrent-downloads":3,
"max-download-attempts":5,
"registry-mirrors":["//docker.1ms.run","//docker.xuanyuan.me","//docker.m.daocloud.io"],
"seccomp-profile":"unconfined",
"storage-driver":"btrfs"}

#查看配置(zhi)是否生效
root@nas220:# docker info | grep -A2 -i registry
WARNING: No kernel memory TCP limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
 Registry Mirrors:
  https://docker.1ms.run/
  https://docker-0.unsee.tech/
  https://registry.cyou/
 Live Restore Enabled: false

#刷新配(pei)置到服務(wu)
root@nas220:~# systemctl daemon-reload
#重啟容(rong)器管(guan)理器
root@nas220:~# systemctl restart pkgctl-ContainerManager
#重(zhong)啟(qi)ContainerManager 守護進程(這一(yi)步可以(yi)不做,做上一(yi)步的時(shi)候會自動重(zhong)啟(qi)pkg-ContainerManager-dockerd)
root@nas220:# systemctl restart pkg-ContainerManager-dockerd

#查(cha)看容器啟動(dong)日志
root@nas220:# journalctl -fu pkg-ContainerManager-dockerd
-- Logs begin at Fri 2025-10-31 03:00:24 CST. --
Oct 31 15:00:53 nas220 dockerd[9781]: time="2025-10-31T15:00:53.572609106+08:00" level=info msg="Daemon has completed initialization"
Oct 31 15:00:54 nas220 docker[9781]: time="2025-10-31T15:00:54.404117212+08:00" level=info msg="API listen on /var/run/docker.sock"
Oct 31 15:00:54 nas220 dockerd[9781]: time="2025-10-31T15:00:54.404117212+08:00" level=info msg="API listen on /var/run/docker.sock"
Oct 31 15:00:54 nas220 systemd[1]: Started Docker Application Container Engine.
Oct 31 15:00:59 nas220 docker[9781]: time="2025-10-31T15:00:59.846499735+08:00" level=warning msg="path in container /dev/usb/lp0 already exists in privileged mode" container=03effb96b7fac0f010fdb201d1c6b53e34fe34fbeb343d0d259e788547612363
Oct 31 15:00:59 nas220 dockerd[9781]: time="2025-10-31T15:00:59.846499735+08:00" level=warning msg="path in container /dev/usb/lp0 already exists in privileged mode" container=03effb96b7fac0f010fdb201d1c6b53e34fe34fbeb343d0d259e788547612363
Oct 31 15:01:02 nas220 dockerd[9781]: time="2025-10-31T15:01:02.610082860+08:00" level=info msg="loading plugin \"io.containerd.internal.v1.shutdown\"..." runtime=io.containerd.runc.v2 type=io.containerd.internal.v1
Oct 31 15:01:02 nas220 dockerd[9781]: time="2025-10-31T15:01:02.610210705+08:00" level=info msg="loading plugin \"io.containerd.ttrpc.v1.pause\"..." runtime=io.containerd.runc.v2 type=io.containerd.ttrpc.v1
Oct 31 15:01:02 nas220 dockerd[9781]: time="2025-10-31T15:01:02.610262653+08:00" level=info msg="loading plugin \"io.containerd.event.v1.publisher\"..." runtime=io.containerd.runc.v2 type=io.containerd.event.v1
Oct 31 15:01:02 nas220 dockerd[9781]: time="2025-10-31T15:01:02.610305985+08:00" level=info msg="loading plugin \"io.containerd.ttrpc.v1.task\"..." runtime=io.containerd.runc.v2 type=io.containerd.ttrpc.v1

 

特別提示:

1)pkg-ContainerManager-dockerd服務的配置文件是:/var/packages/ContainerManager/etc/dockerd.json

其(qi)中(zhong) "registry-mirrors":["//docker.1ms.run","//registry.cyou","//docker-0.unsee.tech"] 是mirror地(di)址的配(pei)置(zhi),這三(san)個地(di)址是目前還能用的mirror地(di)址,可以用瀏覽(lan)器來打開驗(yan)證(zheng)。

2)群暉(hui)界面中的 鏡(jing)像(xiang)地(di)址(zhi)配置 存放在另(ling)一個(ge)文(wen)件:/var/packages/ContainerManager/etc/registry.json,但界面上不管如何配置,在界面上都會提示連接鏡像倉庫失敗。

網上有說是dns污染,但是在curl 測試都是通過的。

#驗證docker鏡像服務地址
root@nas220:# curl -I https://docker.1ms.run/v2/
HTTP/2 401 
content-type: application/json; charset=utf-8
content-length: 84
date: Fri, 31 Oct 2025 06:21:17 GMT
access-control-allow-headers: Origin, Content-Type, Accept, Authorization
access-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-origin: *
docker-distribution-api-version: registry/2.0
www-authenticate: Bearer realm="//docker.1ms.run/openapi/v1/auth/token", service="docker.1ms.run"
x-cache-status: BYPASS
x-ws-request-id: *****_PS-SHA-******_12259-*****
x-via: 2.0 PS-SHA-***** [BYPASS]
server: nginx

2)下載鏡像文件 olbat/cupsd

因為界面上(shang)連接鏡像倉庫失敗,就用命令行來操作,如下:

#下載(zai)鏡(jing)像文件(jian)
root@nas220:# docker pull olbat/cupsd:latest
latest: Pulling from olbat/cupsd
513c5a3cc2ee: Pull complete 
f7367200a3fe: Pull complete 
265357e4964c: Pull complete 
13628d785040: Pull complete 
Digest: sha256:bb0b0c26af82f63c6e69795f165cb0d5805581c9bb4d61924e7bf8568e4f9855
Status: Downloaded newer image for olbat/cupsd:latest
docker.io/olbat/cupsd:latest

#查(cha)看(kan)鏡像(xiang)大小(xiao)
root@nas220:# docker images
REPOSITORY                TAG        IMAGE ID       CREATED       SIZE
olbat/cupsd               latest     e40d387fc6f9   4 days ago    613MB

特別(bie)提示:前面有關修改docker.json那些(xie)操(cao)作(zuo),也(ye)可以直接跳過,通(tong)過指定鏡像服務下(xia)載地(di)址的(de)方式,來下(xia)載鏡像文件,如下(xia):

root@nas220:# docker pull docker.1ms.run/library/nginx:latest
latest: Pulling from library/nginx
38513bd72563: Pull complete 
a0a6ab141558: Pull complete 
0e86847a3920: Pull complete 
1bace2083289: Pull complete 
89df300a082a: Pull complete 
35fb9ffa6621: Pull complete 
5545b08f9d26: Pull complete 
Digest: sha256:f547e3d0d5d02f7009737b284abc87d808e4252b42dceea361811e9fc606287f
Status: Downloaded newer image for docker.1ms.run/library/nginx:latest
docker.1ms.run/library/nginx:latest
root@nas220:# docker images
REPOSITORY                     TAG        IMAGE ID       CREATED       SIZE
docker.1ms.run/library/nginx   latest     9d0e6f6199dc   2 days ago    152MB
olbat/cupsd                    latest     e40d387fc6f9   4 days ago    613MB

 3)創(chuang)建(jian)olbat/cupsd容(rong)器(基于前面下載(zai)的鏡像) 

#創建配置文件(jian)目錄
root@nas220:# mkdir -p /volume1/docker/cups/logs /volume1/docker/cups/avahi /volume1/docker/cups/config
# 創建容器
# 注意這里指定了631端口,因此前面的停群暉宿主機的CUPSD動作必須先完成,否則會報端口沖突,最終導致啟動失敗。
root@nas220:
# docker run -d --name=cups --net=host --privileged=true \ > -e TZ="Asia/Shanghai" -e HOST_OS="Synology" \ > -p 631:631/tcp -p 631:631/udp \ > -v /volume1/docker/cups/config:/config \ > -v /dev:/dev \ > -v /volume1/docker/cups/logs:/var/log \ > -v /volume1/docker/cups/avahi:/etc/avahi/services \ > -v /var/run/dbus:/var/run/dbus \ > --restart unless-stopped \ > olbat/cupsd WARNING: Published ports are discarded when using host network mode cc564b6945109a932f9e21409d9b8369dfc74d429ff2e36c60c4563ef1cb4bc5
#切換到容器環境 root@nas220:
# docker exec -it cups /bin/bash
# 查看容器內文件目錄,容器內連vi都沒有。。。 root@nas220:
/# ls -l total 16 lrwxrwxrwx 1 root root 7 Aug 10 20:30 bin -> usr/bin drwxr-xr-x 1 root root 0 Aug 10 20:30 boot drwx------ 1 root root 0 Oct 31 15:40 config drwxr-xr-x 14 root root 13820 Oct 31 14:23 dev drwxr-xr-x 1 root root 2138 Oct 31 15:40 etc drwxr-xr-x 1 root root 10 Oct 27 10:04 home lrwxrwxrwx 1 root root 7 Aug 10 20:30 lib -> usr/lib lrwxrwxrwx 1 root root 9 Aug 10 20:30 lib64 -> usr/lib64 drwxr-xr-x 1 root root 0 Oct 20 08:00 media drwxr-xr-x 1 root root 0 Oct 20 08:00 mnt drwxr-xr-x 1 root root 0 Oct 20 08:00 opt dr-xr-xr-x 377 root root 0 Oct 31 15:40 proc drwx------ 1 root root 38 Oct 27 10:03 root drwxr-xr-x 1 root root 118 Oct 31 15:40 run lrwxrwxrwx 1 root root 8 Aug 10 20:30 sbin -> usr/sbin drwxr-xr-x 1 root root 0 Oct 20 08:00 srv dr-xr-xr-x 12 root root 0 Oct 18 15:45 sys drwxrwxrwt 1 root root 0 Oct 27 10:04 tmp drwxr-xr-x 1 root root 94 Oct 27 10:03 usr drwxr-xr-x 1 root root 90 Oct 27 10:03 var #安裝vim root@CUPS:/$ apt update && apt install -y vim Hit:1 http://deb.debian.org/debian testing InRelease Hit:2 http://deb.debian.org/debian testing-updates InRelease Hit:3 http://deb.debian.org/debian-security testing-security InRelease 43 packages can be upgraded. Run 'apt list --upgradable' to see them. vim is already the newest version (2:9.1.1230-2).

#修改PS1提示符成 用戶/容器名CUPS
root@CUPS:~$ echo 'PS1="\[\e[1;33m\]\u@\[\e[1;35m\]CUPS\[\e[1;36m\]:\w\[\e[0m\]\$ "' >> ~/.bashrc && source ~/.bashrc

 

在(zai)群暉的圖(tu)形界面上,可以看到創(chuang)建的容(rong)器正(zheng)在(zai)運行:

c07007e0-cccc-4d79-a496-de894652ffe8

 

到(dao)這里,群(qun)暉的(de)配置基本結束(shu),后(hou)面進入容器內的(de)打印機(ji)配置。

cups服務在容器已經啟動成(cheng)功,且與(yu)宿主(zhu)機(ji)共享avahi、dbus,就是cups服務由容器提(ti)(ti)供(gong),打(da)印(yin)機(ji)廣播(bo)服務由宿主(zhu)機(ji)提(ti)(ti)供(gong),具體 如(ru)下:

# 查看容器中cups 
root@CUPS:~$ service cups status cupsd is running.
# 查看容(rong)器中運行(xing)的服(fu)務狀態 root@CUPS:~$ service --status-all [ + ] cups [ - ] cups-browsed [ - ] dbus [ - ] procps [ - ] saned [ - ] sudo [ - ] x11-common # 查看宿主(zhu)機avahi服務(wu) root@nas220:~# systemctl status avahi ● avahi.service - Avahi daemon Loaded: loaded (/usr/lib/systemd/system/avahi.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2025-10-28 21:55:36 CST; 2 days ago Main PID: 25262 (avahi-daemon) Memory: 720.0K CGroup: /system.slice/avahi.service └─25262 avahi-daemon: running [nas220.local] Oct 31 13:18:50 nas220 systemd[1]: Started Avahi daemon. Oct 31 13:18:50 nas220 systemd[1]: Started Avahi daemon. Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

# 查看宿主機dbus服務 root@nas220:
~# systemctl status dbus ● dbus-system.service - D-Bus System Message Bus Loaded: loaded (/usr/lib/systemd/system/dbus-system.service; static; vendor preset: disabled)  Active: active (running) since Sat 2025-10-18 13:30:15 CST; 1 weeks 6 days ago Main PID: 26276 (dbus-daemon) CGroup: /syno_dsm_internal.slice/dbus-system.service └─26276 /sbin/dbus-daemon --system --nopidfile Oct 31 16:01:07 nas220 dbus-daemon[26276]: [system] Activating service name='org.freedesktop.login1' requested by ':1.131' (uid=0 pid=3858 comm="apt in...cehelper) Oct 31 16:01:07 nas220 dbus-daemon[26276]: [system] Activated service 'org.freedesktop.login1' failed: Failed to execute program org.freedesktop.login1...directory Oct 31 16:03:21 nas220 dbus-daemon[26276]: [system] Activating service name='org.freedesktop.login1' requested by ':1.132' (uid=0 pid=4725 comm="apt in...cehelper) Oct 31 16:03:21 nas220 dbus-daemon[26276]: [system] Activated service 'org.freedesktop.login1' failed: Failed to execute program org.freedesktop.login1...directory Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. Hint: Some lines were ellipsized, use -l to show in full.

 四、小結

到這(zhe)里群暉(hui)的(de)配置(zhi)就基本結束(shu)了,下(xia)一(yi)章是CUPS里打印機相關(guan)配置(zhi),特別說明以下(xia)幾個關(guan)鍵點(dian):

1、群(qun)暉自帶的(de)CUPS必須停,否則與容器(qi)的(de)CUPS會(hui)沖突;

2、群(qun)暉自帶(dai)的avahi、dbus不能(neng)停;

3、容器內的cups共享群暉宿(su)主機提供的avahi、dbus服務,對外開啟打印(yin)機廣播服務。

(怎么(me)共享的?依賴(lai)于容器的啟動配置(zhi),下面這幾個是關鍵。 

 -v /volume1/docker/cups/avahi:/etc/avahi/services  // 共享avahi的(de)配置目錄

-v /var/run/dbus:/var/run/dbus //共(gong)享總線文件

--privileged=true //開放宿(su)主(zhu)機(ji)操作(zuo)權限(xian) )

posted @ 2025-10-31 17:19  黯然銷魂掌2015  閱讀(40)  評論(0)    收藏  舉報

聯系方式:qq 16906913