Một buổi soát lại nhật ký cấu hình của năm cửa hàng trên cùng một máy tính, và những trường dữ liệu mà trình duyệt vẫn để lọt dù bạn đã đổi proxy.
Tuần trước tôi được một nhóm ở quận 7 gọi sang xem giúp. Họ chạy năm gian hàng TikTok Shop trên một chiếc máy tính để bàn, dùng BitBrowser để tách từng cửa sổ, mỗi cửa sổ một proxy riêng. Tối hôm trước vẫn ổn, sáng hôm sau bốn gian hàng hiện yêu cầu xác minh danh tính. Việc đầu tiên tôi làm không phải mở bảng giá proxy, mà là bảo họ export cấu hình năm cửa sổ ra file rồi ngồi soát từng cột. Mất chừng hai mươi phút để tìm ra: bốn cửa sổ dùng chung một danh sách font và cùng một múi giờ, trong khi bốn proxy trải dài từ Singapore tới hai bang khác nhau của Mỹ. Lỗi không nằm ở chuyện cùng một máy tính. Lỗi nằm ở chỗ họ tưởng cứ tách IP là xong.
Cùng một máy tính không có nghĩa là cùng một danh tính
Trình duyệt web không hề im lặng. Mỗi khi một trang tải lên, JavaScript có thể hỏi nó rất nhiều thứ: hãy vẽ một đoạn Canvas rồi trả lại kết quả, hãy cho biết GPU xử lý WebGL thế nào, hãy liệt kê font đang có, hãy báo múi giờ hệ thống và ngôn ngữ ưu tiên, hãy nói máy có bao nhiêu luồng CPU và bộ nhớ danh nghĩa bao nhiêu. Những câu trả lời này gộp lại thành một bộ hồ sơ khá ổn định theo thời gian, nên nó thường được dùng để nhận diện một thiết bị thay vì chỉ nhận diện một địa chỉ mạng.
Điểm mấu chốt là lớp can thiệp. Một tiện ích cài thêm trên Chrome chỉ chỉnh được một phần bề mặt, còn các công cụ chuyên dụng can thiệp sâu hơn vào chính nhân trình duyệt, chẳng hạn sửa các hàm trả về Canvas, WebGL, WebRTC và AudioContext ngay trong mã nguồn C++ của một nhánh Chromium tùy biến. Đó là lý do hai cửa sổ mở trên cùng một máy vẫn có thể mang hai bộ thông số rất khác nhau. BitBrowser còn cho phép chọn giữa nhân Chromium và Firefox khi tạo môi trường, với tham số coreProduct trong API nhận hai giá trị chrome và firefox. Với những trang có cách đọc hồ sơ khác nhau giữa hai họ nhân, việc có thêm một lựa chọn là có thêm một bậc linh hoạt.
Bảy nhóm trường dữ liệu hay để lọt nhất
Bảng 1. Các nhóm trường thường xuất hiện trong hồ sơ thiết bị và cách tổ chức tương ứng.
Có một chi tiết nhỏ mà ít ai để ý: các dịch vụ tra cứu địa chỉ IP không phải lúc nào cũng đồng thuận với nhau. Tài liệu kỹ thuật của nhà sản xuất ghi nhận mức khác biệt khoảng 3% giữa các bộ cơ sở dữ liệu khi xác định quốc gia từ cùng một IP. Vì vậy, nếu client báo một nơi mà trang tra cứu của bên proxy báo nơi khác, đừng vội kết luận cấu hình hỏng. Hãy kiểm tra địa chỉ IP trước, rồi mới xem phần hiển thị quốc gia.
Ba thứ không nên dùng chung dù bạn đã tách cửa sổ
Thứ nhất là tiện ích mở rộng. Một extension dịch thuật hay một extension đo lường cài vào mọi cửa sổ sẽ mang theo cùng một định danh và cùng một danh sách quyền, biến những môi trường vốn khác nhau thành có thêm một điểm chung. Thứ hai là danh sách font và bộ gõ tiếng Việt cài ở cấp hệ điều hành, thứ mà nhiều team không nghĩ là tín hiệu. Thứ ba, dĩ nhiên, là đầu ra mạng: proxy động nhảy địa chỉ liên tục trong cùng một phiên làm việc còn gây nhiễu hơn cả dùng chung một IP tĩnh. Nguyên tắc tôi vẫn áp dụng: mỗi gian hàng có một bộ hồ sơ ổn định, và bộ hồ sơ đó nhất quán từ đầu tới cuối phiên.
Năm giai đoạn dựng lại từ đầu
Giai đoạn 1. Chuẩn bị máy và tài khoản
Rà lại cấu hình máy trước đã: 4 nhân CPU, 8 GB RAM, 50 GB trống, Windows 10 trở lên hoặc macOS 12 trở lên. Cài client, đăng ký tài khoản quản trị, bật xác thực hai yếu tố. Gói miễn phí hiện tại cho 10 cửa sổ là đủ để chạy thử năm gian hàng thật và dư chỗ để so sánh. Lỗi hay gặp ở đây là cài client lên máy đang chạy nhiều trình duyệt khác rồi than phiền mở cửa sổ bị chậm, trong khi RAM đã cạn từ trước.
Giai đoạn 2. Dựng hồ sơ thiết bị
Tạo cửa sổ, đặt tên theo mã gian hàng kèm khu vực, chọn đúng nền tảng, rồi dùng chức năng sinh cấu hình ngẫu nhiên để có một bộ thông số đồng bộ. Đừng tạo một cửa sổ rồi clone ra bốn cái: bản clone giữ nguyên dấu vân tay nếu bạn không chủ động yêu cầu sinh mới, và đây là lỗi phổ biến nhất trong các ca tôi từng xem. Nếu team có thói quen dùng Firefox cho một số trang, hãy quyết định nhân ngay từ bước này thay vì đổi giữa chừng.

Ảnh 1. Khu vực cài đặt dấu vân tay. Cần kiểm tra riêng các mục Canvas, WebGL, font, múi giờ và thông số phần cứng.
Giai đoạn 3. Gán mạng và khớp vị trí
Client nhận HTTP, HTTPS, SOCKS5 lẫn SSH, và có thể lấy IP qua đường dẫn API của nhà cung cấp. Với team có sẵn danh sách proxy, dùng tệp mẫu để nhập cùng lúc rồi cho kiểm tra kết nối, việc này lộ ra ngay những IP yếu trước khi chúng kịp vào quy trình thật. Sau khi điền IP, hệ thống có thể tự điền quốc gia, tỉnh và thành phố, rồi đồng bộ múi giờ và ngôn ngữ theo đó. Có hai chế độ lấy IP từ đường dẫn API: lấy IP mới mỗi lần mở cửa sổ, hoặc chỉ lấy lại khi IP cũ không còn dùng được. Với gian hàng thương mại điện tử, tôi vẫn chọn cách thứ hai để giữ sự ổn định.

Ảnh minh họa 2: bảng cấu hình mạng trong giao diện quản trị của một nhà cung cấp proxy bất kỳ, chụp rõ cột host, port, giao thức và khu vực. Nên lấy ảnh từ trang quản trị chính thức của đơn vị team đang dùng.
Giai đoạn 4. Đưa danh tính vào và chạy thử một gian hàng
Điền thông tin đăng nhập hoặc dán cookie vào đúng cửa sổ, bật mã 2FA nếu nền tảng yêu cầu, rồi mở cửa sổ và thao tác như một ngày bình thường: xem đơn, sửa một mô tả, đăng một sản phẩm mới. Để riêng gian hàng này chạy khoảng một tuần trước khi nhân bản. Vì sao phải chậm thế? Vì nếu có lỗi ở khâu múi giờ hay font, bạn muốn nó lộ ra ở một cửa sổ thay vì ở năm cửa sổ cùng lúc. Trong thời gian chạy thử, ghi lại giờ đăng nhập và thiết bị dùng để đăng nhập vào phần ghi chú.
Giai đoạn 5. Nhân bản có kiểm soát
Khi quy trình đơn lẻ đã ổn, dùng tệp Excel để nhập thông tin nhiều cửa sổ cùng lúc; chức năng này nhận tới 1000 cửa sổ trong một lần. Chia nhóm theo kênh hoặc theo người phụ trách, gán tối đa ba thẻ cho mỗi cửa sổ trong tổng số hai mươi thẻ của hệ thống. Với cookie, nếu cần cập nhật định kỳ theo lô, mỗi cửa sổ phải có một tệp txt riêng đặt tên đúng theo số thứ tự cửa sổ, gom vào thư mục Cookies rồi nén lại; tệp nén không quá 20 MB và tối đa 100 tệp một lần. Đây là chỗ hay hỏng nhất vì chỉ cần sai tên tệp là đúng cửa sổ không nhận được dữ liệu.
Múi giờ, IP và nhịp thao tác: bộ ba hay lệch nhau
Ba yếu tố này nên được coi là một cụm chứ không phải ba mục cần tick riêng. IP quyết định vị trí, vị trí kéo theo múi giờ và ngôn ngữ, còn múi giờ lại chi phối khung giờ bạn nên đăng nhập. Một gian hàng gắn IP Singapore nhưng đăng nhập đều đặn lúc hai giờ sáng theo giờ địa phương, mỗi ngày, sẽ tạo ra một nhịp rất khác với người bán thật. Team ở quận 7 hôm đó sau khi sửa lại múi giờ đã phải sửa thêm cả lịch đăng sản phẩm, vì năm gian hàng trước đó cùng được một người đẩy lên trong vòng mười lăm phút mỗi sáng.
Khi nào thì nên đưa tự động hóa vào
Sau khi quy trình thủ công chạy trơn, mới nên nghĩ tới tự động hóa. Client có Local API chạy ngay trên máy, hỗ trợ CDP cùng Puppeteer, Playwright và Selenium, nên các việc kiểu sắp xếp cửa sổ, cập nhật ghi chú, xuất báo cáo nội bộ có thể giao cho script. Từ bản 7.1.5 còn có MCP để một trợ lý AI kết nối vào và thực hiện thao tác trong từng môi trường bằng câu lệnh tự nhiên. Có một giới hạn đáng nhớ nếu team dùng thêm điện thoại đám mây: nhóm API của điện thoại đám mây chỉ nhận một yêu cầu mỗi giây, và các lệnh bật máy, đổi máy mới, cài ứng dụng đều là bất đồng bộ, nên phải gọi thêm API kiểm tra trạng thái thay vì đoán là xong.

Ảnh minh họa 4: giao diện thiết lập Local API và cấu hình MCP trong phần Cài đặt hệ thống, chụp rõ ô bật xác thực và đoạn cấu hình có địa chỉ 127.0.0.1. Nguồn: giao diện client thực tế.
Điểm dừng của kỹ thuật
Dựng đúng hồ sơ thiết bị giúp mỗi gian hàng có một danh tính nhất quán và dễ truy vết, nhưng nó không thay được nội dung. Từ ngày 24 tháng 4 năm 2026, TikTok Shop tại khu vực Đông Nam Á, trong đó có Việt Nam, siết chặt hơn với nội dung thương mại chất lượng thấp và hàng trùng lặp. Vì vậy phần việc còn lại vẫn là lựa chọn sản phẩm khác biệt, mô tả riêng, video quay riêng và chuyển đổi bằng công cụ chính thức trong nền tảng. Nhóm ở quận 7 sửa xong cấu hình trong một buổi chiều, nhưng phải mất thêm hai tuần để tách lại năm danh mục hàng. Kỹ thuật chỉ đưa họ về đúng vạch xuất phát.
Tuần trước tôi được một nhóm ở quận 7 gọi sang xem giúp. Họ chạy năm gian hàng TikTok Shop trên một chiếc máy tính để bàn, dùng BitBrowser để tách từng cửa sổ, mỗi cửa sổ một proxy riêng. Tối hôm trước vẫn ổn, sáng hôm sau bốn gian hàng hiện yêu cầu xác minh danh tính. Việc đầu tiên tôi làm không phải mở bảng giá proxy, mà là bảo họ export cấu hình năm cửa sổ ra file rồi ngồi soát từng cột. Mất chừng hai mươi phút để tìm ra: bốn cửa sổ dùng chung một danh sách font và cùng một múi giờ, trong khi bốn proxy trải dài từ Singapore tới hai bang khác nhau của Mỹ. Lỗi không nằm ở chuyện cùng một máy tính. Lỗi nằm ở chỗ họ tưởng cứ tách IP là xong.
Cùng một máy tính không có nghĩa là cùng một danh tính
Trình duyệt web không hề im lặng. Mỗi khi một trang tải lên, JavaScript có thể hỏi nó rất nhiều thứ: hãy vẽ một đoạn Canvas rồi trả lại kết quả, hãy cho biết GPU xử lý WebGL thế nào, hãy liệt kê font đang có, hãy báo múi giờ hệ thống và ngôn ngữ ưu tiên, hãy nói máy có bao nhiêu luồng CPU và bộ nhớ danh nghĩa bao nhiêu. Những câu trả lời này gộp lại thành một bộ hồ sơ khá ổn định theo thời gian, nên nó thường được dùng để nhận diện một thiết bị thay vì chỉ nhận diện một địa chỉ mạng.
Điểm mấu chốt là lớp can thiệp. Một tiện ích cài thêm trên Chrome chỉ chỉnh được một phần bề mặt, còn các công cụ chuyên dụng can thiệp sâu hơn vào chính nhân trình duyệt, chẳng hạn sửa các hàm trả về Canvas, WebGL, WebRTC và AudioContext ngay trong mã nguồn C++ của một nhánh Chromium tùy biến. Đó là lý do hai cửa sổ mở trên cùng một máy vẫn có thể mang hai bộ thông số rất khác nhau. BitBrowser còn cho phép chọn giữa nhân Chromium và Firefox khi tạo môi trường, với tham số coreProduct trong API nhận hai giá trị chrome và firefox. Với những trang có cách đọc hồ sơ khác nhau giữa hai họ nhân, việc có thêm một lựa chọn là có thêm một bậc linh hoạt.
Bảy nhóm trường dữ liệu hay để lọt nhất
| Nhóm trường | Nội dung bị đọc | Cách tổ chức tách biệt |
| Kết xuất đồ họa | Canvas, WebGL, thông số GPU, AudioContext | Tạo cấu hình dấu vân tay riêng cho từng cửa sổ, không clone nguyên bản |
| Mạng lộ ra | IP công khai, WebRTC, DNS, ASN | Mỗi cửa sổ một kênh mạng riêng; chạy kiểm tra kết nối trước khi lưu |
| Hệ thống | Múi giờ, ngôn ngữ, độ phân giải, múi giờ Intl | Đồng bộ tự động theo vị trí của IP, không chỉnh tay cho đẹp |
| Phần cứng danh nghĩa | Số luồng CPU, bộ nhớ, nền tảng hệ điều hành | Để cấu hình ngẫu nhiên sinh đồng bộ cả cụm thông số |
| Bề mặt trình duyệt | User agent, danh sách font, plugin, header | Tránh cài chung một bộ tiện ích vào mọi cửa sổ |
| Lưu trữ cục bộ | Cookie, localStorage, IndexedDB, bộ nhớ cache | Một cửa sổ một gian hàng; không mượn cửa sổ của đồng nghiệp |
| Nhịp thao tác | Giờ đăng nhập, tần suất đăng sản phẩm, thứ tự thao tác | Lên lịch riêng từng gian hàng, có người phụ trách rõ ràng |
Có một chi tiết nhỏ mà ít ai để ý: các dịch vụ tra cứu địa chỉ IP không phải lúc nào cũng đồng thuận với nhau. Tài liệu kỹ thuật của nhà sản xuất ghi nhận mức khác biệt khoảng 3% giữa các bộ cơ sở dữ liệu khi xác định quốc gia từ cùng một IP. Vì vậy, nếu client báo một nơi mà trang tra cứu của bên proxy báo nơi khác, đừng vội kết luận cấu hình hỏng. Hãy kiểm tra địa chỉ IP trước, rồi mới xem phần hiển thị quốc gia.
Ba thứ không nên dùng chung dù bạn đã tách cửa sổ
Thứ nhất là tiện ích mở rộng. Một extension dịch thuật hay một extension đo lường cài vào mọi cửa sổ sẽ mang theo cùng một định danh và cùng một danh sách quyền, biến những môi trường vốn khác nhau thành có thêm một điểm chung. Thứ hai là danh sách font và bộ gõ tiếng Việt cài ở cấp hệ điều hành, thứ mà nhiều team không nghĩ là tín hiệu. Thứ ba, dĩ nhiên, là đầu ra mạng: proxy động nhảy địa chỉ liên tục trong cùng một phiên làm việc còn gây nhiễu hơn cả dùng chung một IP tĩnh. Nguyên tắc tôi vẫn áp dụng: mỗi gian hàng có một bộ hồ sơ ổn định, và bộ hồ sơ đó nhất quán từ đầu tới cuối phiên.
Năm giai đoạn dựng lại từ đầu
Giai đoạn 1. Chuẩn bị máy và tài khoản
Rà lại cấu hình máy trước đã: 4 nhân CPU, 8 GB RAM, 50 GB trống, Windows 10 trở lên hoặc macOS 12 trở lên. Cài client, đăng ký tài khoản quản trị, bật xác thực hai yếu tố. Gói miễn phí hiện tại cho 10 cửa sổ là đủ để chạy thử năm gian hàng thật và dư chỗ để so sánh. Lỗi hay gặp ở đây là cài client lên máy đang chạy nhiều trình duyệt khác rồi than phiền mở cửa sổ bị chậm, trong khi RAM đã cạn từ trước.
Giai đoạn 2. Dựng hồ sơ thiết bị
Tạo cửa sổ, đặt tên theo mã gian hàng kèm khu vực, chọn đúng nền tảng, rồi dùng chức năng sinh cấu hình ngẫu nhiên để có một bộ thông số đồng bộ. Đừng tạo một cửa sổ rồi clone ra bốn cái: bản clone giữ nguyên dấu vân tay nếu bạn không chủ động yêu cầu sinh mới, và đây là lỗi phổ biến nhất trong các ca tôi từng xem. Nếu team có thói quen dùng Firefox cho một số trang, hãy quyết định nhân ngay từ bước này thay vì đổi giữa chừng.

Ảnh 1. Khu vực cài đặt dấu vân tay. Cần kiểm tra riêng các mục Canvas, WebGL, font, múi giờ và thông số phần cứng.
Giai đoạn 3. Gán mạng và khớp vị trí
Client nhận HTTP, HTTPS, SOCKS5 lẫn SSH, và có thể lấy IP qua đường dẫn API của nhà cung cấp. Với team có sẵn danh sách proxy, dùng tệp mẫu để nhập cùng lúc rồi cho kiểm tra kết nối, việc này lộ ra ngay những IP yếu trước khi chúng kịp vào quy trình thật. Sau khi điền IP, hệ thống có thể tự điền quốc gia, tỉnh và thành phố, rồi đồng bộ múi giờ và ngôn ngữ theo đó. Có hai chế độ lấy IP từ đường dẫn API: lấy IP mới mỗi lần mở cửa sổ, hoặc chỉ lấy lại khi IP cũ không còn dùng được. Với gian hàng thương mại điện tử, tôi vẫn chọn cách thứ hai để giữ sự ổn định.

Ảnh minh họa 2: bảng cấu hình mạng trong giao diện quản trị của một nhà cung cấp proxy bất kỳ, chụp rõ cột host, port, giao thức và khu vực. Nên lấy ảnh từ trang quản trị chính thức của đơn vị team đang dùng.
Giai đoạn 4. Đưa danh tính vào và chạy thử một gian hàng
Điền thông tin đăng nhập hoặc dán cookie vào đúng cửa sổ, bật mã 2FA nếu nền tảng yêu cầu, rồi mở cửa sổ và thao tác như một ngày bình thường: xem đơn, sửa một mô tả, đăng một sản phẩm mới. Để riêng gian hàng này chạy khoảng một tuần trước khi nhân bản. Vì sao phải chậm thế? Vì nếu có lỗi ở khâu múi giờ hay font, bạn muốn nó lộ ra ở một cửa sổ thay vì ở năm cửa sổ cùng lúc. Trong thời gian chạy thử, ghi lại giờ đăng nhập và thiết bị dùng để đăng nhập vào phần ghi chú.
Giai đoạn 5. Nhân bản có kiểm soát
Khi quy trình đơn lẻ đã ổn, dùng tệp Excel để nhập thông tin nhiều cửa sổ cùng lúc; chức năng này nhận tới 1000 cửa sổ trong một lần. Chia nhóm theo kênh hoặc theo người phụ trách, gán tối đa ba thẻ cho mỗi cửa sổ trong tổng số hai mươi thẻ của hệ thống. Với cookie, nếu cần cập nhật định kỳ theo lô, mỗi cửa sổ phải có một tệp txt riêng đặt tên đúng theo số thứ tự cửa sổ, gom vào thư mục Cookies rồi nén lại; tệp nén không quá 20 MB và tối đa 100 tệp một lần. Đây là chỗ hay hỏng nhất vì chỉ cần sai tên tệp là đúng cửa sổ không nhận được dữ liệu.
Múi giờ, IP và nhịp thao tác: bộ ba hay lệch nhau
Ba yếu tố này nên được coi là một cụm chứ không phải ba mục cần tick riêng. IP quyết định vị trí, vị trí kéo theo múi giờ và ngôn ngữ, còn múi giờ lại chi phối khung giờ bạn nên đăng nhập. Một gian hàng gắn IP Singapore nhưng đăng nhập đều đặn lúc hai giờ sáng theo giờ địa phương, mỗi ngày, sẽ tạo ra một nhịp rất khác với người bán thật. Team ở quận 7 hôm đó sau khi sửa lại múi giờ đã phải sửa thêm cả lịch đăng sản phẩm, vì năm gian hàng trước đó cùng được một người đẩy lên trong vòng mười lăm phút mỗi sáng.
Khi nào thì nên đưa tự động hóa vào
Sau khi quy trình thủ công chạy trơn, mới nên nghĩ tới tự động hóa. Client có Local API chạy ngay trên máy, hỗ trợ CDP cùng Puppeteer, Playwright và Selenium, nên các việc kiểu sắp xếp cửa sổ, cập nhật ghi chú, xuất báo cáo nội bộ có thể giao cho script. Từ bản 7.1.5 còn có MCP để một trợ lý AI kết nối vào và thực hiện thao tác trong từng môi trường bằng câu lệnh tự nhiên. Có một giới hạn đáng nhớ nếu team dùng thêm điện thoại đám mây: nhóm API của điện thoại đám mây chỉ nhận một yêu cầu mỗi giây, và các lệnh bật máy, đổi máy mới, cài ứng dụng đều là bất đồng bộ, nên phải gọi thêm API kiểm tra trạng thái thay vì đoán là xong.

Ảnh minh họa 4: giao diện thiết lập Local API và cấu hình MCP trong phần Cài đặt hệ thống, chụp rõ ô bật xác thực và đoạn cấu hình có địa chỉ 127.0.0.1. Nguồn: giao diện client thực tế.
Điểm dừng của kỹ thuật
Dựng đúng hồ sơ thiết bị giúp mỗi gian hàng có một danh tính nhất quán và dễ truy vết, nhưng nó không thay được nội dung. Từ ngày 24 tháng 4 năm 2026, TikTok Shop tại khu vực Đông Nam Á, trong đó có Việt Nam, siết chặt hơn với nội dung thương mại chất lượng thấp và hàng trùng lặp. Vì vậy phần việc còn lại vẫn là lựa chọn sản phẩm khác biệt, mô tả riêng, video quay riêng và chuyển đổi bằng công cụ chính thức trong nền tảng. Nhóm ở quận 7 sửa xong cấu hình trong một buổi chiều, nhưng phải mất thêm hai tuần để tách lại năm danh mục hàng. Kỹ thuật chỉ đưa họ về đúng vạch xuất phát.
