Cài Đặt Và Cấu Hình dnsmasq Trên Ubuntu

🧩 dnsmasq Là Gì?

dnsmasq là một dịch vụ DNS và DHCP cực nhẹ, được thiết kế cho môi trường nhỏ như mạng gia đình, văn phòng, lab hoặc server cục bộ. Nó có thể:

  • Tăng tốc độ truy vấn DNS nhờ cache

  • Làm DNS trung gian chuyển tiếp ra ngoài (8.8.8.8, 1.1.1.1,…)

  • Trỏ tên miền nội bộ tới IP tuỳ ý (ví dụ: dev.local → 127.0.0.1)

  • (Tuỳ chọn) Làm máy chủ DHCP cấp IP nội bộ


⚙️ Bước 1: Cài Đặt dnsmasq

sudo apt update
sudo apt install dnsmasq -y

Kiểm tra phiên bản:

dnsmasq --version

🛠️ Bước 2: Cấu Hình dnsmasq

Mở file cấu hình:

sudo nano /etc/dnsmasq.conf

Thêm các dòng sau (hoặc bỏ comment nếu đã có):

# Chuyển tiếp DNS ra ngoài (Google DNS và Cloudflare)
server=8.8.8.8
server=1.1.1.1

# Tăng tốc truy vấn DNS nhờ cache
cache-size=1000

# Trỏ tên miền nội bộ (ví dụ: test.local → 127.0.0.1)
address=/test.local/127.0.0.1

# Ghi log các truy vấn DNS
log-queries
log-facility=/var/log/dnsmasq.log

Lưu lại với Ctrl + O, Enter, và Ctrl + X.


❌ Bước 3: Khắc Phục Lỗi Port 53 (Nếu Có)

Nếu gặp lỗi như:

failed to create listening socket for port 53: Address already in use

Điều này có nghĩa cổng 53 đã bị dịch vụ khác chiếm, thường là systemd-resolved.

👉 Giải pháp: Tắt systemd-resolved

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Xoá link /etc/resolv.conf và trỏ DNS về dnsmasq:

sudo rm /etc/resolv.conf
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
sudo chattr +i /etc/resolv.conf

Nếu không muốn tắt systemd-resolved, bạn có thể chỉnh /etc/systemd/resolved.conf và đặt DNSStubListener=no.


🔁 Bước 4: Khởi Động Lại dnsmasq

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq

Kiểm tra trạng thái:

sudo systemctl status dnsmasq

🔍 Bước 5: Kiểm Tra Hoạt Động

dig google.com @127.0.0.1

Kiểm tra log:

tail -f /var/log/dnsmasq.log

💡 Tùy Chọn: Chặn Quảng Cáo hoặc DNS Nội Bộ

Bạn có thể trỏ các tên miền quảng cáo về 0.0.0.0:

address=/ads.example.com/0.0.0.0
address=/doubleclick.net/0.0.0.0

Last updated

Was this helpful?