Changedetection.io proxy: gắn proxy riêng cho từng watch
Changedetection.io proxy là cách cho công cụ theo dõi thay đổi website changedetection.io gửi request qua IP khác thay vì IP máy chủ. ProxyVN cài bản 0.60.9, dựng một trang giá thử và một proxy có mật khẩu, rồi chạy từ cấu hình tới cảnh báo. Bài ghi lại cấu hình đã chạy được và bốn lỗi chỉ lộ ra khi làm thật.
Changedetection.io proxy dùng trong tình huống nào
Changedetection.io là công cụ mã nguồn mở theo dõi thay đổi nội dung website, gửi thông báo khi trang đổi. Người dùng hay dùng nó để theo dõi giá, tình trạng còn hàng, tin đăng mới hay văn bản chính sách của đối thủ.
Vì sao công cụ theo dõi cần proxy
Một watch kiểm trang mỗi vài phút, chạy liên tục nhiều tuần. Với vài chục watch cùng nhắm một website, IP máy chủ gửi hàng nghìn request mỗi ngày tới website đó, dễ bị giới hạn hoặc chặn. Proxy chia số request đó ra nhiều IP.
Lý do thứ hai là nội dung theo vùng. Giá, khuyến mãi và tồn kho của nhiều sàn thay đổi theo vị trí người xem. Máy chủ đặt ở nước ngoài sẽ thấy nội dung khác với người dùng Việt Nam, nên cảnh báo không phản ánh đúng thứ khách hàng thấy.
Bài này khác bài tổng quan ở đâu
ProxyVN đã có bài proxy giám sát thay đổi website, giới thiệu cơ chế giám sát và các bước cơ bản với changedetection.io. Bài này đi sâu vào phần proxy: proxies.json, proxy riêng cho từng watch, các biến môi trường cho từng kiểu tải trang, và lỗi thực tế.
Nếu anh em mới bắt đầu với giám sát thay đổi, nên đọc bài tổng quan trước. Nếu đã chạy changedetection.io và cần gắn proxy cho đúng, đọc tiếp bài này.
Hai kiểu tải trang
Changedetection.io có hai kiểu tải trang chính. Kiểu mặc định là html_requests, tải HTML bằng thư viện requests của Python, nhanh và nhẹ. Kiểu thứ hai dùng trình duyệt thật qua Playwright hoặc WebDriver, cần cho trang dựng bằng JavaScript, chụp màn hình và thao tác như bấm nút.
Mỗi kiểu tải trang đọc cấu hình proxy từ một chỗ khác nhau, đây là nguồn gốc của phần lớn lỗi proxy với changedetection.io. Phần cấu hình sẽ nói rõ từng chỗ.
Ba cách gắn changedetection.io proxy
Theo trang cấu hình proxy trên wiki của dự án, có ba cách gắn proxy: biến môi trường cho cả hệ thống, file proxies.json cho danh sách proxy, và giao diện cài đặt. Bảng dưới tóm tắt trước khi đi vào chi tiết.
Cách gắn |
Phạm vi |
Hợp với |
|---|---|---|
Biến môi trường HTTP_PROXY, HTTPS_PROXY |
Mọi request của html_requests và cả thông báo |
Một proxy duy nhất cho tất cả |
File proxies.json trong thư mục dữ liệu |
Danh sách proxy, chọn cho từng watch |
Nhiều vùng, nhiều nhà cung cấp |
Tab CAPTCHA & Proxies trong giao diện |
Proxy mặc định và tối đa 5 proxy thêm |
Người không muốn sửa file |
Biến playwright_proxy_server và tương tự |
Kiểu tải trang bằng trình duyệt |
Trang dựng bằng JavaScript |

Ba chỗ gắn proxy
Biến môi trường cho cả hệ thống
Cách đơn giản nhất là đặt HTTP_PROXY và HTTPS_PROXY khi chạy container. Wiki đưa ví dụ dùng proxy SOCKS5 với tiền tố socks5h, nghĩa là tên miền được phân giải ở phía proxy:
docker run -d --restart always -e HTTPS_PROXY="socks5h://10.10.1.10:1080" -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io
Wiki lưu ý hai biến này áp dụng cả cho phần gửi thông báo. Nếu anh em gửi thông báo tới một máy chủ nội bộ, thêm địa chỉ đó vào NO_PROXY, ví dụ localhost,192.168.0.0/24, để thông báo không đi vòng qua proxy.
File proxies.json cho từng watch
Từ bản 0.39.20, changedetection.io đọc danh sách proxy từ file proxies.json trong thư mục dữ liệu. Mỗi khóa là tên proxy, có nhãn hiển thị và URL. Một mục không có URL nghĩa là đi thẳng, không qua proxy.
{
"none": {"label": "Không dùng proxy"},
"vn-1": {
"label": "Proxy thử có mật khẩu",
"url": "http://user1:p%40ss%232026@127.0.0.1:8802",
"reuse_time_minimum": 30
}
}
Trường reuse_time_minimum đặt số giây tối thiểu giữa hai lần dùng proxy đó. Wiki giải thích trường này giúp kiểm soát chi phí khi dùng proxy trả tiền. Với docker compose, file mẫu của dự án có sẵn dòng gắn ./proxies.json vào /datastore/proxies.json, chỉ cần bỏ dấu chú thích.
Giao diện cài đặt
Trong bản 0.60.9, trang Settings có tab CAPTCHA & Proxies. Mình kiểm giao diện thấy mục Default proxy để chọn proxy mặc định, và năm ô Extra Proxies, mỗi ô gồm tên và Proxy URL. Các proxy khai báo trong proxies.json cũng hiện trong danh sách chọn.
Cách thao tác theo hướng dẫn của Webshare cho changedetection.io: mở Settings, chọn tab CAPTCHA & Proxies, nhập proxy theo dạng http://username:password@host:port, bấm Save, rồi quay lại phần General để chọn proxy mặc định cho các watch.
Chuẩn bị môi trường thử changedetection.io proxy
Mình chạy changedetection.io trực tiếp bằng Python, không qua Docker, vì máy thử là Windows không cài Docker. Cách chạy này cho cùng phần lõi với bản Docker ở kiểu tải trang html_requests.
Phiên bản và cách cài
Bản mới nhất trên PyPI khi kiểm ngày 25/10/2026 là 0.60.9, phát hành ngày 12/10/2026, yêu cầu Python từ 3.11. Cài trong môi trường ảo riêng và chạy với thư mục dữ liệu riêng:
python -m venv venv
venv\Scripts\python -m pip install "changedetection.io==0.60.9"
venv\Scripts\changedetection.io.exe -d datastore -p 5099 -h 127.0.0.1
Tham số -d là thư mục dữ liệu, nơi đặt proxies.json. Tham số -h 127.0.0.1 giữ giao diện chỉ mở trong máy, không lộ ra mạng. Lần chạy đầu, phần mềm tự tạo hai watch mẫu tới trang changelog của dự án và Hacker News, anh em có thể xóa đi.
Trang giá thử và proxy
Trang thử có hai phần: một băng chữ hiển thị giờ máy chủ, đổi mỗi lần tải, và một vùng giá sản phẩm đọc từ file. Băng giờ cố ý mô phỏng phần nội dung động không quan trọng mà nhiều trang thật có, như đồng hồ, số người đang xem, quảng cáo xoay vòng.
Giữa changedetection.io và trang thử là một proxy HTTP yêu cầu tài khoản user1, mật khẩu p@ss#2026, ghi lại mọi request kèm trạng thái xác thực. Nhờ log này mình biết chắc request nào đi qua proxy.
Tạo watch bằng API
Changedetection.io có API REST, khóa API nằm trong tab API của Settings. Mình tạo watch bằng API để lặp lại thí nghiệm dễ dàng, chỉ định proxy vn-1 và bộ lọc chỉ lấy vùng giá:
curl -X POST http://127.0.0.1:5099/api/v1/watch \
-H "x-api-key: KHOA_API_CUA_BAN" -H "Content-Type: application/json" \
-d '{"url":"http://127.0.0.1:8801/gia","title":"Giá áo thun","proxy":"vn-1","include_filters":["span.price"],"time_between_check":{"minutes":1}}'
API trả về uuid của watch. Gọi GET /api/v1/watch/uuid với tham số recheck=1 để kiểm ngay mà không chờ lịch, GET /api/v1/watch/uuid/history để xem các bản đã lưu.
Ví dụ changedetection.io proxy: từ watch tới cảnh báo
Phần này đi qua bốn lần kiểm liên tiếp, mỗi lần một tình huống, ghi lại kết quả thật. Các lỗi gặp phải được giữ nguyên vì đó là phần hữu ích nhất của bài.
Lần một: bị chặn vì địa chỉ nội bộ
Lần kiểm đầu báo lỗi Fetch blocked, kèm giải thích địa chỉ 127.0.0.1 thuộc dải riêng hoặc dành riêng, muốn cho phép thì đặt ALLOW_IANA_RESTRICTED_ADDRESSES=true. Đây là lớp bảo vệ chống việc dùng changedetection.io để gọi vào máy chủ nội bộ.
Với site thật trên Internet, anh em không gặp lỗi này. Nhưng nếu muốn theo dõi một trang trong mạng nội bộ, hay thử nghiệm như mình, phải đặt biến này. Chỉ bật biến này khi changedetection.io không mở cho người lạ, vì nó mở lại đường gọi vào mạng nội bộ.
Lần hai: đi qua proxy, lấy bản đầu
Khởi động lại với ALLOW_IANA_RESTRICTED_ADDRESSES=true, watch kiểm thành công. Log proxy ghi một request tới trang giá với xác thực đúng. User-Agent gửi đi là chuỗi giả lập trình duyệt Chrome trên Linux, không phải chuỗi mặc định của thư viện requests.
Mật khẩu chứa @ và dấu thăng được mã hóa thành %40 và %23 trong proxies.json, và proxy nhận đúng tài khoản. Bản đầu tiên của vùng giá được lưu vào lịch sử, chưa có cảnh báo vì chưa có gì để so.
Lần ba: chỉ giờ đổi, không báo
Lần kiểm thứ hai sau đó khoảng một phút, băng giờ trên trang đã đổi nhưng giá giữ nguyên. Kết quả last_changed vẫn bằng 0, nghĩa là không có cảnh báo. Đây là tác dụng của include_filters với bộ chọn span.price: chỉ vùng giá được đem ra so sánh.
Nếu bỏ bộ lọc, mỗi lần kiểm đều thấy trang khác vì băng giờ, và anh em sẽ nhận cảnh báo liên tục. Cảnh báo giả là lý do phổ biến nhất khiến người dùng tắt thông báo rồi bỏ lỡ thay đổi thật.
Lần bốn: giá đổi, có cảnh báo
Mình đổi giá trong file từ 199.000đ thành 179.000đ rồi kiểm lại. Lần này last_changed được cập nhật bằng thời điểm kiểm, và API lịch sử trả về hai bản lưu. Cả ba request trong suốt thí nghiệm đều đi qua proxy với xác thực đúng.
Quy trình này là cách mình kiểm mỗi watch mới trước khi để chạy dài: lấy bản đầu, kiểm lại khi không có gì đổi để chắc không báo nhầm, rồi mới tin vào cảnh báo.

Chỉ so vùng giá, bỏ qua phần động
Lỗi thường gặp với changedetection.io proxy
Ngoài lỗi chặn địa chỉ nội bộ ở trên, mình cố ý tạo thêm vài lỗi để xem changedetection.io phản ứng thế nào. Biết trước các thông báo lỗi này giúp anh em sửa nhanh khi gặp với proxy thật.
Mật khẩu chưa mã hóa trong proxies.json
Mình thêm một mục proxy với mật khẩu p@ss#2026 viết thẳng, không mã hóa. Sau khoảng 47 giây, watch báo ProxyError, trong thông báo tên máy chủ proxy bị hiểu thành ss, vì phần sau dấu @ đầu tiên bị coi là địa chỉ máy chủ.
Watch không báo lỗi ngay mà đợi hết thời gian thử kết nối, nên với nhiều watch cùng lỗi, hàng đợi kiểm bị chậm theo. Cách sửa là mã hóa user và mật khẩu theo chuẩn URL. Bài định dạng proxy hướng dẫn tách đúng từng phần của chuỗi proxy nhà cung cấp gửi.
Mật khẩu proxy hiện trong log
Khi chạy ở mức log DEBUG, mỗi lần kiểm có một dòng ghi rõ proxy đang dùng, kèm cả user và mật khẩu ở dạng đọc được. Ai đọc được file log là có tài khoản proxy của anh em.
Với máy chủ dùng chung hay log gửi về hệ thống tập trung, cần hạ mức log, giới hạn quyền đọc file log, hoặc dùng proxy xác thực bằng IP thay vì mật khẩu. Đổi mật khẩu proxy nếu log đã từng bị gửi ra ngoài.
Proxy chạy với kiểu này, lỗi với kiểu kia
Bảng biến môi trường trong wiki cho thấy mỗi kiểu tải trang đọc proxy từ biến khác nhau. html_requests dùng HTTP_PROXY và HTTPS_PROXY. Playwright dùng playwright_proxy_server, kèm playwright_proxy_username, playwright_proxy_password và playwright_proxy_bypass. WebDriver dùng nhóm biến bắt đầu bằng webdriver_.
Vì vậy một watch chuyển từ html_requests sang trình duyệt có thể đột ngột đi thẳng không qua proxy, nếu anh em chỉ đặt HTTP_PROXY. Wiki còn ghi Playwright không có thiết lập proxy cho FTP, nên kiểu tải nào không hỗ trợ loại proxy nào thì không dùng được.
Bộ lọc không còn tìm thấy vùng giá
Khi proxy bị chặn, website thường trả về trang xác minh hoặc trang lỗi thay vì trang sản phẩm. Lúc đó bộ chọn span.price không tìm thấy gì. Trong Settings của bản 0.60.9 có mục Number of times the filter can be missing before sending a notification, tức số lần bộ lọc được phép không tìm thấy trước khi gửi thông báo.
Mình để giá trị này nhỏ cho watch quan trọng, để biết sớm khi proxy bị chặn hay website đổi giao diện. Với watch ít quan trọng, để lớn hơn để không bị làm phiền vì những lần lỗi tạm thời. Đây là cách gián tiếp nhưng hiệu quả để phát hiện proxy có vấn đề.
Proxy hết hạn giữa chừng
Proxy hết hạn hoặc đổi mật khẩu sẽ làm mọi watch dùng proxy đó báo lỗi 407 hoặc lỗi kết nối. Trên trang tổng quan, các watch lỗi được đánh dấu, nhưng nếu không ai mở giao diện thì không ai biết. Mình đặt nhắc gia hạn trên lịch và kiểm trang tổng quan ít nhất mỗi tuần một lần.
Khi đổi sang proxy mới, chỉ cần sửa URL trong proxies.json rồi khởi động lại, không phải sửa từng watch, vì watch tham chiếu proxy theo tên khóa. Đây là lợi ích lớn của việc đặt tên proxy theo vai trò như vn-san-a thay vì theo địa chỉ IP.
Kiểm proxy có thật sự được dùng
Cách chắc nhất là tạo một watch tới trang hiển thị IP, như api.ipify.org, chọn đúng proxy cần kiểm, rồi xem nội dung lưu được. IP lưu lại phải là IP proxy, không phải IP máy chủ. Mình làm việc này mỗi khi đổi nhà cung cấp hoặc đổi kiểu tải trang.
Bài công cụ kiểm tra proxy có thêm cách kiểm proxy độc lập với changedetection.io, hữu ích khi cần biết lỗi nằm ở proxy hay ở cấu hình.
Gắn changedetection.io proxy cho trình duyệt
Trang dựng bằng JavaScript, cần bấm nút hay cần chụp màn hình thì phải dùng kiểu tải trang bằng trình duyệt. Phần này mô tả cấu hình theo file docker-compose.yml của dự án; mình chưa chạy phần này vì máy thử không có Docker.
Sockpuppetbrowser là lựa chọn được khuyến nghị
File docker-compose.yml của dự án có sẵn dịch vụ browser-sockpuppet-chrome, được chú thích là cách khuyến nghị để tải trang bằng Chrome. Bật nó lên và đặt biến PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000 cho container chính.
WebDriver qua Selenium vẫn còn trong file, nhưng chú thích ghi là cũ, đã ngưng phát triển, chụp màn hình kém và không xử lý được header tùy chỉnh. Với cài đặt mới, chọn Playwright.
Biến proxy cho Playwright
Khi dùng Playwright, đặt proxy qua các biến playwright_proxy_server, playwright_proxy_username, playwright_proxy_password. Tách user và mật khẩu ra biến riêng tránh được chuyện mã hóa ký tự đặc biệt trong URL.
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io
volumes:
- changedetection-data:/datastore
- ./proxies.json:/datastore/proxies.json
environment:
- PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000
- playwright_proxy_server=http://ip-proxy:port
- playwright_proxy_username=user
- playwright_proxy_password=pass
Đoạn trên ghép từ các dòng chú thích trong file mẫu, chưa chạy thử. Sau khi khởi động, tạo watch tới trang hiển thị IP với kiểu tải trang Playwright để xác nhận IP đi ra đúng là IP proxy.
Lưu lượng khi dùng trình duyệt
Trình duyệt tải cả hình ảnh, phông chữ, script, nên mỗi lần kiểm tốn dung lượng gấp nhiều lần html_requests. Với proxy tính tiền theo dung lượng, một watch kiểm mỗi 5 phút bằng trình duyệt có thể tốn đáng kể sau một tháng.
Mình chỉ dùng trình duyệt cho watch thật sự cần, còn lại để html_requests. Kéo dài khoảng kiểm cho watch dùng trình duyệt cũng giảm chi phí mà ít ảnh hưởng tới giá trị cảnh báo.
Tính số request khi dùng changedetection.io proxy
Trước khi chọn số proxy, anh em cần biết hệ thống sẽ gửi bao nhiêu request mỗi ngày tới mỗi website. Phép tính đơn giản, nhưng nhiều người bỏ qua rồi ngạc nhiên khi proxy bị chặn sau vài ngày.
Công thức cơ bản
Số request mỗi ngày tới một website bằng số watch nhắm website đó nhân với số lần kiểm mỗi ngày của mỗi watch. Một watch kiểm mỗi 5 phút sẽ kiểm 288 lần một ngày. Ba mươi watch như vậy nhắm cùng một sàn là 8.640 request mỗi ngày.
Với html_requests, mỗi lần kiểm là một request HTML. Với kiểu tải bằng trình duyệt, một lần kiểm kéo theo hàng chục request phụ cho hình ảnh, script, phông chữ, nên con số thật lớn hơn nhiều lần.
Chia request cho proxy
Nếu thử nghiệm cho thấy website chấp nhận khoảng 1.000 request mỗi ngày từ một IP mà không chặn, thì 8.640 request cần ít nhất 9 IP. Mình luôn cộng thêm khoảng một phần ba để dự phòng IP bị chặn tạm thời, tức khoảng 12 IP cho ví dụ trên.
Con số 1.000 ở đây chỉ để minh họa cách tính, không phải ngưỡng của website nào cụ thể. Mỗi website có ngưỡng riêng, anh em phải tự thử: cho một watch kiểm dày với một IP và ghi lại khi nào bắt đầu gặp lỗi 403 hoặc 429.
Giảm request trước khi tăng proxy
Cách rẻ nhất luôn là giảm request. Không phải trang nào cũng cần kiểm 5 phút một lần. Trang chính sách, điều khoản đổi vài lần một năm, kiểm mỗi ngày là đủ. Trang giá khuyến mãi chớp nhoáng mới cần kiểm dày.
Changedetection.io cho đặt khoảng kiểm riêng cho từng watch, đè lên khoảng mặc định trong Settings. Mình chia watch thành ba nhóm: dày, vừa, thưa, rồi mới tính proxy cho từng nhóm. Cách này thường giảm tổng request đi một nửa so với để mọi watch cùng khoảng kiểm.
Theo dõi giá với changedetection.io proxy cho thị trường Việt Nam
Theo dõi giá là việc phổ biến nhất của changedetection.io. Với website Việt Nam, có vài chi tiết về định dạng giá và nội dung theo vùng cần để ý để cảnh báo có ích.
Tính năng theo dõi giá và còn hàng
README của dự án giới thiệu tính năng theo dõi giá và tình trạng còn hàng, cho đặt ngưỡng giá trên, ngưỡng giá dưới và phần trăm thay đổi, cùng thông báo hết hàng và có hàng trở lại. Tính năng này đọc dữ liệu giá có cấu trúc trên trang sản phẩm khi trang có cung cấp.
Với trang không có dữ liệu giá có cấu trúc, anh em quay lại cách dùng bộ lọc CSS như ví dụ ở trên, chỉ lấy vùng giá. Cách này đơn giản và hoạt động với hầu hết trang bán hàng.
Định dạng giá kiểu Việt Nam
Giá ở Việt Nam thường viết 199.000đ, dấu chấm ngăn hàng nghìn và chữ đ hoặc ký hiệu ₫ ở cuối. Khi so sánh văn bản, changedetection.io coi 199.000đ và 199.000 ₫ là khác nhau, nên một website đổi cách hiển thị ký hiệu tiền cũng tạo cảnh báo dù giá không đổi.
Trong bài thử, vùng giá đổi từ 199.000đ thành 179.000đ và cảnh báo đúng. Với website thật, mình xem vài lần kiểm đầu để chắc định dạng ổn định trước khi tin vào cảnh báo.
Nội dung theo vùng và IP Việt Nam
Nhiều sàn hiện giá, phí giao hàng và tồn kho theo tỉnh thành dựa trên IP hoặc địa chỉ đã chọn. Máy chủ changedetection.io đặt ở nước ngoài có thể thấy trang tiếng Anh, giá đô la, hoặc bị chuyển sang trang quốc tế.
Gắn proxy Việt Nam cho các watch này giúp nội dung lưu được giống người dùng trong nước thấy. Với website hiển thị theo tỉnh, mình kiểm thêm IP proxy thuộc vùng nào trước khi đọc số liệu tồn kho.
Chọn và vận hành changedetection.io proxy lâu dài
Changedetection.io chạy nhiều tháng không cần trông, nên proxy phải được chọn và quản lý cho chạy dài chứ không chỉ cho chạy được. Phần này gom kinh nghiệm chọn proxy và checklist.

Số watch × số lần kiểm = request mỗi ngày
Chọn loại proxy theo website
Trang tin, trang chính sách, trang ít chống bot chạy ổn với proxy datacenter, rẻ và ổn định. Sàn thương mại điện tử và trang có hệ thống chống bot cần proxy dân cư hoặc 4G. Trang cần đăng nhập nên dùng IP tĩnh, vì đổi IP giữa phiên dễ bị đăng xuất.
Với theo dõi giá trên thị trường Việt Nam, IP Việt Nam giúp thấy đúng giá và khuyến mãi người dùng trong nước thấy. Bài proxy theo dõi giá đối thủ có thêm ví dụ về loại dữ liệu nên theo dõi.
Khi cần mua proxy cho changedetection.io, ProxyVN có proxy dân cư tĩnh Viettel, VNPT, FPT, datacenter Việt Nam và proxy 4G, giao thức HTTP hoặc SOCKS5, cấp user và password. Nhớ mã hóa mật khẩu khi ghép vào URL trong proxies.json, và chạy watch kiểm IP trước khi dùng thật.
Chia proxy theo nhóm watch
Proxies.json cho phép đặt nhiều proxy, mỗi watch chọn một. Mình chia theo website: các watch cùng nhắm một sàn dùng chung một nhóm proxy riêng, không lẫn với watch của website khác. Khi một sàn chặn, chỉ nhóm đó bị ảnh hưởng.
Kết hợp reuse_time_minimum để giãn khoảng dùng của từng proxy, và tùy chọn Random jitter seconds trong tab Fetching của Settings để các lần kiểm không rơi đúng cùng một giây. Bài proxy pool giải thích cách chia proxy theo mục đích.
Checklist trước khi để watch chạy dài
Danh sách dưới mình làm cho mỗi nhóm watch mới:
- Ghi phiên bản changedetection.io đang chạy.
- Mã hóa user và mật khẩu trong proxies.json, hoặc dùng biến riêng với Playwright.
- Kiểm IP bằng một watch tới trang hiển thị IP, cho đúng kiểu tải trang sẽ dùng.
- Đặt include_filters cho vùng cần theo dõi, kiểm hai lần khi trang không đổi để chắc không báo nhầm.
- Đặt reuse_time_minimum và jitter để giãn request.
- Hạ mức log hoặc giới hạn quyền đọc log vì log DEBUG chứa mật khẩu proxy.
- Không mở giao diện ra Internet khi chưa đặt mật khẩu, nhất là khi đã bật ALLOW_IANA_RESTRICTED_ADDRESSES.
- Đặt nhắc gia hạn proxy trước ngày hết hạn.
Watch tốt là watch báo đúng lúc có thay đổi thật và im lặng khi không có gì. Proxy giúp watch chạy được, bộ lọc giúp watch báo đúng.

Checklist trước khi chạy dài
Câu hỏi thường gặp
Bản changedetection.io trả phí trên đám mây có dùng proxy riêng được không. Bài này chỉ thử bản tự cài. Hướng dẫn của Webshare cho thấy bản đăng ký trên web cũng có tab CAPTCHA & Proxies để nhập proxy, nhưng anh em nên kiểm trực tiếp trên tài khoản của mình.
Có dùng proxy SOCKS5 được không. Được với html_requests, wiki đưa ví dụ HTTPS_PROXY dạng socks5h. Với Playwright và trình duyệt nhân Chromium, proxy SOCKS5 có tài khoản thường không được hỗ trợ, nên chọn proxy HTTP có tài khoản cho kiểu tải trang bằng trình duyệt.
Watch báo lỗi 403 dù đã có proxy thì làm gì. Kiểm proxy có đúng loại cho website không, datacenter thường bị sàn lớn chặn. Tăng khoảng kiểm, bật jitter, và nếu cần thì chuyển sang proxy dân cư. Kiểm thêm IP có bị đưa vào danh sách đen theo bài kiểm tra proxy có bị blacklist không.
Một proxy dùng được cho bao nhiêu watch. Không có con số chung, vì nó phụ thuộc số lần kiểm mỗi ngày và ngưỡng của website. Tính theo tổng request mỗi ngày tới từng website như phần tính số request ở trên, rồi chia cho ngưỡng mà một IP chịu được. Watch nhắm các website khác nhau thì dùng chung một proxy thoải mái hơn nhiều so với watch cùng nhắm một website.
Thông báo có đi qua proxy không. Wiki ghi HTTP_PROXY và HTTPS_PROXY áp dụng cả cho phần thông báo. Nếu thông báo tới máy chủ nội bộ bị lỗi sau khi đặt proxy, thêm địa chỉ đó vào NO_PROXY.
Changedetection.io proxy và những điều cần nhớ
Changedetection.io proxy gắn được qua biến môi trường, proxies.json hoặc giao diện, mỗi kiểu tải trang đọc proxy một chỗ. Mã hóa mật khẩu, đặt bộ lọc vùng theo dõi, kiểm IP trước khi chạy dài. Cần proxy ổn định, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam cho changedetection.io proxy.