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 ติดตั้ง
ย้อนกลับไปดูไฟล์ docker-compose.yaml อีกครั้ง ในส่วนของ volume
volumes:
- "./etc-pihole/:/etc/pihole/"
- "./etc-dnsmasq.d/:/etc/dnsmasq.d/"
จะเห็นได้ว่าเราจะต้องมีการสร้าง 2 folder ย่อยใน docker โดยโครงสร้าง folder ก็จะมีหน้าตาประมาณนี้
docker
│
└─── pihole
│ docker-compose.yaml
│
└─── etc-pihole
│
└─── etc-dnsmasq.d
เข้าไปจัดการสร้าง folder ผ่าน File Station ใน DSM ให้เรียบร้อย
หลังจากนั้น copy ไฟล์ docker-compose.yml ที่ทำไว้แล้วไปใส่ไว้ใน pihole
ตัวอักษรเล็กใหญ่มีผล ตั้งให้ถูกต้อง ไม่งั้นจะไป error ในขั้นตอนติดตั้ง
ขั้นตอนเตรียมไฟล์ต่าง ๆ เสร็จเรียบร้อยแล้วต่อไปคือติดตั้ง
ติดตั้ง
SSH แล้วติดตั้งโปรแกรมตามขั้นตอนปกติ
cd /volume1/docker/pihole
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/


