شرح
از chrome.proxy API برای مدیریت تنظیمات پراکسی Chrome استفاده کنید. این API برای دریافت و تنظیم پیکربندی پراکسی به نمونه اولیه ChromeSetting از نوع API متکی است.
اجازهها
proxyبرای استفاده از API تنظیمات پراکسی، باید اجازه «پراکسی» را در مانیفست افزونه تعریف کنید. برای مثال:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
مفاهیم و استفاده
تنظیمات پراکسی در شیء proxy.ProxyConfig تعریف شده است. بسته به تنظیمات پراکسی Chrome،
تنظیمات ممکن است حاوی proxy.ProxyRules یا proxy.PacScript باشد.
حالتهای پراکسی
مشخصه mode شیء ProxyConfig رفتار کلی Chrome را درخصوص استفاده از پراکسی تعیین میکند. میتواند مقادیر زیر را داشته باشد:
direct- در حالت
direct، همه اتصالها مستقیماً و بدون دخالت هیچ پراکسیای ایجاد میشوند. این حالت اجازه نمیدهد پارامترهای بیشتری در شیءProxyConfigوجود داشته باشد. auto_detect- در حالت
auto_detect، پیکربندی پراکسی توسط دستورگان PAC تعیین میشود که میتواند در http://wpad/wpad.dat بارگیری شود. این حالت اجازه نمیدهد پارامترهای بیشتری در شیءProxyConfigاضافه شود. pac_script- در حالت
pac_script، پیکربندی پراکسی با دستورگان PAC تعیین میشود که یا از نشانی وب مشخصشده در شیءproxy.PacScriptبازیابی میشود یا بهصورت تحتاللفظی از عنصرdataمشخصشده در شیءproxy.PacScriptگرفته میشود. علاوهبراین، این حالت اجازه نمیدهد پارامترهای بیشتری در شیءProxyConfigاضافه شود. fixed_servers- در حالت
fixed_servers، پیکربندی پراکسی در شیءproxy.ProxyRulesکدبندی میشود. ساختار آن در قوانین پراکسی توضیح داده شده است. علاوهبراین، حالتfixed_serversاجازه نمیدهد پارامترهای بیشتری در شیءProxyConfigوجود داشته باشد. system- در حالت
system، پیکربندی پراکسی از سیستمعامل گرفته میشود. این حالت اجازه نمیدهد پارامترهای بیشتری در شیءProxyConfigوجود داشته باشد. توجه داشته باشید که حالتsystemبا تنظیم پیکربندی بدون پراکسی متفاوت است. در حالت دوم، Chrome فقط درصورتی به تنظیمات سیستم برمیگردد که هیچ گزینه خط فرمانی بر پیکربندی پراکسی تأثیر نگذارد.
قوانین پراکسی
شیء proxy.ProxyRules میتواند حاوی مشخصه singleProxy یا زیرمجموعهای از
proxyForHttp، proxyForHttps، proxyForFtp، و fallbackProxy باشد.
در حالت اول، ترافیک HTTP، HTTPS، و FTP ازطریق سرور پراکسی مشخصشده پراکسی میشود. ترافیک
دیگر مستقیماً ارسال میشود. در حالت دوم، رفتار کمی ظریفتر است: اگر سرور پراکسی برای پروتکل HTTP، HTTPS، یا FTP پیکربندی شده باشد، ترافیک مربوطه ازطریق سرور مشخصشده پراکسی میشود. اگر چنین سرور پراکسیای مشخص نشده باشد یا ترافیک از پروتکل دیگری بهجز
HTTP، HTTPS، یا FTP استفاده کند، از fallbackProxy استفاده میشود. اگر fallbackProxy مشخص نشده باشد، ترافیک بدون پراکسی سرور بهطور مستقیم ارسال میشود.
اشیاء سرور پراکسی
سرور پروکسی در شیء proxy.ProxyServer پیکربندی شده است. اتصال به سرور پراکسی
(تعریفشده توسط مشخصه host) از پروتکل تعریفشده در مشخصه scheme استفاده میکند. اگر
scheme مشخص نشده باشد، اتصال پراکسی بهطور پیشفرض روی http تنظیم میشود.
اگر هیچ port در شیء proxy.ProxyServer تعریف نشده باشد، درگاه از طرح مشتق میشود.
درگاههای پیشفرض عبارتاند از:
| طرح | درگاه |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
فهرست فرعی
سرورهای تکی ممکن است با bypassList از استفاده از پراکسی مستثنا شوند. این فهرست ممکن است شامل
ورودیهای زیر باشد:
[SCHEME://]HOST_PATTERN[:PORT]همه نامهای میزبانی را که با الگوی
HOST_PATTERNمطابقت دارند مطابقت دهید. "."پیشرو بهعنوان"*."تفسیر میشود.مثالها:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".الگو موارد منطبق نامنطبق ".foobar.com""www.foobar.com""foobar.com""*.foobar.com""www.foobar.com""foobar.com""foobar.com""foobar.com""www.foobar.com""*foobar.com""foobar.com"،"www.foobar.com"،"foofoobar.com"[SCHEME://]IP_LITERAL[:PORT]با نشانیهای وبی که نشانی IP حرفی هستند مطابقت دارد. ازنظر مفهومی این مورد مشابه مورد اول است، اما با موارد خاص برای مدیریت استانداردسازی نشانیهای وب IP. برای مثال، مطابقت با «[0:0:0::1]» با مطابقت با «[::1]» یکسان است زیرا استانداردسازی IPv6 بهصورت داخلی انجام میشود.
مثالها:
127.0.1،[0:0::1]،[::1]:80،https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSبا هر نشانی وبی که حاوی نشانی IP تحتاللفظی (
IP_LITERAL) در محدوده دادهشده باشد مطابقت دارد. محدوده IP (PREFIX_LENGTH_IN_BITS) بااستفاده از نشانهگذاری CIDR مشخص شده است.با هر نشانی وبی که حاوی نشانی IP تحتاللفظی در محدوده دادهشده باشد مطابقت دارد. محدوده IP بااستفاده از نماد CIDR مشخص میشود. مثالها:
"192.168.1.1/16", "fefe:13::abc/33"<local>رشته تحتاللفظی
<local>با نامهای میزبان ساده مطابقت دارد. نام میزبان ساده نامی است که نقطه ندارد و یک IP literal نیست. برای نمونه،exampleوlocalhostنامهای میزبان ساده هستند، درحالیکهexample.com،example.، و[::1]نامهای میزبان ساده نیستند.مثال:
"<local>"
مثالها
کد زیر پراکسی SOCKS 5 را برای اتصالات HTTP به همه سرورها بهجز foobar.com تنظیم میکند و برای همه پروتکلهای دیگر از اتصالات مستقیم استفاده میکند. این تنظیمات برای پنجرههای عادی و ناشناس اعمال میشود، زیرا پنجرههای ناشناس تنظیمات را از پنجرههای عادی بهارث میبرند. همچنین Types API مستندات را ببینید.
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "socks5",
host: "1.2.3.4"
},
bypassList: ["foobar.com"]
}
};
browser.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
کد زیر یک دستورگان PAC سفارشی تنظیم میکند.
var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n" +
" if (host == 'foobar.com')\n" +
" return 'PROXY blackhole:80';\n" +
" return 'DIRECT';\n" +
"}"
}
};
browser.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
تکهکد بعدی تنظیمات پراکسی مؤثر کنونی را پُرسمان میکند. تنظیمات پراکسی مؤثر را میتوان با افزونهای دیگر یا با خطمشی تعیین کرد. برای جزئیات بیشتر، به مستندات Types API مراجعه کنید.
browser.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
توجه داشته باشید که شیء value که به set() ارسال شده است با شیء value که به
تابع برگشتی get() ارسال شده است یکسان نیست. مورد دوم حاوی عنصر rules.proxyForHttp.port خواهد بود.
انواع
Mode
شمارشی
«مستقیم»
«auto_detect»
«pac_script»
«fixed_servers»
«سیستم»
PacScript
شیئی که اطلاعات پیکربندی خودکار پراکسی را دربرمیگیرد. دقیقاً یکی از فیلدها نباید خالی باشد.
مشخصات
-
داده
رشته اختیاری
دستورگان PAC.
-
اجباری
مقدار منطقی اختیاری
اگر درست باشد، یک دستورگان PAC نامعتبر مانع از بازگشت پشته شبکه به اتصالات مستقیم میشود. بهطور پیشفرض روی نادرست تنظیم میشود.
-
نشانی وب
رشته اختیاری
نشانی وب فایل PAC که باید استفاده شود.
ProxyConfig
شیئی که پیکربندی کامل پراکسی را دربرمیگیرد.
مشخصات
-
حالت حملونقل
«مستقیم» = هرگز از پروکسی استفاده نکنید «تشخیص خودکار» = تنظیمات پروکسی بهطور خودکار تشخیص داده شود «نوشتار PAC» = از نوشتار PAC مشخصشده استفاده شود «کارسازهای ثابت» = کارسازهای پروکسی بهصورت دستی مشخص شود «سیستم» = از تنظیمات پروکسی سیستم استفاده شود
-
pacScript
PacScript اختیاری
دستورگان پیکربندی خودکار پراکسی (PAC) برای این پیکربندی. از این برای حالت «pac_script» استفاده کنید.
-
قوانین
ProxyRules اختیاری
قوانین پراکسی که این پیکربندی را توصیف میکند. از این برای حالت «fixed_servers» استفاده کنید.
ProxyRules
شیئی که مجموعه قوانین پراکسی را برای همه پروتکلها دربرمیگیرد. از «singleProxy» یا (زیرمجموعهای از) «proxyForHttp»، «proxyForHttps»، «proxyForFtp»، و «fallbackProxy» استفاده کنید.
مشخصات
-
bypassList
رشته[] اختیاری
فهرست سرورهایی که بدون سرور پراکسی به آنها متصل میشود.
-
fallbackProxy
ProxyServer اختیاری
سرور پراکسی که برای همه موارد دیگر یا درصورتیکه هریک از پراکسیهای خاص برای... مشخص نشده باشد استفاده میشود.
-
proxyForFtp
ProxyServer اختیاری
کارساز پراکسی که برای درخواستهای FTP استفاده میشود.
-
proxyForHttp
ProxyServer اختیاری
سرور پراکسی که برای درخواستهای HTTP استفاده میشود.
-
proxyForHttps
ProxyServer اختیاری
سرور پراکسی که برای درخواستهای HTTPS استفاده میشود.
-
singleProxy
ProxyServer اختیاری
کارساز پراکسی که برای همه درخواستهای مربوط به هر نشانی وب (یعنی http، https، و ftp) استفاده میشود.
ProxyServer
شیئی که مشخصات یک سرور پراکسی را دربرمیگیرد.
مشخصات
-
میزبان
رشته
نام میزبان یا نشانی IP سرور پراکسی. نامهای میزبان باید در قالب ASCII (در قالب Punycode) باشند. IDNA هنوز پشتیبانی نمیشود.
-
درگاه
عدد اختیاری
درگاه سرور پراکسی. به درگاهی که به طرح بستگی دارد پیشفرض میشود.
-
طرح
طرح اختیاری
طرح (پروتکل) خود سرور پراکسی. پیشفرض روی «http» تنظیم میشود.
Scheme
شمارشی
«http»
"https"
«quic»
"socks4"
"socks5"
مشخصات
settings
تنظیمات پراکسی که باید استفاده شود. مقدار این تنظیم شیء ProxyConfig است.
رویدادها
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
اعلانهای مربوط به خطاهای پراکسی را ارسال میکند.
پارامترها
-
بازخوانی
تابع
پارامتر
callbackبهصورت زیر است:(details: object) => void
-
جزئیات
شیء
-
جزئیات
رشته
جزئیات اضافی درباره خطا، مثل خطای زمان اجرای جاوا اسکریپت.
-
خطا
رشته
شرح خطا.
-
مهلک
بولی
اگر درست باشد، خطا مهلک بوده است و تراکنش شبکه لغو شده است. درغیراینصورت، از اتصال مستقیم استفاده میشود.
-
-