<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

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

      一、需求背景

      今年小朋友開始上學,老師習慣從釘釘或者微信布置作業,幾乎每天都需要打印。現在打印機接在電腦上,每次都要開電腦,就想著做一個打印服務器,不再依賴于電腦,手機、iPad各類終端都可以發起打印。 

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

      2)docker被墻:網上也有各種解決辦法,但是,但是在群暉里都不太好用,一方面是很多源都失效了,另一方面群暉有很多奇奇怪怪的特殊設置。

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

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

      二、硬件配置說明

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

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

      三、群暉配置

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

      先簡要說明這三個服務是干嘛用的:

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

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

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

      這里不解釋什么ipp、mdns、wsdd協議之類,說起來確實有點復雜。

      1、群暉的服務配置

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

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

      1)啟用群暉的ssh端口

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

      netterm的下載(NetTerm(遠程登錄電腦軟件)V5.4.6.2 最新版)和使用,包括常見命令的使用,就不展開了。 

      如下圖所示。

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

       2)配置群暉后臺服務

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

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

      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,再mask(確保萬一)
      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使用的配置,指向/usr/lib/systemd/system/avahi.service
      avahi狀態是active,后臺進程是avahi-daemon,進程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.

       

      這些操作都完成后,正常狀態下,打印機插在群暉上并通電,界面上是看不到打印機的,如下圖。

      企業微信截圖_17618814679919

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

      包括兩個關鍵步驟:1)配置docker倉庫地址,2)下載 鏡像文件,3)安裝容器并啟動docker 

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

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

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

      這一部分網上也有一堆教程,但是,但是,因為群暉的版本差異性,很多教程是不適用的,這里重點講方法,大家按照方法去找,再怎么升級版本也不會有問題。

      #查看 Docker 在群暉上守護進程
      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 容器終端服務
      #查看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配置文件,注意配置文件在目錄 /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":["https://docker.1ms.run","https://docker.xuanyuan.me","https://docker.m.daocloud.io"],
      "seccomp-profile":"unconfined",
      "storage-driver":"btrfs"}
      
      #查看配置是否生效
      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
      
      #刷新配置到服務
      root@nas220:~# systemctl daemon-reload
      #重啟容器管理器
      root@nas220:~# systemctl restart pkgctl-ContainerManager
      #重啟ContainerManager 守護進程(這一步可以不做,做上一步的時候會自動重啟pkg-ContainerManager-dockerd)
      root@nas220:# systemctl restart pkg-ContainerManager-dockerd
      
      #查看容器啟動日志
      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

      其中 "registry-mirrors":["https://docker.1ms.run","https://registry.cyou","https://docker-0.unsee.tech"] 是mirror地址的配置,這三個地址是目前還能用的mirror地址,可以用瀏覽器來打開驗證。

      2)群暉界面中的 鏡像地址配置 存放在另一個文件:/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="https://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

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

      #下載鏡像文件
      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
      
      #查看鏡像大小
      root@nas220:# docker images
      REPOSITORY                TAG        IMAGE ID       CREATED       SIZE
      olbat/cupsd               latest     e40d387fc6f9   4 days ago    613MB

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

      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)創建olbat/cupsd容器(基于前面下載的鏡像) 

      #創建配置文件目錄
      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

       

      在群暉的圖形界面上,可以看到創建的容器正在運行:

      c07007e0-cccc-4d79-a496-de894652ffe8

       

      到這里,群暉的配置基本結束,后面進入容器內的打印機配置。

      cups服務在容器已經啟動成功,且與宿主機共享avahi、dbus,就是cups服務由容器提供,打印機廣播服務由宿主機提供,具體 如下:

      # 查看容器中cups 
      root@CUPS:~$ service cups status cupsd is running.
      # 查看容器中運行的服務狀態 root@CUPS:~$ service --status-all [ + ] cups [ - ] cups-browsed [ - ] dbus [ - ] procps [ - ] saned [ - ] sudo [ - ] x11-common # 查看宿主機avahi服務 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.

       四、小結

      到這里群暉的配置就基本結束了,下一章是CUPS里打印機相關配置,特別說明以下幾個關鍵點:

      1、群暉自帶的CUPS必須停,否則與容器的CUPS會沖突;

      2、群暉自帶的avahi、dbus不能停;

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

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

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

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

      --privileged=true //開放宿主機操作權限 )

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

      聯系方式:qq 16906913

      主站蜘蛛池模板: 日日碰狠狠躁久久躁96avv| 2021亚洲国产精品无码| 镇江市| 国产一区二区三区色噜噜| 黑人精品一区二区三区不| 性少妇tubevⅰdeos高清| 成人啪精品视频网站午夜| 国产高在线精品亚洲三区| 好爽毛片一区二区三区四| 日本三级香港三级人妇99| 亚洲人成在久久综合网站| 99精品热在线在线观看视| 日韩精品毛片一区到三区| 欧美亚洲另类制服卡通动漫 | 华人在线亚洲欧美精品| 亚洲中文字幕无码一久久区| 又黄又无遮挡AAAAA毛片| 精品超清无码视频在线观看 | 国产综合色在线精品| 久久av无码精品人妻出轨| 免费无码影视在线观看mov| 亚洲码亚洲码天堂码三区| 国精无码欧精品亚洲一区| 日韩高清不卡一区二区三区| 国产成人午夜福利院| 美女内射无套日韩免费播放| 欧美日韩综合网| 综合色在线| 亚洲人妻中文字幕一区| 免费拍拍拍网站| 亚洲色最新高清AV网站| 饥渴少妇高潮正在播放| 日本黄页网站免费观看| 亚洲中文字幕一区精品自| 国产麻豆一精品一av一免费| 国产在线中文字幕精品| 亚洲卡1卡2卡新区网站| 国产精品国三级国产av| 欧美人与动牲交A免费观看| 狠狠色丁香婷婷综合尤物| 中文字幕一区二区三区麻豆|