คู่มือฉบับสมบูรณ์สำหรับการติดตั้ง Pi-hole ด้วย Docker

การปรับปรุงครั้งล่าสุด: 30 2026 สิงหาคม

เบื่อไหมกับการถูกโฆษณารบกวนทุกครั้งที่คุณท่องอินเทอร์เน็ตหรือใช้แอปบนมือถือ? ตอนนี้มีวิธีแก้ปัญหาที่ยอดเยี่ยมอย่าง Pi-hole ซึ่งทำหน้าที่คล้ายกับ... ตัวกรอง DNS อัจฉริยะส่วนที่ดีที่สุดคือ คุณไม่จำเป็นต้องติดตั้งอะไรลงบนทุกอุปกรณ์ในบ้านของคุณ ระบบทำงานจากแกนหลักของเครือข่ายของคุณ โดยดักจับและบล็อกเนื้อหาที่ไม่พึงประสงค์ก่อนที่จะปรากฏบนหน้าจอของคุณ

ในการติดตั้งระบบนี้ ตัวเลือกที่ชาญฉลาดที่สุดในปัจจุบันคือการใช้ Docker การใส่ Pi-hole ไว้ในคอนเทนเนอร์จะช่วยหลีกเลี่ยงการทำให้ระบบปฏิบัติการของคอมพิวเตอร์รก ทำให้การอัปเดตง่ายขึ้นอย่างมาก และคุณสามารถ ใช้ประโยชน์จากฮาร์ดแวร์ให้เต็มที่ไม่ว่าจะเป็น Raspberry Pi, เซิร์ฟเวอร์เก่า หรือแม้แต่เครื่องเสมือนบน Ubuntu หรือ Debian ก็ไม่มีปัญหาเรื่องการทำงานของบริการขัดแย้งกัน

บล็อกโฆษณาด้วย Pi-hole
บทความที่เกี่ยวข้อง:
คู่มือฉบับสมบูรณ์สำหรับการบล็อกโฆษณาด้วย Pi-hole

ข้อกำหนดเบื้องต้นและการเตรียมพื้นที่

ก่อนที่เราจะเริ่มต้นกัน เราควรรู้ก่อนว่า Pi-hole นั้นมีขนาดเล็กมาก ในการใช้งานให้ราบรื่น คุณต้องการเพียงแค่ส่วนประกอบไม่กี่อย่างเท่านั้น แรม 512 เมกะไบต์ และพื้นที่เก็บข้อมูลระหว่าง 2 ถึง 4 กิกะไบต์ บนดิสก์ สำหรับระบบปฏิบัติการนั้น มันทำงานได้อย่างยอดเยี่ยมกับดิสทริบิวชันที่ใช้ systemd หรือ sysvinit เช่น Debian, Ubuntu, Fedora หรือ Raspberry Pi OS

จุดสำคัญคือเครือข่าย เพื่อให้ระบบมีเสถียรภาพ Pi-hole ต้องการ... ที่อยู่ IP แบบคงที่หากคุณไม่ต้องการทำให้เรื่องยุ่งยากด้วยการตั้งค่าเซิร์ฟเวอร์ด้วยตนเอง คุณสามารถสำรองที่อยู่ IP บนเราเตอร์ของคุณเพื่อให้เราเตอร์กำหนดที่อยู่เดียวกันให้กับคอมพิวเตอร์ที่คอนเทนเนอร์ตั้งอยู่ได้เสมอ

  Webminal คืออะไร: เทอร์มินัล Linux ออนไลน์สำหรับการเรียนรู้

การติดตั้ง Pi-hole โดยใช้ Docker

วิธีที่ง่ายที่สุดในการเริ่มต้นคือการเริ่มต้นจากไฟล์ นักเทียบท่า-compose.ymlวิธีนี้ช่วยให้คุณกำหนดค่าทั้งหมดได้ในครั้งเดียว สิ่งสำคัญคือต้องแมปวอลุ่ม (เช่น /etc/pihole และ /etc-dnsmasq.d) ไปยังโฟลเดอร์ในเครื่องโฮสต์ของคุณ เพื่อให้หากคุณอัปเดตอิมเมจคอนเทนเนอร์ อย่าสูญเสียการตั้งค่าทั้งหมดของคุณ รวมถึงบัญชีดำของคุณด้วย

ไมโครคอมพิวเตอร์ Raspberry Pi ในเคสโปร่งใส แสดงถึงฮาร์ดแวร์สำหรับเซิร์ฟเวอร์ Pi-hole
บทความที่เกี่ยวข้อง:
คู่มือฉบับสมบูรณ์เกี่ยวกับ Pi-hole และ Unbound สำหรับการปกป้องความเป็นส่วนตัวออนไลน์

ในไฟล์การกำหนดค่า คุณต้องให้ความสนใจกับพอร์ต พอร์ต 53 เป็นหัวใจสำคัญของ DNS และต้องว่างอยู่เสมอ หากคุณพบว่าคอนเทนเนอร์ไม่เริ่มทำงาน อาจเป็นเพราะสาเหตุนี้ systemd-resolved หรือ dnsmasq มีโปรแกรมอื่นกำลังใช้งานพอร์ตนั้นอยู่บนโฮสต์ ในกรณีเหล่านั้น คุณจะต้องปิดใช้งานบริการที่ขัดแย้งกัน หรือกำหนดค่าบริดจ์เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล

หากคุณตัดสินใจใช้ Pi-hole เป็นเซิร์ฟเวอร์ DHCP ด้วย โปรดจำไว้ว่าคุณต้องเพิ่มความสามารถนั้นเข้าไปด้วย NET_ADMIN ในส่วน cap_add ของ compose และควรใช้โหมดเครือข่ายแบบ host (network_mode: host) เพื่อหลีกเลี่ยงปัญหาการเชื่อมต่อ

การตั้งค่าเริ่มต้นและการจัดการการเข้าถึง

เมื่อคุณดำเนินการคำสั่งเสร็จแล้ว docker-compose up -dระบบจะพร้อมใช้งานแล้ว ในการเข้าถึงแผงควบคุม ให้เชื่อมต่อกับที่อยู่ IP ของเซิร์ฟเวอร์ของคุณผ่านพอร์ตที่คุณกำหนด (ค่าเริ่มต้นคือ 80 แต่คุณสามารถเปลี่ยนเป็น 8080 หรือ 89 เพื่อหลีกเลี่ยงความขัดแย้งกับเว็บเซิร์ฟเวอร์อื่น) หากคุณไม่ได้กำหนดรหัสผ่านในตัวแปรสภาพแวดล้อม... รหัสผ่านเว็บระบบจะสร้างหมายเลขสุ่มขึ้นมา ซึ่งคุณสามารถค้นหาได้โดยการตรวจสอบบันทึกด้วยคำสั่ง docker logs pihole | grep random.

เพื่อความปลอดภัยยิ่งขึ้น ควรเปลี่ยนรหัสผ่านโดยเร็วที่สุด คุณสามารถเข้าถึงเทอร์มินัลคอนเทนเนอร์ได้โดยใช้ docker exec -it pihole /bin/bash และรันคำสั่ง pihole -a -p ตั้งรหัสผ่านที่จำง่ายสำหรับคุณ แต่ยากสำหรับผู้อื่น

  5 เครื่องมือสำหรับการเรียนรู้การเขียนโปรแกรมใน Python

การกรองข้อมูลต้นทางและการเพิ่มประสิทธิภาพ DNS

เพื่อให้ Pi-hole รู้ว่าควรสอบถามใครเมื่อไม่รู้จักที่อยู่เว็บ คุณต้องกำหนดค่าเซิร์ฟเวอร์ DNS ต้นทาง ตัวเลือกที่มีประสิทธิภาพมากคือ Quad9การเลือกเซิร์ฟเวอร์ที่คุณต้องการกรอง (เช่น 9.9.9.9) ในแท็บการตั้งค่า DNS จะช่วยเพิ่มระดับความปลอดภัยและความเป็นส่วนตัวในการท่องเว็บของคุณได้อีกชั้นหนึ่ง

หัวใจหลักของ Pi-hole คือรายการบล็อก หากคุณต้องการเริ่มต้นด้วยสิ่งที่มั่นคง คุณสามารถเพิ่มรายการต่อไปนี้ได้ สตีเวนแบล็กทุกครั้งที่คุณแก้ไขรายการ ไม่ว่าจะเป็นการลบรายการด้วย SQLite3 หรือการเพิ่ม URL ใหม่ จำเป็นอย่างยิ่งที่จะต้องไปที่ เครื่องมือ และเรียกใช้คำสั่ง อัปเดตแรงโน้มถ่วง เพื่อให้ฐานข้อมูลได้รับการอัปเดตและมีการเปลี่ยนแปลงเกิดขึ้น

เคล็ดลับขั้นสูง: โดเมนท้องถิ่นและการจัดการ

หากคุณมีบริการหลายอย่างที่บ้าน คุณสามารถสร้างได้ ชื่อโดเมนท้องถิ่น เพื่อหลีกเลี่ยงการต้องจำหมายเลข IP โดยการสร้างไฟล์ชื่อ... local.list บนวอลุ่ม Pi-hole ที่เชื่อมต่ออยู่ ให้กำหนดรูปแบบ IP และโดเมน จากนั้น สร้างไฟล์การกำหนดค่าสำหรับ dnsmasq ที่อ้างอิงถึงรายการนั้น แล้วรีสตาร์ทคอนเทนเนอร์

ในการจัดการระบบโดยไม่ต้องเข้าถึงเว็บไซต์ มีคำสั่งที่มีประโยชน์มากที่คุณสามารถเรียกใช้จากโฮสต์ได้ ตัวอย่างเช่น ในการเพิ่มโดเมนลงในบัญชีดำ ให้ใช้คำสั่งต่อไปนี้ pihole -b mydomain.com หรือหากต้องการปิดใช้งานการกรองชั่วคราวเป็นเวลา 10 นาที คุณสามารถใช้คำสั่งต่อไปนี้ได้ Pihole disable 10mวิธีนี้มีประโยชน์มากเมื่อเว็บไซต์ที่ถูกต้องถูกบล็อกโดยไม่ได้ตั้งใจ

การควบคุมการโฆษณาภายในบ้านนั้นเป็นไปได้โดยสิ้นเชิง ด้วยการใช้ฮาร์ดแวร์ที่ไม่ซับซ้อน ผสานกับความยืดหยุ่นของ Docker ตรวจสอบให้แน่ใจว่าพอร์ต 53 ว่างอยู่ และกำหนดค่า Volume อย่างถูกต้องเพื่อเก็บรักษาข้อมูล เมื่อคุณปรับแต่ง DNS บนเราเตอร์และเพิ่มประสิทธิภาพรายการ Gravity แล้ว คุณจะได้รับเครือข่ายที่สะอาดและเร็วขึ้นมากในทุกอุปกรณ์ของคุณ

ภาพระยะใกล้ของแผงวงจร Raspberry Pi ที่แสดงให้เห็นส่วนประกอบอิเล็กทรอนิกส์ ไมโครชิป และพอร์ตต่างๆ บนพื้นผิว เหมาะอย่างยิ่งสำหรับการแสดงภาพฮาร์ดแวร์หลักของบทเรียนนี้
บทความที่เกี่ยวข้อง:
คู่มือฉบับสมบูรณ์สำหรับการติดตั้งและปรับแต่ง AdGuard Home บน Raspberry Pi