Night Watch
Giữ cho các trang web của bạn hoạt động ổn định qua các đợt tấn công bằng scraper: một bộ giám sát uptime, một lớp bảo vệ Cloudflare gói Free và một bộ chặn bot.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

Tính năng chính
Night Watch mở mọi trang web bạn vận hành theo cách một khách truy cập vẫn làm, mỗi năm phút, và báo cho bạn ngay khi một trang ngừng mở và ngay khi nó hoạt động trở lại. Khi một trang web bị sập do một scraper làm nghẽn, bộ giám sát sẽ bật một quy tắc Cloudflare để chặn dòng nghẽn đó ngay tại edge, và ứng dụng của bạn vẫn tiếp tục phục vụ người dùng trong thời gian đó.
- Mọi trang web, mỗi năm phút. Mọi zone trong tài khoản Cloudflare của bạn, cộng với bất kỳ trang nào bạn liệt kê, tùy chọn kèm theo văn bản mà trang phải chứa. Một thông báo khi một trang web gặp sự cố, một thông báo khi nó hoạt động trở lại kèm thời gian gặp sự cố, và một lời nhắc khi nó vẫn đang gặp sự cố. Qua email, webhook chat, hoặc cả hai.
- Tấm khiên trên gói Free. Ba quy tắc WAF tùy chỉnh: một user agent Chrome thiếu các header mà mọi trình duyệt Chrome thực sự gửi sẽ bị yêu cầu xác minh, các yêu cầu trang từ các cụm scraper sẽ bị yêu cầu xác minh, và một quy tắc khẩn cấp sẽ yêu cầu xác minh những người lạ không có cookie và không có liên kết trong thời gian bị nghẽn.
- Tự động bật. Khi một trang web gặp sự cố do quá tải, bộ giám sát sẽ bật quy tắc khẩn cấp và ghi rõ điều đó trong cảnh báo; nhiều giờ sau khi trang web hoạt động trở lại, nó sẽ tắt quy tắc đó. Một tấm khiên do bạn tự bật sẽ vẫn được giữ nguyên.
- Cổng kiểm soát bên trong ứng dụng của bạn. Một tệp không có dependency, dành cho FastAPI, Starlette, Django, Flask hoặc bất kỳ ứng dụng ASGI hay WSGI nào. Nó từ chối các trình duyệt giả trước khi mã của bạn chạy và giữ những người lạ trong phạm vi mà mỗi worker có thể phục vụ. Người dùng có cookie hoặc truy cập qua liên kết sẽ không hề nhận ra nó.
- Xem những gì đang tấn công bạn. Những gì tường lửa Cloudflare đã yêu cầu xác minh trong vài phút qua, theo quy tắc, mạng, quốc gia, user agent và đường dẫn, được đọc từ các sự kiện thô mà gói Free cho phép.
- Có sẵn chức năng hoàn tác. Mỗi thay đổi quy tắc đều lưu các quy tắc của zone trước, các quy tắc của bạn vẫn được giữ nguyên phía trước các quy tắc của chúng tôi, và một lệnh sẽ khôi phục lại bộ quy tắc đã lưu.
Đã kiểm thử trên các trang web của chúng tôi
- Một đợt nghẽn thực tế, một giờ: trên một trang web của chúng tôi, quy tắc trình duyệt giả đã yêu cầu xác minh hơn 10.000 yêu cầu. 10.000 yêu cầu mà Cloudflare cho phép chúng tôi đọc đến từ 9.627 địa chỉ băng thông rộng gia đình, không địa chỉ nào gửi quá 4 yêu cầu: một giới hạn tốc độ theo từng địa chỉ sẽ không bao giờ được kích hoạt.
- Mọi quy tắc, được kiểm tra trực tiếp trên gói Free: một người lạ đã bị yêu cầu xác minh khi quy tắc khẩn cấp đang bật và được cho phép truy cập khi có cookie hoặc liên kết; một user agent Chrome thiếu header trình duyệt đã bị yêu cầu xác minh; Googlebot được cho phép. Các quy tắc trước đó của zone sau đó đã được khôi phục chính xác.
- Cổng chặn dưới 1.747 yêu cầu mỗi giây trên uvicorn: mọi trình thu thập dữ liệu không có tiêu đề trình duyệt đều bị từ chối, người lạ chỉ được truy cập những gì ứng dụng có thể phục vụ, và mọi lượt truy cập quay lại, truy cập qua liên kết hay yêu cầu từ Googlebot đều được phục vụ trong thời gian trung vị 0,20 giây, tức thời gian xử lý của chính trang đó.
Bên trong gồm những gì
Bộ giám sát
Các trang web từ tài khoản Cloudflare của bạn và một danh sách, các kiểm tra trông giống như lượt truy cập của khách, thông báo qua email hoặc webhook, và một bài kiểm tra phân biệt giữa "tất cả đều sập" và "máy này đang ngoại tuyến".
Bộ bảo vệ
Cài đặt, trạng thái, bật, tắt, gỡ cài đặt và khôi phục cho một khu vực hoặc tất cả, với mọi thay đổi đều được sao lưu trước.
Cổng chặn
Middleware ASGI và WSGI, trang "vui lòng chờ" trong 2 giây cấp cho người dùng một cookie, và một dòng nhật ký mỗi phút.
Sổ tay vận hành
Cách xử lý khi một trang web chậm hoặc sập, cách đọc một đợt tấn công dồn dập, và những gì không nên bật trong bảng điều khiển của Cloudflare.
Yêu cầu
- Linux với systemd và Python 3.10 trở lên; không cần cài đặt gì từ pip.
- Đối với bộ bảo vệ và chế độ xem sự kiện, các trang web trên Cloudflare (bất kỳ gói nào, bao gồm cả gói Free) và một mã thông báo API.
- Một máy khác với máy đang phục vụ các trang web của bạn, để nó có thể báo cho bạn khi máy đó bị sập.
Nên biết
- Quy tắc khẩn cấp cũng sẽ thách thức người dùng nhập địa chỉ của bạn vào một trình duyệt mới, đó là lý do nó được tắt ngoại trừ trong các đợt tấn công dồn dập.
- Các bot đã xác minh và các robot tự khai tên trong user agent không bao giờ bị thách thức, và các công cụ tìm kiếm không bao giờ bị cổng chặn từ chối.
- Bộ bảo vệ sử dụng ba trong số năm quy tắc tùy chỉnh mà gói Free cho phép mỗi khu vực.
From our field notes
Câu hỏi
Tôi có cần gói Cloudflare trả phí không?
Không. Mọi thứ Night Watch làm đều hoạt động trên gói Free: ba quy tắc, chế độ xem sự kiện và việc chuyển đổi tự động. Gói trả phí chỉ cung cấp thêm các chỗ cho quy tắc bên cạnh quy tắc của chúng tôi.
Nó có chặn Google hoặc các trình thu thập dữ liệu tìm kiếm AI không?
Không. Các bot đã xác minh của Cloudflare và mọi robot tự khai tên trong user agent đều vượt qua bộ bảo vệ, và cổng chặn không bao giờ từ chối một công cụ tìm kiếm hay bản xem trước liên kết. Nếu bạn muốn chặn các trình thu thập dữ liệu AI, đó là một lựa chọn riêng trong bảng điều khiển của Cloudflare.
Trang web của tôi không dùng Cloudflare. Nó vẫn hữu ích chứ?
Bộ giám sát và cổng chặn hoạt động ở bất kỳ đâu: bộ giám sát mở bất kỳ URL nào, và cổng chặn bảo vệ bất kỳ ứng dụng web Python nào. Bộ bảo vệ và chế độ xem sự kiện cần có Cloudflare.
Khác gì so với công cụ giám sát uptime?
Công cụ giám sát uptime cho bạn biết một trang web đang gặp sự cố. Night Watch cũng cho bạn biết điều đó, rồi hành động dựa trên nguyên nhân phổ biến nhất mà chúng tôi thấy: nó bật bộ bảo vệ tại Cloudflare's edge, và cổng kiểm soát giúp ứng dụng của bạn tiếp tục phục vụ những người dùng mong muốn trong suốt thời gian bị tấn công.
Đã cập nhật: