<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Container on nitpum</title>
    <link>https://nitpum.com/tags/container/</link>
    <description>Recent content in Container on nitpum</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 15 Mar 2026 15:05:31 +0700</lastBuildDate><atom:link href="https://nitpum.com/tags/container/index.xml" rel="self" type="application/rss+xml" /><item>
			<title>บันทึก: Cups Proxmox ทำพรินเตอร์เซิฟเวอร์</title>
			<link>https://nitpum.com/post/cups-proxmox/</link>
			<pubDate>Sun, 15 Mar 2026 15:05:31 +0700</pubDate>
			
			<guid>https://nitpum.com/post/cups-proxmox/</guid>
			<description><![CDATA[<p>พอดีมีเหตุให้ต้องลง CUPS หรือ printer server บน Proxmox ไว้เลยจะมาเขียนบันทึกไว้สักหน่อยเผื่อตัวผมเองหรือใครมาอ่านจะได้พอทำตามได้</p>
<p>ที่ไปที่มาคร่าวๆ คือ อยากได้พรินเตอร์เซิฟเวอร์ตรงกลางเวลาจะสั่งพิมพ์อะไรจะได้ไม่ต้องยกเครื่องไปต่อสาย หรือใช้มือถือสั่งพิมพ์แบบไร้สายได้เลย</p>
<p>เลยไปค้นข้อมูลเจอว่าจริงๆ มีระบบนี้มานานแล้วชื่อ <a href="https://openprinting.github.io/cups/" target="_blank" rel="noopener">OpenPrinting CUPS</a> แค่เอาไปลงก็ใช้ได้เลย</p>
<h2 id="proxmox-lxc">
	<a href="#proxmox-lxc" class="anchor-link" aria-label="Anchor"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a>
		Proxmox LXC
</h2>
<p>พอดีมีเครื่องเซิฟเวอร์ที่ลง Proxmox ไว้อยู่แล้ว แล้วก็ไม่อยากเอา CUPS ไปลงตรงๆ บนเครื่องด้วยอยากเอาใส่ container มากกว่า เลยจบด้วยการเอาไปลงใน unprivileged LXC บน Proxmox แล้ว passthrough USB เข้าไปใน PXC เอา</p>
<p>ผมเลือก Debian มาลงเพราะคุ้นเคยสุด ลงเสร็จหัวใจหลักสำคัญคือต้องไปเซ็ต passthrough USB ทำได้ด้วยการแก้ config lxc ที่ <code>etc/pve/lxc/&lt;CTID&gt;.conf</code> ใส่ 2 บรรทัดนี้เพิ่ม</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>lxc.mount.entry: /dev/bus/usb dev/bus/usb none bind,optional,create=dir
</span></span><span style="display:flex;"><span>lxc.cgroup2.devices.allow: c 189:* rwm
</span></span></code></pre></div><p>จริงๆ ถ้าจะให้ดีควรจำกัด USB ที่ส่งไปให้เหลือแต่ของ printer เท่านั้นได้กำจัด scope การทำงานหรือถ้าเกิดโดนแฮคมาจะได้ไม่เสียหายอะไรมาก</p>
<p>พอ restart container แล้วเข้าไปพิมพ์คำสั่งใน container</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>lsusb
</span></span></code></pre></div><p>ควรจะเห็นรายชื่อ usb ที่ต่ออยู่ทั้งหมด หรือถ้ารัน <code>lpinfo -v</code> ก็จะได้ชื่อเครื่องพรินเตอร์เราอย่างของผมเป็น Brother ก็จะเห็นแบบนี้</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>direct usb://Brother/&lt;Model-Code&gt;?serial<span style="color:#f92672">=</span>&lt;Serial&gt;
</span></span></code></pre></div><h2 id="ลง-cups">
	<a href="#%e0%b8%a5%e0%b8%87-cups" class="anchor-link" aria-label="Anchor"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a>
		ลง CUPS
</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>apt update
</span></span><span style="display:flex;"><span>apt install cups cups-client cups-filters printer-driver-all
</span></span></code></pre></div><p>เปิด service</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>systemctl enable --now cups
</span></span></code></pre></div><p>แก้ config เพื่อให้สามารถ access มาดูสถานะได้แบบไม่ต้อง login แก้ไฟล์ <code>/etc/cups/cupsd.conf</code>  ตามนี้</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-txt" data-lang="txt"><span style="display:flex;"><span>Port 631
</span></span><span style="display:flex;"><span>Browsing On
</span></span><span style="display:flex;"><span>BrowseLocalProtocols dnssd
</span></span><span style="display:flex;"><span>DefaultShared Yes
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>&lt;Location /&gt;
</span></span><span style="display:flex;"><span>  Order allow,deny
</span></span><span style="display:flex;"><span>  Allow @LOCAL
</span></span><span style="display:flex;"><span>&lt;/Location&gt;
</span></span></code></pre></div><p>แก้เสร็จสั่ง restart service</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>systemctl restart cups
</span></span></code></pre></div><p>ตอนนี้ควรจะเข้า url cups ได้แล้วลองเข้าไป <code>http://&lt;container-ip&gt;:631</code> พวกหน้า info ไม่ควรจะติดล็อคอิน</p>
<h2 id="ลง-driver">
	<a href="#%e0%b8%a5%e0%b8%87-driver" class="anchor-link" aria-label="Anchor"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a>
		ลง Driver
</h2>
<p>จริงๆ ขั้นตอนนี้ไม่จำเป็นต้องทำก็ได้นะครับถ้าลง CUPS แล้ว driver ที่มีให้มาสามารถใช้ได้เลย เผอิญว่าเครื่อง Brother รุ่นที่ผมใช้ดันไม่มี driver ใน CUPS เลยจำเป็นต้องลงเพิ่มครับ</p>
<p>วิธีการก็ง่ายๆ ครับไปโหลด driver จากเว็บของ Brother เอง <a href="https://support.brother.com/g/b/productsearch.aspx?c=us_ot&amp;lang=en" target="_blank" rel="noopener">https://support.brother.com/g/b/productsearch.aspx?c=us_ot&lang=en</a> ดีที่เขาทำ linux driver มาให้ด้วยแค่โหลด .deb มาลงก็ใช้ได้เลย</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>wget &lt;download-deb-url&gt;
</span></span><span style="display:flex;"><span>dpkg -i &lt;filename&gt;.deb
</span></span></code></pre></div><p>แต่จะติดตรง driver เป็น 32 bit แต่ระบบเป็น 64 bit เลยต้องทำให้ระบบรองรับ</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>dpkg --add-architecture i386
</span></span><span style="display:flex;"><span>apt update
</span></span></code></pre></div><p>พอลง driver เสร็จสั้ง restart อีกรอบ</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>systemctl restart cups
</span></span></code></pre></div><p>restart แล้วลองเข้าไปดู Web UI CUPS อีกทีดูตรง Manage printer จะขึ้นเครื่องพรินเตอร์ Brother มาให้เองเลยไม่ต้องทำอะไรเพิ่ม แต่ถ้าไม่ขึ้นก็กดเพิ่มไปตอนใส่ connection url ก็เอา <code>usb://Brother/&lt;Model-Code&gt;?serial=&lt;Serial&gt;</code> จากคำสั่ง <code>lpinfo -v</code> มา</p>
<h2 id="ทำ-auto-discovery">
	<a href="#%e0%b8%97%e0%b8%b3-auto-discovery" class="anchor-link" aria-label="Anchor"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a>
		ทำ Auto discovery
</h2>
<p>จริงๆ ถึงขั้นตอนนี้เราสามารถสั่งพรินเตอร์ได้แล้วแหละแต่ว่าคอมและมือถือเราต้องไปกดเพิ่มพรินเตอร์เองแล้วเอาไอพีไปใส่ รู้สึกไม่ค่อยสะดวกเท่าไรอยากให้แบบอยู่ใน Network ขึ้นพรินเตอร์แล้วสั่งได้เลย</p>
<p>ลงคำสั่งด้านล่างเสร็จแล้วคอมกับมือถือเราจะข้นเครื่องพรินเตอร์เลยครับไม่ต้องทำอะไรเพิ่ม</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>apt install avahi-daemon
</span></span><span style="display:flex;"><span>systemctl enable avahi-daemon
</span></span><span style="display:flex;"><span>systemctl start avahi-daemon
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>apt install cups-browsed avahi-utils
</span></span></code></pre></div>]]></description>
		</item></channel>
</rss>
