Thursday , 4 June 2026

Lỗi Tường Lửa Khi Dùng Docker Trong Synology — Cách Fix Dứt Điểm

Lỗi tường lửa khi dùng Docker trong Synology là một trong những vấn đề gây mất thời gian nhất với người dùng Home Lab. Triệu chứng rất khó chịu: container khởi động thành công, log không có gì bất thường, nhưng các container không thể giao tiếp với nhau — và nguyên nhân lại nằm ở DSM Firewall, không phải ở cấu hình Docker.

Bài viết này hướng dẫn chẩn đoán chính xác và fix dứt điểm trong vài phút.


Nhận Biết Lỗi Tường Lửa Khi Dùng Docker Trong Synology

Triệu Chứng

  • Cài nhiều container Docker (ví dụ: ứng dụng web + database), tất cả đều chạy, nhưng app không kết nối được với database
  • Ping giữa hai container trong cùng bridge network bị mất gói 100%
  • Kiểm tra log container không thấy lỗi rõ ràng

Cách Chẩn Đoán Nhanh

Tắt DSM Firewall tạm thời tại Control Panel → Security → Firewall, sau đó test lại kết nối giữa các container. Nếu mọi thứ hoạt động ngay sau khi tắt firewall — đây chính xác là lỗi tường lửa DSM chặn Docker bridge network, không phải lỗi cấu hình ứng dụng.

Cấu hình tường lửa DSM Synology để fix lỗi tường lửa khi dùng Docker trong Synology


Nguyên Nhân: DSM Firewall Bug Với Docker Bridge Network

Docker tạo ra một mạng ảo nội bộ (bridge network) để các container giao tiếp với nhau, thường dùng dải địa chỉ 172.17.0.0/16. DSM Firewall có một lỗi đã biết: nó chặn traffic đi qua bridge network này ngay cả khi bạn đã tạo rule Allow cho các port cụ thể. Đây là lý do tại sao mở port không giải quyết được vấn đề — bạn cần whitelist toàn bộ subnet của Docker.


Cách Fix Lỗi Tường Lửa Docker Synology — Giải Pháp Khuyến Nghị

Bước 1: Tìm Subnet Docker Bridge

SSH vào Synology NAS, chạy lệnh sau để xem dải IP Docker đang dùng:

Trong output, tìm phần Config → Subnet. Thông thường sẽ là 172.17.0.0/16:

Bước 2: Thêm Rule Allow Subnet Vào DSM Firewall

Vào Control Panel → Security → Firewall → Edit Rules, tạo rule mới với các thông số:

  • Source IP: Nhập subnet vừa tìm được, ví dụ 172.17.0.0/255.255.0.0
  • Destination: All
  • Ports: All
  • Action: Allow

Quan trọng: Rule Allow này phải được đặt phía trên bất kỳ rule Deny nào trong danh sách. DSM Firewall xử lý rule theo thứ tự từ trên xuống — nếu rule Deny nằm trên, Docker traffic vẫn bị chặn dù có rule Allow bên dưới.


Các Giải Pháp Thay Thế Cho Lỗi Tường Lửa Docker Synology

Dùng Custom Bridge Network

Thay vì dùng bridge mặc định, tự định nghĩa subnet riêng trong docker-compose.yml. Cách này giúp kiểm soát chính xác dải IP cần whitelist:

Sau đó whitelist đúng 172.30.0.0/255.255.0.0 trong DSM Firewall theo bước 2 phía trên.

Dùng Host Network Mode

Thêm network_mode: host vào container trong docker-compose. Container sẽ dùng trực tiếp mạng của NAS, bỏ qua bridge network hoàn toàn nên không bị lỗi firewall chặn.

Tuy nhiên cần lưu ý: host mode làm giảm tính isolation của Docker — container có thể truy cập toàn bộ network interface của NAS, kém bảo mật hơn bridge mode. Chỉ dùng khi các giải pháp trên không hiệu quả.

Tắt DSM Firewall (Không Khuyến Nghị)

Đây là biện pháp cuối cùng. Nếu buộc phải tắt, cần thay thế bằng các lớp bảo mật khác:

  • Firewall trên router
  • Reverse proxy với SSL (DSM Application Portal)
  • VPN như Tailscale, WireGuard, ZeroTier để kiểm soát truy cập từ xa

Lưu Ý Thêm Với DSM 7.3

DSM 7.3 (phát hành tháng 10/2025) có thêm một vấn đề liên quan: sau khi thêm rule Docker, nếu vẫn gặp sự cố, hãy tắt Firewall, khởi động lại NAS, cài container với Firewall đang tắt, sau đó bật lại Firewall. Thứ tự này quan trọng với DSM 7.3.


Tổng Kết

Khi gặp lỗi tường lửa khi dùng Docker trong Synology, đừng mất hàng giờ debug cấu hình container — kiểm tra DSM Firewall trước. Giải pháp đơn giản nhất và hiệu quả nhất là whitelist subnet bridge network (172.17.0.0/16) và đảm bảo rule Allow nằm trên rule Deny trong danh sách tường lửa. Toàn bộ quá trình chỉ mất khoảng 5 phút.

Tham khảo thêm hướng dẫn cấu hình DSM Firewall chi tiết tại mariushosting.com — nguồn tài liệu Synology uy tín nhất cho Home Lab.

Xem thêm các bài viết kỹ thuật tại tungle.blog và chuyên mục Thủ thuật, hoặc bài hướng dẫn liên quan về Docker trên Synology.

Bạn đã gặp lỗi này chưa? Fix theo cách nào? Để lại bình luận bên dưới — biết đâu setup của bạn lại có thêm trick hay ho nào đó!

About Tung Le

Cài win 10000 lần

Check Also

cau_hinh_ulimit_linux_docker_k8s

Cấu Hình ulimit Linux Cho Docker Và Kubernetes trong 5 phút

Cấu hình ulimit Linux là bước thường bị bỏ qua sau khi cài OS mới …

Leave a Reply