Đổi IP bằng VPN rồi mà vẫn bị bắt xác minh
Chỗ nhầm phổ biến nhất của người bán Việt là tưởng IP sạch là xong, trong khi thứ lặp lại đều đặn giữa các tài khoản lại nằm ở tầng ứng dụng. Cũng đừng trách VPN, nó vốn sinh ra để bảo vệ lưu lượng, không phải để tổ chức nhiều danh tính vận hành trên một máy.
Trình duyệt để lại những dấu vết gì
Địa chỉ mạng, đồng hồ và ngôn ngữ phải đi cùng nhau
7h sáng thứ Hai, anh Nam ngồi quán cà phê ở Quận 7, mở laptop lên thì Seller Center hiện dòng yêu cầu xác minh lại danh tính. Gian phụ kiện điện thoại chạy bốn tháng, không khiếu nại, không đơn hoàn bất thường. Anh kể giọng vẫn bực: "Em mua VPN 190 nghìn một tháng, bật lên trước khi vào shop, đổi IP liên tục rồi mà sao nó vẫn nhận ra?"
Cái anh làm không sai, chỉ chưa đủ. Ba gian Shopee cộng một tài khoản chạy thử nội dung, tất cả mở trong cùng một Chrome, chỉ khác vài cửa sổ ẩn danh. Hôm trước anh tắt VPN giữa chừng để tải file, hôm sau bật lại rồi vào shop thứ hai. IP đổi, còn danh sách font, card đồ họa, múi giờ và cả kho cookie cũ vẫn nguyên đó.
Tôi bảo anh tách mỗi gian ra một hồ sơ riêng trong BitBrowser, nơi mỗi hồ sơ có vùng lưu trữ và thông số thiết bị của riêng nó, rồi gán một địa chỉ mạng cố định theo hồ sơ. Chỉ là dừng thói quen cho mọi tài khoản đi chung một cửa. Nhưng muốn hiểu cái VPN 190 nghìn kia không giải được, phải xuống mấy tầng bên dưới.
VPN sửa một tầng, trình duyệt là chuyện của tầng khácCái anh làm không sai, chỉ chưa đủ. Ba gian Shopee cộng một tài khoản chạy thử nội dung, tất cả mở trong cùng một Chrome, chỉ khác vài cửa sổ ẩn danh. Hôm trước anh tắt VPN giữa chừng để tải file, hôm sau bật lại rồi vào shop thứ hai. IP đổi, còn danh sách font, card đồ họa, múi giờ và cả kho cookie cũ vẫn nguyên đó.
Tôi bảo anh tách mỗi gian ra một hồ sơ riêng trong BitBrowser, nơi mỗi hồ sơ có vùng lưu trữ và thông số thiết bị của riêng nó, rồi gán một địa chỉ mạng cố định theo hồ sơ. Chỉ là dừng thói quen cho mọi tài khoản đi chung một cửa. Nhưng muốn hiểu cái VPN 190 nghìn kia không giải được, phải xuống mấy tầng bên dưới.
VPN tạo một đường hầm cho gói tin: đổi địa chỉ nguồn mà máy chủ phía xa thấy, mã hóa lưu lượng, thường đổi luôn máy chủ DNS. Trong mô hình OSI, chuyện đó nằm ở tầng mạng và tầng giao vận. Mọi thứ bên trong trình duyệt, từ lúc dựng trang tới lúc ghi cookie, nằm ở tầng ứng dụng, ngoài tầm của đường hầm.
Cứ hình dung VPN thay địa chỉ ghi trên phong bì, còn nét chữ, loại giấy và cách gấp thư vẫn của một người. Phía nhận thư không chỉ đọc phong bì.
Cứ hình dung VPN thay địa chỉ ghi trên phong bì, còn nét chữ, loại giấy và cách gấp thư vẫn của một người. Phía nhận thư không chỉ đọc phong bì.
Tầng tín hiệu | VPN xử lý | Trình duyệt quản lý đa tài khoản xử lý |
| Địa chỉ mạng, ASN, DNS | Có, đổi cổng ra | Có, gán proxy riêng theo từng hồ sơ |
| Thông số thiết bị: Canvas, WebGL, Audio, font | Không | Có, quản lý bộ tham số riêng cho mỗi hồ sơ |
| Cookie, localStorage, IndexedDB, bộ nhớ đệm | Không | Có, mỗi hồ sơ một vùng lưu trữ tách biệt |
| Múi giờ, ngôn ngữ, độ phân giải | Không | Có, đồng bộ theo vùng địa lý của địa chỉ mạng |
| Nhịp đăng nhập, trình tự thao tác | Không | Không, thuộc về quy trình con người |
Chỗ nhầm phổ biến nhất của người bán Việt là tưởng IP sạch là xong, trong khi thứ lặp lại đều đặn giữa các tài khoản lại nằm ở tầng ứng dụng. Cũng đừng trách VPN, nó vốn sinh ra để bảo vệ lưu lượng, không phải để tổ chức nhiều danh tính vận hành trên một máy.
Mỗi lần tải trang, JavaScript đọc được hàng chục thông số người dùng chẳng bao giờ thấy. Canvas trả kết quả vẽ hình, chỉ khác một chút ở driver đồ họa là chuỗi băm đổi. WebGL lộ tên GPU qua UNMASKED_RENDERER_WEBGL. AudioContext tạo một đoạn sóng rồi nén lại, ra con số đặc trưng cho stack âm thanh. Danh sách font được đo bằng chiều rộng ký tự, nên riêng bộ font mặc định của Windows đã là một dấu nhận dạng. Thêm navigator.hardwareConcurrency, deviceMemory, colorDepth và các Client Hints như sec-ch-ua-platform.
Tầng lưu trữ thì có cookie giữ phiên đăng nhập, với Shopee thường là token dạng SPC_ST trong Seller Center. localStorage và IndexedDB giữ cấu hình giao diện, đôi khi cả mã thiết bị do trang tự sinh. Bộ nhớ đệm HTTP, ETag, HSTS, Service Worker đều có thể thành mã nhận dạng bền. Ẩn danh chỉ xóa cookie lúc đóng cửa sổ, không đổi lấy một thông số phần cứng nào, nên năm cửa sổ ẩn danh của anh Nam vẫn có chung một khuôn mặt.
Chi tiết hay bị bỏ qua là WebRTC: một trang gọi RTCPeerConnection có thể đưa địa chỉ IP nội bộ vào dòng candidate của SDP. Đổi IP bên ngoài mà chừa chỗ này thì địa chỉ mạng thật vẫn lộ. Cùng nhóm đó, thứ tự khung SETTINGS của HTTP/2 hay tập cipher suite trong bắt tay TLS tạo thành dấu vân tay ở tầng giao thức, ngoài tầm mọi tiện ích đổi IP.
BitBrowser xử lý bằng cách can thiệp vào nhân Chromium đã tùy biến, để mỗi hồ sơ trả về một bộ tham số nhất quán riêng và có thư mục dữ liệu riêng. Cái đáng giá là sự ổn định: một thiết bị thật không đổi tên GPU sau mỗi lần mở lại.
Tầng lưu trữ thì có cookie giữ phiên đăng nhập, với Shopee thường là token dạng SPC_ST trong Seller Center. localStorage và IndexedDB giữ cấu hình giao diện, đôi khi cả mã thiết bị do trang tự sinh. Bộ nhớ đệm HTTP, ETag, HSTS, Service Worker đều có thể thành mã nhận dạng bền. Ẩn danh chỉ xóa cookie lúc đóng cửa sổ, không đổi lấy một thông số phần cứng nào, nên năm cửa sổ ẩn danh của anh Nam vẫn có chung một khuôn mặt.
Chi tiết hay bị bỏ qua là WebRTC: một trang gọi RTCPeerConnection có thể đưa địa chỉ IP nội bộ vào dòng candidate của SDP. Đổi IP bên ngoài mà chừa chỗ này thì địa chỉ mạng thật vẫn lộ. Cùng nhóm đó, thứ tự khung SETTINGS của HTTP/2 hay tập cipher suite trong bắt tay TLS tạo thành dấu vân tay ở tầng giao thức, ngoài tầm mọi tiện ích đổi IP.
BitBrowser xử lý bằng cách can thiệp vào nhân Chromium đã tùy biến, để mỗi hồ sơ trả về một bộ tham số nhất quán riêng và có thư mục dữ liệu riêng. Cái đáng giá là sự ổn định: một thiết bị thật không đổi tên GPU sau mỗi lần mở lại.
// Kiểm tra nhanh ba tín hiệu hay trùng giữa các cửa sổ const canvas = document.createElement('canvas'); const gl = canvas.getContext('webgl'); const dbg = gl.getExtension('WEBGL_debug_renderer_info'); console.log({ canvasHash: canvas.toDataURL().slice(-24), gpu: gl.getParameter(dbg.UNMASKED_RENDERER_WEBGL), zone: Intl.DateTimeFormat().resolvedOptions().timeZone, lang: navigator.language, cores: navigator.hardwareConcurrency, screen: [screen.width, screen.height, screen.colorDepth] }); // Hai cửa sổ ẩn danh: kết quả gần như y hệt. // Hai hồ sơ riêng: giá trị khác nhau và ổn định. |
Địa chỉ mạng, đồng hồ và ngôn ngữ phải đi cùng nhau
Gán proxy cho mỗi hồ sơ là cần nhưng chưa đủ. Địa chỉ mạng trỏ về TP.HCM mà múi giờ lại America/Los_Angeles, hay để en-US trong khi IP nằm ở Đà Nẵng, thì cái lệch đó dễ bị ghi nhận hơn cả việc trùng IP. Phía nền tảng chỉ cần so vài giá trị do chính trình duyệt tự khai: Intl.DateTimeFormat().resolvedOptions().timeZone, navigator.language và vùng địa lý suy từ địa chỉ mạng.
Nguyên tắc tôi dặn anh Nam: một hồ sơ, một địa chỉ mạng cố định, một múi giờ, một ngôn ngữ, không đổi giữa chừng. Dùng proxy dân cư dạng sticky thay vì xoay vòng, vì một gian đang ở Hà Nội rồi năm phút sau nhảy sang Singapore là câu chuyện khó giải trình. BitBrowser có tùy chọn tự điền múi giờ và ngôn ngữ theo IP, đỡ cái lỗi anh em hay gọi là "proxy một nơi, đồng hồ một nẻo".
Nguyên tắc tôi dặn anh Nam: một hồ sơ, một địa chỉ mạng cố định, một múi giờ, một ngôn ngữ, không đổi giữa chừng. Dùng proxy dân cư dạng sticky thay vì xoay vòng, vì một gian đang ở Hà Nội rồi năm phút sau nhảy sang Singapore là câu chuyện khó giải trình. BitBrowser có tùy chọn tự điền múi giờ và ngôn ngữ theo IP, đỡ cái lỗi anh em hay gọi là "proxy một nơi, đồng hồ một nẻo".
Hồ sơ | Địa chỉ mạng | Múi giờ | Ngôn ngữ | Ghi chú |
| Shopee-HCM-01 | IP tĩnh TP.HCM | Asia/Ho_Chi_Minh | vi-VN | Gian chính, khung 9h-11h |
| Shopee-HN-02 | IP tĩnh Hà Nội | Asia/Ho_Chi_Minh | vi-VN | Gian phụ, khung 14h-16h |
| Ads-Test-03 | IP tĩnh Singapore | Asia/Singapore | en-SG | Thử nội dung, có nhãn quảng cáo |
Cấu hình cụ thể, bắt đầu từ một hồ sơAnh Nam làm sáu bước trong chưa tới hai mươi phút: tạo hồ sơ và đặt tên theo gian, gán proxy SOCKS5 cố định, bật đồng bộ múi giờ và ngôn ngữ theo IP, kiểm tra bộ thông số thiết bị đã được cấp riêng, đăng nhập sạch ngay trong hồ sơ đó, rồi làm lại cho hồ sơ thứ hai. Không nạp cookie mua sẵn từ bên ngoài. Ai quen gọi lệnh thì làm tương tự qua Local API, theo tài liệu doc.bitbrowser.net.
curl -X POST http://127.0.0.1:54345/browser/create \ -H "Content-Type: application/json" \ -d '{ "name": "Shopee-HCM-01", "proxyInfo": { "proxyMethod": "custom", "proxyType": "socks5", "proxyHost": "203.0.113.24", "proxyPort": 1080 }, "browserFingerPrint": { "coreProduct": "chrome", "isIpCreateTimeZone": true, "isIpCreateLanguage": true } }' |
Hai tham số isIpCreateTimeZone và isIpCreateLanguage bảo trình duyệt tự lấy múi giờ, ngôn ngữ từ địa chỉ mạng vừa gán, thay vì gõ tay rồi quên. Gói miễn phí hiện tại cho 10 hồ sơ, đủ chạy thử ba gian thật; gói 50 hồ sơ giá 257.390 VND mỗi tháng đã gồm hai ghế thành viên, thêm một ghế 51.478 VND.
Nhìn lại và đoán vài bước tiếp theo
Câu trả lời ngắn gọn: VPN đổi đường đi của gói tin, trình duyệt quản lý đa tài khoản tổ chức lại danh tính của từng phiên làm việc. Hai thứ đứng ở hai tầng khác nhau, không thay thế nhau. Một tài khoản cần bảo vệ lưu lượng trên wifi công cộng thì VPN là đủ; nhiều gian hàng trên cùng một máy thì cái thiếu nằm ở vùng lưu trữ và bộ thông số thiết bị.
Tôi nghĩ vài năm tới các sàn sẽ ít chấm từng tín hiệu lẻ hơn, mà nhìn mối tương quan giữa thiết bị, mạng, lịch sử giao dịch và nhịp thao tác trong cùng một cụm. Một IP sạch không cứu được quy trình lộn xộn, và một hồ sơ gọn cũng không thay được việc giao hàng đúng hạn. Tại Việt Nam, Nghị định 85/2021/NĐ-CP và quy chế từng sàn vẫn đặt trách nhiệm ở người đứng sau tài khoản.
AI đang len vào đúng chỗ nhàm chán đó. Từ bản v7.1.5, BitBrowser có MCP để tác nhân AI rà bên trong hồ sơ đã tách: phiên nào hết hạn, hồ sơ nào lệch múi giờ, rồi gộp thành danh sách xử lý một lượt. Nên giao cho AI việc soi sự nhất quán, không phải quyết định thay mình. Ai đang cầm nhiều gian, cứ bắt đầu với ít hồ sơ, ghi rõ ai làm gì lúc nào, đọc điều khoản sàn mình bán, rồi mới tính mở rộng.
Tôi nghĩ vài năm tới các sàn sẽ ít chấm từng tín hiệu lẻ hơn, mà nhìn mối tương quan giữa thiết bị, mạng, lịch sử giao dịch và nhịp thao tác trong cùng một cụm. Một IP sạch không cứu được quy trình lộn xộn, và một hồ sơ gọn cũng không thay được việc giao hàng đúng hạn. Tại Việt Nam, Nghị định 85/2021/NĐ-CP và quy chế từng sàn vẫn đặt trách nhiệm ở người đứng sau tài khoản.
AI đang len vào đúng chỗ nhàm chán đó. Từ bản v7.1.5, BitBrowser có MCP để tác nhân AI rà bên trong hồ sơ đã tách: phiên nào hết hạn, hồ sơ nào lệch múi giờ, rồi gộp thành danh sách xử lý một lượt. Nên giao cho AI việc soi sự nhất quán, không phải quyết định thay mình. Ai đang cầm nhiều gian, cứ bắt đầu với ít hồ sơ, ghi rõ ai làm gì lúc nào, đọc điều khoản sàn mình bán, rồi mới tính mở rộng.