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à đặtDNSStubListener=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?