Proxyman یک کلینت پروکسی طبیعی برای macOS و iOS است که برای ضبط، مشاهده و تغییر ترافیک HTTP/HTTPS در طول توسعه برنامهها طراحی شده است. به گزارش سایت رسمی Proxyman (2025)، این ابزار در بیش از 10,000 شرکت مورد استفاده قرار میگیرد و از تمامی نسخههای مدرن iOS و macOS پشتیبانی میکند. کلینت پروکسی یک نسخه رایگان پایه ارائه میدهد و با رابط مدرنتر، پشتیبانی از اسکریپتهای JavaScript برای تغییر دادهها در حال انجام و سازگاری ساخته شده با شبیهساز iOS از Charles Proxy متمایز میشود.
نکات کلیدی
Proxyman یک کلینت پروکسی HTTP/HTTPS است که بهطور ویژه برای اکوسیستم Apple طراحی شده است. بر خلاف راهحلهای چندسیستمی، Proxyman از چارچوبهای طبیعی macOS (Swift، AppKit) استفاده میکند که عملکرد بالا و یکپارچگی بدون مشکل با مکانیسمهای پروکسی سیستم را فراهم میکند. این ابزار از macOS 11+ و iOS 14+ پشتیبانی میکند.
Proxyman به عنوان یک جایگزین مدرن برای Charles Proxy برای توسعهدهندگان اکوسیستم Apple معرفی میشود. مزایای اصلی: نسخه رایگان با کارکرد کامل پایه، رابط طبیعی مطابق با سیستم طراحی macOS، راهاندازی خودکار برای شبیهساز iOS بدون فعالیتهای اضافی. Proxyman از سال 2018 بهطور فعال در حال توسعه است و یک سیستم بازخورد باز با جامعه توسعهدهندگان دارد.
Proxyman بر روی macOS (برنامه طبیعی، نه Electron) کار میکند و یک برنامه کمکی برای iOS ارائه میدهد. دستگاههای فیزیکی (iPhone، iPad) مانند Charles از طریق WiFi Proxy راهاندازی میشوند. برنامه iOS (Proxyman iOS companion) به شما امکان میدهد ترافیک را مستقیماً روی دستگاه بدون کامپیوتر مشاهده کنید — این امکان برای Proxyman منحصر به فرد است.
Proxyman بر اساس اصل معیار MITM کار میکند: برنامه به عنوان یک پروکسی سیستم پیکربندی میشود که کلیه ترافیک HTTP/HTTPS از آن عبور میکند. این ابزار از مکانیسمهای طبیعی macOS Network Extension برای ضبط ترافیک بدون نیاز به راهاندازی دستی پروکسی برای شبیهساز iOS استفاده میکند.
در macOS، Proxyman از Apple Network Framework برای ضبط شفاف ترافیک استفاده میکند. پس از فعالسازی پروکسی، Proxyman یک رابط شبکه مجازی ایجاد میکند که ترافیک تمامی برنامهها از آن عبور میکند. برای شبیهساز iOS، پیکربندی به صورت خودکار در زمان راهاندازی انجام میشود — Proxyman شبیهسازهای در حال اجرا را از طریق Xcode تشخیص میدهد و ترافیک آنها را بدون تنظیم دستی پروکسی هدایت میکند.
برای رمزگشایی HTTPS، Proxyman یک گواهی ریشه محلی در زنجیره کلید macOS نصب میکند. در اولین بار اجرا، برنامه نصب گواهی و اعتماد به آن را پیشنهاد میدهد. کلیه گواهیها برای دامنههای مشخص در حال اجرا تولید و با گواهی ریشه Proxyman امضا میشوند. برای شبیهساز iOS، گواهی به صورت خودکار در زمان راهاندازی پروکسی نصب میشود.
// نمونه اسکریپت Proxyman برای تغییر پاسخ
// Scripting: وضعیت پاسخ را برای آزمایش خطاها به 500 تغییر میدهیم
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 یک مجموعه منحصربهفرد از قابلیتها را ارائه میدهد که آن را از سایر ابزارهای پروکسی متمایز میکند. تاکید ویژه بر تغییر ترافیک اسکریپتی و عملکرد طبیعی شده است.
ویژگی اصلی Proxyman — پشتیبانی از اسکریپتهای JavaScript برای تغییر درخواستها و پاسخها. به جای ویرایش دستی هر درخواست از طریق Breakpoints (مانند Charles)، توسعهدهنده میتواند یک اسکریپت بنویسد که به طور خودکار برای URLهای مشخص اعمال شود. اسکریپتها دسترسی کامل به سرتیترها، بدنه درخواست و پاسخ، کد وضعیت و ابعاد دارند. این امکان به شما اجازه میدهد عملیات روتین را خودکار کنید: جایگزینی توکن اجازه، تغییر سرتیترها، شبیهسازی خطا برای آزمایش.
Proxyman یک سیستم فیلتر انعطافپذیر مبنی بر قوانین ارائه میدهد. میتوانید پروفایلهایی ایجاد کنید که به طور خودکار ترافیک را بر اساس دامنهها، انواع محتوا یا کدهای وضعیت گروهبندی میکنند. به عنوان مثال، کلیه درخواستها به API برنامه شما به طور خودکار در یک گروه جداگانه قرار میگیرند و محتوای استاتیک (CSS، JS، تصاویر) در گروهی دیگر. این مورد بهویژه در دباگ که نیاز است فقط روی اندپوینتهای مشخص تمرکز کنید مفید است.
| امکان | Proxyman | Charles Proxy | یادداشت |
|---|---|---|---|
| Scripting | JavaScript | ندارد | تغییر خودکار بدون Breakpoints |
| iOS Simulator | خودکار | تنظیم دستی | Proxyman شبیهساز را از طریق Xcode تشخیص میدهد |
| نسخه رایگان | بله | 30 روز آزمایشی | Proxyman بدون محدودیت زمانی |
| پلتفرم | macOS، iOS | Windows، macOS، Linux | Charles چندسیستمی، Proxyman فقط Apple |
| HAR Export | بله | بله | هر دو از فرمت استاندارد پشتیبانی میکنند |
Proxyman زمانلینه درخواستها را به سبک نمودار زمانی نمایش میدهد، جایی که هر درخواست با یک نوار رنگی با اطلاعات مدت زمان، وضعیت و اندازه نمایش داده میشود. زمانلینه تعاملی است: میتوانید یک محدوده زمانی را انتخاب کرده و فقط درخواستهای آن دوره را مشاهده کنید. برای هر درخواست، تقسیمبندی فازی موجود است: DNS، Connect، TLS Handshake، Request، Response.
یک امکان منحصر به فرد Proxyman — یک برنامه جداگانه برای iOS که میتوان آن را روی iPhone یا iPad نصب کرد. این برنامه به شما امکان میدهد ترافیک شبکه را مستقیماً روی دستگاه بدون اتصال به کامپیوتر مشاهده کنید. ترافیک در زمان واقعی با قابلیت فیلتراسیون و جستجو نمایش داده میشود. این برنامه بهویژه در آزمایشهای میدانی که دسترسی به کامپیوتر وجود ندارد مفید است.
Proxyman روشهای مختلف راهاندازی برای iOS و Android ارائه میدهد. به دلیل یکپارچگی طبیعی با Xcode، راهاندازی برای شبیهساز iOS تقریباً خودکار انجام میشود. برای دستگاههای فیزیکی و Android پیکربندی دستی مورد نیاز است.
سناریو سادهترین: Proxyman را اجرا کنید، زبانه iOS Simulator را باز کنید و روی Start کلیک کنید. Proxyman به طور خودکار شبیهسازهای در حال اجرا را از طریق Xcode تشخیص میدهد و پروکسی را تنظیم میکند. گواهی HTTPS نیز به طور خودکار نصب میشود. هیچ فعالیت اضافی مورد نیاز نیست — ترافیک شبیهساز فوراً در پنجره Proxyman نمایش داده میشود. این یک مزیت قابل توجه نسبت به Charles است که راهاندازی شبیهساز نیازمند تنظیم دستی پروکسی است.
برای iPhone یا iPad: دستگاه را به همان شبکه WiFi کامپیوتر متصل کنید. در تنظیمات WiFi دستگاه، HTTP Proxy را مشخص کنید: IP کامپیوتر و پورت 9090 (پورت پیشفرض Proxyman). سپس Safari را باز کرده و برای نصب گواهی به http://proxy.man/ssl بروید. در iOS 10.3+، اعتماد به گواهی را در Settings → General → About → Certificate Trust Settings فعال کنید.
دستگاههای Android مانند iOS پیکربندی میشوند: WiFi Proxy با IP کامپیوتر و پورت 9090. برای HTTPS نصب گواهی از طریق مرورگر در http://proxy.man/ssl مورد نیاز است. در Android 7+، برای ساخت debug برنامه، فایل network_security_config.xml با اعتماد به گواهیهای کاربر مورد نیاز خواهد بود. برای شبیهساز Android، به جای IP کامپیوتر از IP میزبان (معمولاً 10.0.2.2) استفاده کنید.
<!-- network_security_config.xml برای Android با 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>
انتخاب بین Proxyman و Charles Proxy به نیازهای مشخص تیم و پلتفرم توسعه بستگی دارد. بیایید تفاوتهای کلیدی را بررسی کنیم تا به توسعهدهنده در گرفتن تصمیمی آگاهانه کمک کنیم.
Proxyman با Swift و AppKit نوشته شده است که عملکرد طبیعی macOS و مصرف حافظه حداقل را تامین میکند. Charles با Java (Eclipse RCP) نوشته شده است که چندسیستمی را فراهم میکند اما میتواند منجر به مصرف حافظه کمی بیشتر و رابط غیرطبیعی در macOS شود. برای توسعهدهندگان اکوسیستم Apple، Proxyman معمولاً کنشگراتر احساس میشود.
Charles یک مجموعه بالغتر و گستردهتر از ابزارها ارائه میدهد: Rewrite Rules با ویرایشگر دیداری، Repeat برای تکرار درخواستها، Map Local/Remote، Auto Save جلسات. Proxyman با امکانات مدرنتری پاسخ میدهد: Scripting در JavaScript، راهاندازی خودکار شبیهساز، iOS-companion برای مشاهده ترافیک روی دستگاه. Charles در سناریوهای پیچیده اتوماسیون (Rewrite، Repeat) مزیت دارد، در حالی که Proxyman در تغییر سریع و انعطافپذیر از طریق اسکریپتها برتر است.
Proxyman یک نسخه رایگان با کارکرد پایه بدون محدودیت زمانی ارائه میدهد. نسخه Pro (اشتراک ~$12/سال یا خرید یکباره ~$59) امکانات پیشرفته را باز میکند: scripting، فیلترها، خروجی. Charles — $50 برای مجوز با آزمایش 30 روزه. برای توسعهدهندگان مستقل، Proxyman مقرونتر است؛ برای محیطهای شرکتی، تفاوت ناچیز است.
سوالات متداول
Proxyman یک نسخه رایگان با کارکرد پایه برای ضبط ترافیک HTTP/HTTPS بدون محدودیت زمانی دارد. اشتراکهای پرداختی (Pro و Team) scripting، فیلترهای پیشرفته، خروجی به HAR و پشتیبانی اولویت را اضافه میکنند. برای اکثر وظایف دباگ، نسخه رایگان کافی است.
Proxyman — یک برنامه طبیعی macOS است، اما میتواند ترافیک از دستگاههای Android را از طریق WiFi Proxy مانند Charles ضبط کند. دستگاههای Android به عنوان HTTP-پروکسی با IP کامپیوتر و پورت Proxyman پیکربندی میشوند. برای شبیهساز Android، از IP 10.0.2.2 استفاده میشود. گواهی HTTPS به صورت جداگانه نصب میشود.
دو روش وجود دارد: Local Edit — کلیک دوبل روی درخواست، انتخاب زبانه Response، ویرایش دستی، سپس دکمه Execute برای ارسال پاسخ تغییریافته به برنامه. Scripting — نوشتن یک اسکریپت JavaScript که به طور خودکار تغییرات را به URLهای مشخص در هر درخواست اعمال میکند.
بله، Proxyman خروجی به فرمتهای زیر را پشتیبانی میکند: HAR (HTTP Archive)، Proxyman Session (.pxm)، Curl Command (برای هر درخواست)، Plain Text. خروجی از طریق منوی راستکلیک روی درخواست یا گروه درخواستها در دسترس است. فرمت HAR با Charles Proxy، Chrome DevTools و نمایشگرهای آنلاین سازگار است.
Proxyman شبیهسازهای iOS در حال اجرا را از طریق Xcode به طور خودکار تشخیص میدهد و ترافیک آنها را بدون تنظیم دستی هدایت میکند. در زمان راهاندازی پروکسی، Proxyman یک پروکسی سیستمی را از طریق Network Extension در macOS اعمال میکند که به طور خودکار برای همه شبیهسازها اعمال میشود. گواهی HTTPS نیز به طور خودکار نصب میشود.
نتیجهگیری
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید