Tự host Technitium DNS: Giải pháp tất cả trong một cho quyền riêng tư HomeLab

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

Bắt đầu nhanh (5 phút)

Bạn mệt mỏi vì phải lục lọi lịch sử trình duyệt để tìm 192.168.1.50:8080? Việc quản lý HomeLab không nên giống như đang học thuộc lòng một cuốn danh bạ điện thoại. Technitium DNS tích hợp recursive lookup, chặn quảng cáo toàn mạng và một dashboard mượt mà vào trong một container nhẹ nhàng.

Trước khi bắt đầu, hãy đảm bảo Docker và Docker Compose đã sẵn sàng. Chúng ta sẽ sử dụng tệp docker-compose.yml để quá trình triển khai gọn gàng hơn. Chạy các lệnh sau để bắt đầu:

mkdir technitium-dns && cd technitium-dns
nano docker-compose.yml

Dán cấu hình này vào trình chỉnh sửa của bạn:

services:
  dns-server:
    container_name: technitium-dns
    image: technitium/dns-server:latest
    restart: always
    environment:
      - DNS_SERVER_DOMAIN=dns-server
      - DNS_SERVER_ADMIN_PASSWORD=mat_khau_bao_mat_cua_ban
    ports:
      - "53:53/udp"
      - "53:53/tcp"
      - "5380:5380/tcp" # Giao diện Web
    volumes:
      - ./config:/etc/dns/config

Nếu bạn đang sử dụng Ubuntu hoặc Debian, cổng 53 thường đã bị chiếm dụng bởi systemd-resolved. Đây là rào cản phổ biến nhất cho người mới bắt đầu. Để giải phóng cổng này, hãy tắt stub listener cục bộ:

sudo sed -i 's/#DNSStubListener=yes/DNSStubListener=no/' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved

Bây giờ, hãy khởi chạy container:

docker-compose up -d

Truy cập vào http://your-server-ip:5380. Đăng nhập bằng mật khẩu bạn đã định nghĩa trong biến môi trường. DNS riêng tư của bạn đã chính thức hoạt động.

Tìm hiểu sâu hơn

Một thiết lập DNS tiêu chuẩn chỉ đóng vai trò trung gian; nó hỏi Google hoặc Cloudflare xem một trang web nằm ở đâu. Technitium có thể làm tốt hơn thế. Bằng cách cấu hình nó như một Recursive DNS Server, nó sẽ giao tiếp trực tiếp với các Root Server. Thay vì tin tưởng một nhà cung cấp duy nhất với toàn bộ lịch sử duyệt web của mình, máy chủ của bạn sẽ tự xây dựng câu trả lời. Đây là một điểm cộng lớn cho quyền riêng tư.

Cấu hình Forwarders

Quyền riêng tư là điều tuyệt vời, nhưng đôi khi bạn cần tốc độ tối đa. Trong giao diện Technitium, hãy đi tới Settings > Forwarding. Bạn có thể thêm các nhà cung cấp cực nhanh như 1.1.1.1 (Cloudflare) hoặc 9.9.9.9 (Quad9). Để tăng cường bảo mật, hãy bật DNS over HTTPS (DoH). Tính năng này mã hóa các truy vấn của bạn để ISP không thể thấy bạn đang truy cập những tên miền nào.

Chặn quảng cáo ngay tại nguồn

Khả năng chặn của Technitium là vũ khí bí mật của nó. Trong phần Settings > Blocking, bạn có thể thêm các danh sách chặn (blocklist) khổng lồ. Ví dụ, danh sách StevenBlack/hosts nhận diện hơn 50.000 tên miền độc hại và quảng cáo. Khi một thiết bị trong mạng của bạn cố gắng tải quảng cáo, Technitium sẽ trả về 0.0.0.0. Quảng cáo thậm chí còn chưa bắt đầu tải xuống, giúp tiết kiệm băng thông và làm sạch trải nghiệm web của bạn.

Sử dụng nâng cao

Local Zones là nơi phép màu thực sự xảy ra đối với những người yêu thích HomeLab. Tôi đã sử dụng thiết lập này để quản lý hàng chục microservice trên ba VLAN khác nhau mà không gặp lỗi nào trong suốt sáu tháng. Nó loại bỏ việc phải ghi nhớ dịch vụ nào nằm trên cổng nào.

Thiết lập các bản ghi DNS nội bộ

  1. Mở tab Zones.
  2. Nhấn Add Zone và đặt tên là lab.home.
  3. Bên trong zone, nhấn Add Record.
  4. Tạo một Bản ghi A (A Record): Đặt tên là proxy và trỏ nó về IP của Nginx Proxy Manager hoặc Traefik.

Bây giờ, bất kỳ thiết bị nào trong mạng Wi-Fi của bạn chỉ cần nhập proxy.lab.home vào trình duyệt để truy cập dashboard ngay lập tức.

Truy cập từ xa an toàn (DoH/DoT)

Bạn muốn chặn quảng cáo trên điện thoại khi đang dùng 5G? Hãy bật DoH hoặc DoT trong Settings > Optional Protocols. Nếu bạn đặt Technitium đằng sau một reverse proxy với chứng chỉ Let’s Encrypt, bạn có thể thiết lập DNS trên di động trỏ về máy chủ tại nhà. Nó giống như việc có một đường hầm riêng tư, không quảng cáo để truy cập internet ở bất cứ đâu.

Mẹo thực tế

DNS là nền tảng—nếu nó gặp sự cố, cả hệ thống internet của bạn sẽ cảm giác như bị “sập”. Một chút bảo trì sẽ giúp hệ thống vận hành trơn tru hơn.

Luôn cập nhật các danh sách chặn

Các tên miền theo dõi mới xuất hiện mỗi giờ. Hãy vào Settings > Blocking và thiết lập lịch cập nhật tự động sau mỗi 24 giờ. Chỉ cần cài đặt một lần và để máy chủ tự lo phần còn lại.

Sao lưu không tốn sức

Vì chúng ta đã ánh xạ cấu hình vào một thư mục cục bộ, dữ liệu của bạn sẽ an toàn ngay cả khi container bị xóa. Để cẩn thận hơn, hãy chạy một cron job hàng tuần để nén thư mục đó:

# Script sao lưu hàng tuần
tar -czvf technitium_backup_$(date +%F).tar.gz ./technitium-dns/config

Tối ưu hóa hiệu năng

Kiểm tra dashboard của bạn thường xuyên. Bạn nên hướng tới tỷ lệ cache hit khoảng 30-40%. Nếu tỷ lệ này thấp hơn, hãy thử tăng cache TTL trong phần cài đặt. Tỷ lệ hit cao hơn đồng nghĩa với việc máy chủ trả lời từ bộ nhớ trong khoảng 1ms, thay vì phải kết nối ra internet và mất 50-100ms.

Chuyển sang một DNS tự host là nâng cấp lớn nhất mà bạn có thể trang bị cho HomeLab của mình. Đó là sự khác biệt giữa một tập hợp các địa chỉ IP rời rạc và một mạng lưới chuyên nghiệp, tích hợp hoàn chỉnh.

Share: