技術文章 · 網路與網通建置

網路印表機突然印不出來?IP、驅動、Spooler 與連接埠排查

網路印表機離線或卡住,依序查 IP、VLAN、驅動與單一列印工作;清整個 Spooler 佇列前先通知,RAW/LPD 也不要直接開到外網。

作者 Steve Chen · 發布  · 更新  · 約 10 分鐘閱讀

網路與網通建置 — 廷皓技術專欄插圖

同一台網路印表機有人能印、有人顯示離線,先比較電腦是用固定 IP、主機名稱、WSD 還是 Bonjour 找設備。DHCP 位址改變、跨 VLAN、多播被擋、Spooler 卡住與驅動差異,都會造成看似相同、實際路徑不同的故障。

先搞懂:電腦該怎麼『找到』印表機

辦公室裡的網路印表機,說穿了就是一台掛在網路上、會聽特定通訊埠的小電腦。電腦要把文件送過去,得先知道『它在哪』。這件事有兩條完全不同的路線,理解了這兩條路線,後面多數的疑難雜症都會變得有跡可循。

路線一:直接對著 IP 位址連(最穩的做法)

這是把印表機的 IP 位址寫死在電腦的連接埠設定裡,電腦要列印時,直接對那個位址、那個埠號把資料倒過去。常見有三種協定:

  • RAW(也就是 Port 9100,早年叫 AppSocket 或 JetDirect):最原始也最快的一種,電腦把已經排好版的列印資料流,直接灌進印表機的輸入緩衝區,送完偵測到結束字元或逾時就關閉連線。它被公認是『最簡單、最快、通常也最可靠』的網路列印協定,代價是它幾乎不回報狀態,電腦不太知道印表機那頭發生什麼事。
  • LPR/LPD(Port 515):比 RAW 多了一個佇列名稱(queue name),也多了作業完成的回報機制。多花一點設定,換來的是電腦比較知道『這份實際印完了沒』。
  • IPP(Port 631):現代的網路列印標準,狀態回報最完整,也是行動裝置列印背後常用的協定。

這條路線的共同特徵是:電腦記死了一組 IP。位址對,一切都好;位址一變,馬上離線。開頭那間貿易公司會計部斷線,就是踩在這一點上。

路線二:靠廣播自動發現(方便,但脆弱)

另一條路是讓電腦『喊一聲、等印表機自己回應』,不必手動打 IP。常見兩種機制:

  • WSD(Windows 的裝置自動探索):靠 UDP 3702 這個埠發出探索廣播,找到後再用 TCP 5357 建立連線。Windows 加印表機時那個『它自己就跳出來了』的體驗,多半就是它。
  • mDNS/Bonjour(蘋果的 AirPrint 背後就是它):靠 UDP 5353 的多播來互相通報,再走 IPP 的 631 埠列印。手機、平板不用裝驅動就能印,靠的就是這套。

自動發現用起來很爽,但它有兩個先天的脆弱點,工程上一定要知道。第一,它依賴多播廣播,而多播是 link-local 的,天生不跨路由器、不跨 VLAN,網路一分段它就失靈。第二,它綁在電腦的『網路設定檔』上,Windows 只要把這條網路從『私人/網域』誤判成『公用』,防火牆就會把多播探索流量整包擋掉,印表機明明在線上,電腦卻當它人間蒸發。工程判斷很清楚:自動發現適合家裡或極單純的環境,辦公室這種會擴編、會分網段、會換設備的地方,愈靠自動發現就愈容易三天兩頭出狀況。

『突然印不出來』的六種真正原因

把上面兩條路線放在腦子裡,再來看故障就清楚多了。以下由最常見到最少見排序。

一、印表機的 IP 換了(頭號元凶)

關鍵觀念是:DHCP 給的 IP 是『租』的,不是『買』的。每個位址都有一段租約(lease),租約到期要續、路由器一重開、或印表機被搬到別的 Wi-Fi 或網段,它重新開機時就可能拿到一個不一樣的位址。偏偏走『直連 IP』那條路線的電腦還死死指著舊號碼,結果就是滿畫面的『印表機離線』。這也解釋了為什麼同一間辦公室會有人斷、有人通:指著固定舊位址的斷了,用主機名稱或自動發現、會重新解析的那批,反而沒事。

二、IP 衝突(時好時壞,最難抓的一種)

這種最折磨人。通常是有人為了『給印表機一個固定位址』,手動設了一個號碼,卻剛好落在路由器的 DHCP 自動配發範圍內。過陣子 DHCP 把同一個位址也發給了別台電腦,兩台裝置搶同一個 IP,網路就開始鬧脾氣。它的機制是這樣:Windows 這類設備在正式使用一個位址前,會先送出所謂的 gratuitous ARP(無償位址廣播)做衝突偵測,等於在網段裡喊一句『這個號碼是我的,有沒有人也在用?』誰先卡位、誰後上線,決定了誰被踢掉,於是你會看到列印時通時不通、ping 有時到有時不到、重開機偶爾又好了:正因為它不是穩定壞掉,才特別難定位。

三、被網段或 VLAN 隔開了

比較有規模的辦公室,網管常把網路切成員工、訪客、物聯網、印表機等好幾個 VLAN 來做隔離。這時候如果你的電腦是靠『自動發現』找印表機,就會發現它『看不到』另一個網段的機器:因為前面說過,多播不跨網段。走直連 IP 的反而沒這問題,只要兩個網段之間的路由是通的、防火牆有放行列印埠,跨網段照印不誤。真的要讓 AirPrint 這類自動發現跨 VLAN,得在中間架一個 mDNS 反射器(reflector)把多播封包在網段間轉發,這已經是要動到網路設備的工程了。

四、列印服務或佇列卡死

Windows 的 Print Spooler 卡住時,先在佇列取消那一筆異常工作,再重新啟動服務。直接清空 C:\Windows\System32\spool\PRINTERS 會刪掉所有使用者尚未列印的工作,而且無法還原;多人共用環境要先通知、確認哪些工作可以丟棄,真的無法個別移除才在維護時段清理。若常卡住,再查驅動、韌體、連接埠監視器與網路品質,不要把 RAW 改 LPR 當成保證根治。

五、防火牆、防毒或網路設定檔翻臉

Windows 一旦把一條原本可信的網路重新判定成『公用』,內建防火牆就會開始擋掉自動探索的多播流量,WSD 立刻失效。第三方防毒軟體也可能把列印用的 9100、515、631、5357 這些埠給封了。這類問題的特徵是『沒改任何硬體,某次更新或重連之後就壞了』。

六、印表機自己的問題(別急著怪網路)

這點看似廢話,卻是老師傅第一個做的動作:先走到機器前面看一眼。沒開機、卡紙、沒墨、面板亮紅燈、或整台進了深度休眠,都會讓它『印不出來』,跟網路一點關係都沒有。這裡補一個很多人不知道的冷知識:某些世代的內建無線網卡晶片,有一個從幾年前就被回報、至今仍未根治的驅動問題:電腦睡眠喚醒後,mDNS 就失效了,於是你會遇到『筆電睡一覺醒來就找不到印表機,重開機才好』的怪象。這不是你的印表機壞,是無線驅動的老毛病,這也是我們通常會建議辦公室主力列印走有線直連 IP、少依賴無線自動發現的原因之一。

照這個順序查,多數狀況五分鐘內定位

遇到印不出來,別反覆試錯,照『由近到遠』一步步走,效率最高:

  • 第一步,走到印表機前。面板有沒有錯誤?開機了嗎?卡紙、沒墨?順手在面板操作『列印網路設定頁』,把它現在真正的 IP 和主機名稱印出來:這張紙是後面所有判斷的基準。
  • 第二步,核對位址。拿設定頁上的 IP,跟電腦連接埠裡設的那組比對。不一樣,恭喜你,問題常見就是它:IP 飄了,這也是最常見的一步就中。
  • 第三步,ping 一下印表機的 IP。ping 不通,就往網路層想:是不是不同網段或 VLAN?防火牆是不是擋了?
  • 第四步,ping 得通卻印不出來:先取消卡住的單一工作並重啟 Print Spooler。清整個 spool 資料夾會刪除所有人的待印工作,需先通知並確認可丟棄。
  • 第五步,還是不行。再考慮切換連接埠型態(RAW 與 LPR 互換)、重裝驅動、確認防火牆放行對應的埠。

經驗上,超過一半的案子卡在第一、二步,也就是『機器本身』和『IP 對不上』。把順序記熟,很多時候不必等師傅到場,內部同仁自己就能先定位。

一勞永逸的做法:固定位址加上對的連法

治標之後要治本。真正讓辦公室列印穩下來的,是把『位址不會亂跑』和『用對的方式連』這兩件事一次做對。

固定 IP,還是 DHCP 保留?

兩者的目標一樣:讓印表機永遠拿到同一個位址,但做法和維護成本不同:

  • 靜態 IP:直接在印表機機身上把位址寫死。好處是完全不依賴 DHCP 伺服器;壞處是你得自己維護一份位址清單,哪天換了新機器,還得記得重新設定,人一忘就容易埋雷。
  • DHCP 保留(reservation):在路由器或 DHCP 伺服器上,把印表機的 MAC 位址綁定一個固定 IP。好處是集中管理,位址全記在一個地方;設備故障要換新,只要把保留裡的 MAC 換成新機的,開機就自動拿到同一組位址和設定。對絕大多數中小型辦公室,這是我們最推薦的做法。

不論選哪一種,有一條工程準則務必遵守:把一段位址區塊劃給固定裝置專用,並且把 DHCP 自動配發範圍的起點設在這段之上,讓兩者永不重疊。這一步就能從根本上消滅前面講的『IP 衝突』。順帶把租約時間拉長(例如七到三十天),既減少續約流量,也讓短暫的 DHCP 中斷不至於馬上讓大家掉線。

連法優先用直連,少用自動發現

辦公室主力列印可用標準 TCP/IP 連接埠與 DHCP 保留/固定管理位址,減少自動探索受多播影響。RAW 9100 與 LPD 515 缺少現代加密保護,只適合受信任的內部網段,不要把 9100/515 直接開到 WAN;敏感文件或跨網段需求,設備支援時優先用 IPPS/IPP over TLS。AirPrint 跨 VLAN 則用受控的 mDNS gateway/reflector,並限制可探索的服務。

用主機名稱連的,記得顧好 DNS

如果辦公室習慣用主機名稱(而非 IP)連印表機,那就要確認 DNS 有正確指向它;換過位址之後,別忘了把電腦上的舊快取清掉(清 DNS 快取),否則電腦會抱著過期的對照表,一直往錯的號碼送。

幾個一再看到的誤區

  • 『我挑了一個看起來沒人用的 IP 給印表機。』:只要那個號碼落在 DHCP 配發範圍內,就是顆定時炸彈,遲早跟別台撞號。要嘛設在配發範圍外,要嘛老實用 DHCP 保留。
  • 把印表機 USB 接在某台電腦上做共享當主力。:那台主機一關機、一休眠、一重灌,全辦公室跟著印不了。臨時應急可以,長期絕對別這樣撐。
  • 一出問題就先重灌驅動。:驅動是排查的『最後一步』,不是第一步。多數問題出在 IP 或服務,先動驅動往往白忙一場。
  • 以為 WSD『全自動』最省事。:它是最省設定,卻也是環境一有風吹草動最先壞掉的一個。方便和穩定,這裡要選穩定。
  • 把印表機的省電休眠設得太積極。:進了深度睡眠,喚醒時網路堆疊會慢半拍,第一份列印常常就這樣逾時失敗。辦公量大的機器,休眠時間別設太短。

對照指令

聯絡廷皓討論 看更多文章