Pi-hole ตัวกันโฆษณา ติดตั้งแบบแบบ macvlan
ลงแบบนี้ต่างกับใช้แบบเดิม ๆ คือจะได้ ip จริง เช่น 192.168.111 ไม่ได้เป็น port Synology ซึ่งจำง่ายและสะดวกกว่าเวลาเอาไปใช้
ขั้นตอนติดตั้ง
จัดเตรียมไฟล์
โหลดไฟล์จาก GitHub หรือ save code ด้านล่างไปทำไฟล์ docker-compose.yaml ตามแต่สะดวก
# Note: 192.168.1.xxx is an example network, you must update all these to match your own.
version: '2.2'
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
hostname: pihole
domainname: example.com # <-- Update
mac_address: d0:ca:ab:cd:ef:01
cap_add:
- NET_ADMIN
networks:
pihole_network:
ipv4_address: 192.168.1.111 # <-- Update
volumes:
- "./etc-pihole/:/etc/pihole/"
- "./etc-dnsmasq.d/:/etc/dnsmasq.d/"
dns:
- 127.0.0.1
- 8.8.8.8
ports:
- 443/tcp
- 53/tcp
- 53/udp
- 67/udp
- 80/tcp
environment:
TZ: Asia/Bangkok
ServerIP: 192.168.1.111 # <-- Update (match ipv4_address)
VIRTUAL_HOST: pihole.example.com # <-- Update (match hostname + domainname)
WEBPASSWORD: "yourpassword" # <-- Add password (if required)
restart: unless-stopped
networks:
pihole_network: # Name of network
driver: macvlan # Use the macvlan network driver
driver_opts: # If open vSwitch is disabled use eth0 (or eth1 +)
parent: eth0
ipam:
config:
- subnet: 192.168.1.0/24 # Specify subnet <-- Update
gateway: 192.168.1.1 # Gateway address <-- Update
ip_range: 192.168.1.250/28 # Available IP addresses <-- Update
ใช้ notepad หรืออะไรก็ได้เปิดไฟล์ docker-compose.yaml ขึ้นมา เน้นดูตรงส่วนของ comment ในไฟล์ แก้ให้ตรงกับที่ใช้
ipv4_address: 192.168.1.111
ServerIP: 192.168.1.111
WEBPASSWORD: “yourpassword”
ให้แก้จุดที่สำคัญคือส่วนของ ip ให้เป็น ip ของ Pi-hole ที่จะใช้ โดยตั้งให้ตรงกับวง LAN ในบ้าน อย่างของผมใช้ 192.168.1.111 ก็จะตามในไฟล์ แล้วอย่าลืมตั้ง password ที่จะใช้เข้าไปจัดการใน Pi-hole ด้วย
เช็ค Open vSwitch และ LAN ที่ใช้อยู่
networks:
pihole_network: # Name of network
driver: macvlan # Use the macvlan network driver
driver_opts: # If open vSwitch is disabled use eth0 (or eth1 +)
parent: eth0
สำหรับคนที่เปิด Open vSwitch ไว้
เช็คได้จาก Control Panel > Network > Network Interface > Manage > Open vSwitch Settings ถ้ามีติ๊กถูก แสดงว่าต้องใช้ ovs_eth0
ให้แก้บรรทัดสุดท้ายให้เป็น ovs_eth0 จาก eth0
parent: ovs_eth0
สำหรับ NAS ที่มี Lan 2 ช่อง ให้เช็คControl Panel > Network > Network Interface
ว่าคุณเสียบ LAN ช่องไหนไว้ ถ้าเป็น LAN 1 ไม่ต้องแก้อะไร ถ้าเป็น LAN 2 ให้แก้เป็น
parent: eth1
ipam:
config:
— subnet: 192.168.1.0/24 # Specify subnet ← Update
gateway: 192.168.1.1 # Gateway address ← Update
ip_range: 192.168.1.250/28 # Available IP addresses ← Update
ส่วนนี้คือ subnet, gateway และ ip_range ให้ตั้งเป็นวง LANในบ้าน
คือถ้าบ้านเป็นวง 192.168.0.1 ก็ต้องเปลี่ยนจาก 192.168.1.0/24 ให้เป็น 192.168.0.0/24 ทำนองนั้น ทำทั้ง 3 บรรทัดให้ครบ (ถ้าเป็นวง 192.168.1.x อยู่แล้วก็ไม่ต้องทำอะไร)
domainname: example.com
VIRTUAL_HOST: pihole.example.com
อันนี้ไม่สำคัญแต่เป็นโดเมนไว้เข้า pihole ง่าย ๆ ถ้าไม่แก้อะไรเลยเวลาใช้งานก็เข้าผ่าน pihole.example.com
แก้เสร็จหมดแล้วให้เซฟไฟล์
จัดเตรียม folder ติดตั้ง
- หลังจากนั้นเข้าไปใน NAS สร้าง folder ใน docker ชื่อ Pi-hole
- สร้าง 2 Folder ย่อย คือ
etc-piholeและetc-dnsmasq.d - copy ไฟล์ docker-compose.yml ที่ทำไว้แล้วไปใส่ด้วย จะได้ตามรูป
หลังจากนั้นให้คลิ๊กขวา properties ตัว folder pihole ใน docker แล้วจำ path ไว้ เพื่อใช้ในขั้นตอนต่อไป อย่างของผมคือ
/volume1/docker/pihole
ขั้นตอนเตรียมไฟล์ต่าง ๆ เสร็จเรียบร้อยแล้วต่อไปคือติดตั้ง
ติดตั้ง
เปิด putty ขึ้นมาเพื่อเข้าไปจัดการต่อใน SSH โดยคนที่ไม่เคย เปิด SSH ใน NAS มาก่อนให้ให้ไปที่ Control Panel แล้วพิมพ์ SSH ในช่องค้นหาได้เลย (จำ port ไว้ด้วย)
ใส่ IP ในช่อง host อย่าลืมเลือก connection type เป็น SSH
ใส่ user และ password โดย password ใน putty จะไม่แสดงผลอะไรแต่ใช้ได้
หลังจากเสร็จแล้วจะต้องขอสิทธิ์ root โดยพิมพ์ sudo -i และกด enter หลังจากนั้นใส่ password อีกรอบเสร็จแล้วจะได้คล้าย ๆ ภาพด้านบน
หลังจากนั้นให้พิมพ์ cd /volume1/docker/pihole แล้ว enter เพื่อเข้าไปยัง folder ที่ทำไว้และพิมพ์ docker-compose up -d เพื่อติดตั้ง
หลังจากติดตั้งเสร็จแล้ว pihole จะขึ้นไปแสดงใน tab Container เอง โดยหากดูที่ tab Network ก็จะเห็น macvlan แสดงขึ้นมาด้วย
จบขั้นตอนติดตั้งแล้วอย่าลืม
- เข้าไปตั้งค่าใน Router ให้ DHCP ชี้ไปที่ IP ของ pihole โดยในตัวอย่างคือให้ชี้ไปที่ 192.168.1.111
- fix ip ใน DHCP โดย mac address ดูในจากในสคริปต์ ในตัวอย่างคือ mac_address: d0:ca:ab:cd:ef:01 เพื่อกันอุปกรณ์อื่นพลาดมาใช้ ip เดียวกัน
- เข้า Pi-hole ได้ผ่าน IP ที่ตั้งไว้ หรือใช้ pihole.example.com เข้าไปตั้งค่าได้เลย
Blocklists
ลงไม่ต้องเยอะไม่งั้นจะสร้างปัญหาให้แทน
https://firebog.net/ — Pi Hole blocklists
อัพเดท Pi-hole
ง่าย ๆ ค่าที่ตั้งไว้ไม่หายโดย
- เปิด Docker ใน Synology ขึ้นมา
- tab Container ให้หยุดการทำงานแล้วลบทิ้ง
- tab Image ให้ลบ pihole/pihole:latest ทิ้ง
- tab Network ให้ลบ pihole_network ทิ้งได้เลย
- ทำซ้ำขั้นตอนติดตั้งจบที่
docker-compose up -d - เรียบร้อย
หรือ ลง watchtower แล้วก็ไม่ต้องมาสนใจเรื่องอัพเดทเองอีกเลย
Source
https://www.reddit.com/r/synology/comments/gmfta3/pihole_5_on_synology_using_docker_simplified_with/
http://tonylawrence.com/posts/unix/synology/free-your-synology-ports/






