Proxyman là một ứng dụng proxy gốc cho macOS và iOS, được thiết kế để chặn, xem và sửa đổi lưu lượng HTTP/HTTPS trong quá trình phát triển ứng dụng. Theo trang web chính thức của Proxyman (2025), công cụ này được hơn 10.000 công ty sử dụng và hỗ trợ tất cả các phiên bản hiện đại của iOS và macOS. Ứng dụng proxy này cung cấp phiên bản cơ bản miễn phí và khác với Charles Proxy ở giao diện hiện đại hơn, hỗ trợ tập lệnh JavaScript để sửa đổi dữ liệu theo thời gian thực và tương thích tích hợp với trình mô phỏng iOS.
Những điểm chính
Proxyman là một ứng dụng proxy HTTP/HTTPS được tạo riêng cho hệ sinh thái Apple. Không giống như các giải pháp đa nền tảng, Proxyman sử dụng các framework macOS gốc (Swift, AppKit), đảm bảo hiệu suất cao và tích hợp liền mạch với các cơ chế proxy của hệ thống. Công cụ này hỗ trợ macOS 11+ và iOS 14+.
Proxyman định vị mình như một giải pháp thay thế hiện đại cho Charles Proxy dành cho các nhà phát triển trong hệ sinh thái Apple. Ưu điểm chính: phiên bản miễn phí với đầy đủ chức năng cơ bản, giao diện gốc phù hợp với hệ thống thiết kế macOS và cấu hình tự động cho trình mô phỏng iOS mà không cần các bước bổ sung. Proxyman đã được phát triển tích cực từ năm 2018 và có hệ thống phản hồi mở với cộng đồng nhà phát triển.
Proxyman chạy trên macOS (ứng dụng gốc, không phải Electron) và cung cấp ứng dụng đồng hành cho iOS. Các thiết bị vật lý (iPhone, iPad) được cấu hình qua WiFi Proxy tương tự như Charles. Ứng dụng đồng hành iOS (Proxyman iOS companion) cho phép xem lưu lượng trực tiếp trên thiết bị mà không cần máy tính — tính năng này là độc quyền của Proxyman.
Proxyman hoạt động theo nguyên tắc MITM tiêu chuẩn: ứng dụng được cấu hình như một proxy hệ thống mà qua đó tất cả lưu lượng HTTP/HTTPS đi qua. Công cụ này sử dụng cơ chế Network Extension gốc của macOS để chặn lưu lượng mà không cần cấu hình proxy thủ công cho trình mô phỏng iOS.
Trên macOS, Proxyman sử dụng Apple Network Framework để chặn lưu lượng một cách trong suốt. Khi proxy được kích hoạt, Proxyman tạo một giao diện mạng ảo mà qua đó lưu lượng của tất cả các ứng dụng đi qua. Đối với trình mô phỏng iOS, cấu hình diễn ra tự động khi khởi động — Proxyman phát hiện các trình mô phỏng đang chạy qua Xcode và chuyển hướng lưu lượng của chúng mà không cần thiết lập proxy thủ công trong cài đặt.
Để giải mã HTTPS, Proxyman cài đặt một chứng chỉ gốc cục bộ trong chuỗi khóa hệ thống macOS. Khi khởi chạy lần đầu, chương trình yêu cầu cài đặt và tin cậy chứng chỉ. Tất cả chứng chỉ cho các tên miền cụ thể được tạo ngay lập tức và ký bằng chứng chỉ gốc Proxyman. Đối với trình mô phỏng iOS, chứng chỉ được cài đặt tự động khi proxy khởi động.
// Ví dụ tập lệnh Proxyman để sửa đổi phản hồi
// Scripting: thay đổi trạng thái phản hồi thành 500 để kiểm tra lỗi
function onResponse(request, response) {
if (request.url.includes("/api/users")) {
response.statusCode = 500;
response.body = JSON.stringify({
error: "Internal Server Error",
code: "SERVER_TIMEOUT"
});
}
return response;
}
Proxyman cung cấp một bộ tính năng độc đáo giúp phân biệt nó với các công cụ proxy khác. Đặc biệt nhấn mạnh vào việc sửa đổi lưu lượng dựa trên tập lệnh và hiệu suất gốc.
Tính năng chính của Proxyman là hỗ trợ tập lệnh JavaScript để sửa đổi yêu cầu và phản hồi. Thay vì chỉnh sửa thủ công từng yêu cầu qua Breakpoints (như trong Charles), nhà phát triển có thể viết một tập lệnh tự động áp dụng cho các URL cụ thể. Các tập lệnh có toàn quyền truy cập vào tiêu đề, nội dung yêu cầu và phản hồi, mã trạng thái và siêu dữ liệu. Điều này cho phép tự động hóa các thao tác thường xuyên: thay thế token, sửa đổi tiêu đề, mô phỏng lỗi để kiểm tra.
Proxyman cung cấp một hệ thống lọc linh hoạt dựa trên quy tắc. Bạn có thể tạo hồ sơ tự động nhóm lưu lượng theo tên miền, loại nội dung hoặc mã trạng thái. Ví dụ: tất cả yêu cầu đến API của ứng dụng của bạn tự động vào một nhóm, trong khi tài nguyên tĩnh (CSS, JS, hình ảnh) vào nhóm khác. Điều này đặc biệt hữu ích khi gỡ lỗi và bạn cần tập trung chỉ vào các endpoint cụ thể.
| Tính năng | Proxyman | Charles Proxy | Ghi chú |
|---|---|---|---|
| Scripting | JavaScript | Không | Sửa đổi tự động không cần Breakpoints |
| Trình mô phỏng iOS | Tự động | Thiết lập thủ công | Proxyman phát hiện trình mô phỏng qua Xcode |
| Phiên bản miễn phí | Có | Dùng thử 30 ngày | Proxyman — không giới hạn thời gian |
| Nền tảng | macOS, iOS | Windows, macOS, Linux | Charles đa nền tảng, Proxyman — chỉ Apple |
| Xuất HAR | Có | Có | Cả hai đều hỗ trợ định dạng chuẩn |
Proxyman hiển thị dòng thời gian yêu cầu theo kiểu biểu đồ Gantt, trong đó mỗi yêu cầu được biểu diễn bằng một thanh màu cho biết thời lượng, trạng thái và kích thước. Dòng thời gian có tính tương tác: bạn có thể chọn một khoảng thời gian và chỉ xem các yêu cầu trong khoảng đó. Đối với mỗi yêu cầu, có sẵn phân tích theo giai đoạn: DNS, Connect, TLS Handshake, Request, Response.
Một khả năng độc đáo của Proxyman là một ứng dụng iOS riêng biệt có thể cài đặt trên iPhone hoặc iPad. Nó cho phép xem lưu lượng mạng trực tiếp trên thiết bị mà không cần kết nối với máy tính. Lưu lượng được hiển thị theo thời gian thực với khả năng lọc và tìm kiếm. Ứng dụng này đặc biệt hữu ích cho kiểm tra thực địa khi không có máy tính.
Proxyman cung cấp các phương pháp thiết lập khác nhau cho iOS và Android. Nhờ tích hợp gốc với Xcode, cấu hình cho trình mô phỏng iOS gần như tự động. Đối với thiết bị vật lý và Android, cần cấu hình thủ công.
Kịch bản đơn giản nhất: khởi chạy Proxyman, mở tab iOS Simulator và nhấp Start. Proxyman tự động phát hiện các trình mô phỏng đang chạy qua Xcode và cấu hình proxy. Chứng chỉ HTTPS cũng được cài đặt tự động. Không cần thao tác bổ sung — lưu lượng của trình mô phỏng xuất hiện ngay trong cửa sổ Proxyman. Đây là lợi thế đáng kể so với Charles, nơi thiết lập trình mô phỏng yêu cầu cấu hình proxy thủ công.
Đối với iPhone hoặc iPad: kết nối thiết bị với cùng mạng WiFi với máy tính. Trong cài đặt WiFi của thiết bị, chỉ định HTTP Proxy: địa chỉ IP của máy tính và cổng 9090 (cổng mặc định của Proxyman). Sau đó mở Safari và truy cập http://proxy.man/ssl để cài đặt chứng chỉ. Trên iOS 10.3+, hãy đảm bảo bật tin cậy chứng chỉ trong Settings → General → About → Certificate Trust Settings.
Các thiết bị Android được cấu hình tương tự như iOS: WiFi Proxy với địa chỉ IP của máy tính và cổng 9090. Đối với HTTPS, bạn cần cài đặt chứng chỉ qua trình duyệt tại http://proxy.man/ssl. Trên Android 7+ cho các bản dựng gỡ lỗi, bạn sẽ cần tệp network_security_config.xml tin cậy chứng chỉ người dùng. Đối với trình giả lập Android, sử dụng địa chỉ IP máy chủ (thường là 10.0.2.2) thay vì IP của máy tính.
<!-- network_security_config.xml cho Android với Proxyman -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
Sự lựa chọn giữa Proxyman và Charles Proxy phụ thuộc vào nhu cầu cụ thể của nhóm bạn và nền tảng phát triển. Hãy xem xét sự khác biệt chính để giúp các nhà phát triển đưa ra quyết định sáng suốt.
Proxyman được viết bằng Swift với AppKit, mang lại hiệu suất macOS gốc và tiêu thụ bộ nhớ tối thiểu. Charles được viết bằng Java (Eclipse RCP), cho phép tương thích đa nền tảng nhưng có thể dẫn đến tiêu thụ bộ nhớ cao hơn một chút và giao diện không gốc trên macOS. Đối với các nhà phát triển hệ sinh thái Apple, Proxyman thường cảm thấy phản hồi nhanh hơn.
Charles cung cấp một bộ công cụ trưởng thành và rộng hơn: Rewrite Rules với trình chỉnh sửa trực quan, Repeat để lặp lại yêu cầu, Map Local/Remote, Auto Save phiên. Proxyman đáp lại với các tính năng hiện đại hơn: JavaScript Scripting, cấu hình trình mô phỏng tự động và ứng dụng đồng hành iOS để xem lưu lượng trên thiết bị. Charles có lợi thế trong các kịch bản tự động hóa phức tạp (Rewrite, Repeat), trong khi Proxyman vượt trội trong việc sửa đổi nhanh chóng và linh hoạt thông qua tập lệnh.
Proxyman cung cấp một phiên bản miễn phí với chức năng cơ bản không giới hạn thời gian. Phiên bản Pro (đăng ký ~$12/năm hoặc mua một lần ~$59) mở khóa các tính năng nâng cao: scripting, bộ lọc, xuất. Charles có giá $50 mỗi giấy phép với bản dùng thử 30 ngày. Đối với nhà phát triển độc lập, Proxyman có giá cả phải chăng hơn; đối với môi trường doanh nghiệp, sự khác biệt là không đáng kể.
Các câu hỏi thường gặp
Proxyman có phiên bản miễn phí với chức năng chặn lưu lượng HTTP/HTTPS cơ bản không giới hạn thời gian. Các gói đăng ký trả phí (Pro và Team) thêm scripting, bộ lọc nâng cao, xuất HAR và hỗ trợ ưu tiên. Đối với hầu hết các tác vụ gỡ lỗi, phiên bản miễn phí là đủ.
Proxyman là một ứng dụng macOS gốc, nhưng nó có thể chặn lưu lượng từ thiết bị Android qua WiFi Proxy tương tự như Charles. Các thiết bị Android được cấu hình như proxy HTTP với địa chỉ IP của máy tính và cổng Proxyman. Đối với trình giả lập Android, sử dụng IP 10.0.2.2. Chứng chỉ HTTPS được cài đặt riêng.
Có hai phương pháp: Local Edit — nhấp đúp vào yêu cầu, chọn tab Response, chỉnh sửa thủ công, sau đó nhấp Execute để gửi phản hồi đã sửa đổi đến ứng dụng. Scripting — viết tập lệnh JavaScript tự động áp dụng các thay đổi cho các URL cụ thể trên mỗi yêu cầu.
Có, Proxyman hỗ trợ xuất sang các định dạng: HAR (HTTP Archive), Proxyman Session (.pxm), Curl Command (cho mỗi yêu cầu), Plain Text. Xuất có sẵn qua menu ngữ cảnh trên yêu cầu hoặc nhóm yêu cầu. Định dạng HAR tương thích với Charles Proxy, Chrome DevTools và trình xem trực tuyến.
Proxyman tự động phát hiện các Trình mô phỏng iOS đang chạy qua Xcode và chuyển hướng lưu lượng của chúng mà không cần cấu hình thủ công. Khi proxy khởi động, Proxyman chèn một proxy hệ thống qua Network Extension trên macOS, tự động áp dụng cho tất cả các trình mô phỏng. Chứng chỉ HTTPS cũng được cài đặt tự động.
Tóm tắt
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm