chrome.proxy

תאריך הרענון: 2026-09-25 robots: noindex

תיאור

אפשר להשתמש ב-chrome.proxy API כדי לנהל את הגדרות לשרת proxy של Chrome. ממשק ה-API הזה מסתמך על אב הטיפוס ChromeSetting של סוג ה-API כדי לקבל ולהגדיר את הגדרות ה-proxy.

הרשאות

proxy

מניפסט

כדי להשתמש ב-API של הגדרות לשרת proxy, צריך להצהיר על ההרשאה proxy במניפסט התוסף. לדוגמה:

{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}

אובייקטים ומאפיינים

הגדרות לשרת proxy מוגדרות באובייקט proxy.ProxyConfig. בהתאם להגדרות לשרת proxy של Chrome, יכול להיות שההגדרות יכללו proxy.ProxyRules או proxy.PacScript.

מצבי שרת proxy

המאפיין mode של אובייקט ProxyConfig קובע את ההתנהגות הכוללת של Chrome בנוגע לשימוש ב-proxy. הערכים האפשריים:

direct
במצב direct, כל החיבורים נוצרים ישירות, בלי שום שרת proxy. במצב הזה אי אפשר להוסיף פרמטרים לאובייקט ProxyConfig.
auto_detect
במצב auto_detect הגדרת ה-proxy נקבעת על ידי סקריפט PAC שאפשר להוריד בכתובת http://wpad/wpad.dat. במצב הזה אי אפשר להוסיף עוד פרמטרים לאובייקט ProxyConfig.
pac_script
במצב
pac_script, הגדרת ה-proxy נקבעת על ידי סקריפט PAC שאוחזר מכתובת ה-URL שצוינה באובייקט proxy.PacScript או נלקח באופן מילולי מהרכיב data שצוין באובייקט proxy.PacScript. בנוסף, במצב הזה אי אפשר להוסיף פרמטרים נוספים לאובייקט ProxyConfig.
fixed_servers
במצב
fixed_servers, הגדרת ה-proxy מקודדת באובייקט proxy.ProxyRules. התיאור של המבנה שלו מופיע במאמר בנושא כללי פרוקסי. בנוסף, fixed_serversהאובייקט ProxyConfig לא יכול להכיל פרמטרים נוספים במצב הזה.
system
במצב system, הגדרת ה-proxy נלקחת ממערכת ההפעלה. במצב הזה אי אפשר להוסיף פרמטרים לאובייקט ProxyConfig. שימו לב שהמצב system שונה מהגדרת מצב ללא שרת proxy. במקרה האחרון, Chrome חוזר להגדרות המערכת רק אם אף אפשרות של שורת פקודה לא משפיעה על הגדרת ה-proxy.

כללי proxy

האובייקט proxy.ProxyRules יכול להכיל מאפיין singleProxy או קבוצת משנה של proxyForHttp, proxyForHttps, proxyForFtp ו-fallbackProxy.

במקרה הראשון, התנועה בפרוטוקולים HTTP, ‏ HTTPS ו-FTP מועברת דרך שרת ה-Proxy שצוין. תנועה אחרת נשלחת ישירות. במקרה האחרון, ההתנהגות קצת יותר מורכבת: אם מוגדר שרת proxy לפרוטוקול HTTP,‏ HTTPS או FTP, התנועה הרלוונטית עוברת דרך השרת שצוין. אם לא מציינים שרת proxy כזה או אם התנועה משתמשת בפרוטוקול שונה מ-HTTP, ‏ HTTPS או FTP, נעשה שימוש ב-fallbackProxy. אם לא מציינים fallbackProxy, התעבורה נשלחת ישירות ללא שרת proxy.

אובייקטים של שרתי Proxy

שרת proxy מוגדר באובייקט proxy.ProxyServer. החיבור לשרת ה-proxy (שמוגדר במאפיין host) משתמש בפרוטוקול שמוגדר במאפיין scheme. אם לא מציינים את scheme, חיבור ה-proxy יהיה http כברירת מחדל.

אם לא מוגדר port באובייקט proxy.ProxyServer, היציאה נגזרת מהסכימה. יציאות ברירת המחדל הן:

Schemeיציאה
http‏80
https443
socks41080
socks51080

רשימת העקיפה

אפשר להחריג שרתים ספציפיים מהפעלת ה-proxy באמצעות 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]

התאמה של כתובות URL שהן כתובות IP מילוליות. מבחינה רעיונית, זה דומה למקרה הראשון, אבל עם מקרים מיוחדים לטיפול בקנוניזציה של כתובות IP. לדוגמה, התאמה ל-'[0:0:0::1]' זהה להתאמה ל-'[::1]' כי הקנוניזציה של IPv6 מתבצעת באופן פנימי.

דוגמאות: 127.0.1, [0:0::1], [::1]:80, https://[::1]:443

IP_LITERAL/PREFIX_LENGTH_IN_BITS

התאמה לכל כתובת URL שמכילה כתובת IP מילולית (IP_LITERAL) בטווח הנתון. טווח כתובות ה-IP‏ (PREFIX_LENGTH_IN_BITS) מצוין באמצעות סימון CIDR.

התאמה לכל כתובת URL שמכילה כתובת IP מילולית בטווח הנתון. טווח כתובות ה-IP מצוין באמצעות סימון CIDR. דוגמאות: "192.168.1.1/16", "fefe:13::abc/33"

<local>

המחרוזת המילולית <local> תואמת לשמות מארחים פשוטים. שם מארח פשוט הוא שם שלא מכיל נקודות ולא כתובת IP מילולית. לדוגמה, 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"]
  }
};
chrome.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" +
          "}"
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);

בקטע הקוד הבא מוצגת שאילתה לגבי הגדרות לשרת proxy שבתוקף כרגע. הגדרות לשרת proxy שבתוקף יכולות להיקבע על ידי תוסף אחר או על ידי מדיניות. פרטים נוספים זמינים במאמרי העזרה של Types API.

chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);

שימו לב שהאובייקט value שמועבר אל set() לא זהה לאובייקט value שמועבר אל פונקציית הקריאה החוזרת של get(). האחרון יכיל רכיב rules.proxyForHttp.port.

סוגים

Mode

‫Chrome 54 ואילך

ספירה

'ישיר'

‫auto_detect

‫"pac_script"

‫"fixed_servers"

‫'system'

PacScript

אובייקט שמכיל מידע על הגדרה אוטומטית של פרוקסי. אחד מהשדות האלה צריך להיות לא ריק.

מאפיינים

  • נתונים

    מחרוזת אופציונלי

    סקריפט PAC.

  • חובה

    ‫boolean אופציונלי

    אם הערך הוא True, סקריפט PAC לא תקין ימנע את החזרה של מחסנית הרשת לחיבורים ישירים. ברירת המחדל היא false.

  • url

    מחרוזת אופציונלי

    כתובת ה-URL של קובץ ה-PAC שבו רוצים להשתמש.

ProxyConfig

אובייקט שמכיל הגדרה מלאה של שרת Proxy.

מאפיינים

  • מצב

    ‫'direct' = אף פעם לא להשתמש בשרת proxy ‫'auto_detect' = זיהוי אוטומטי של הגדרות שרת proxy ‫'pac_script' = שימוש בסקריפט PAC שצוין ‫'fixed_servers' = ציון שרתי proxy באופן ידני ‫'system' = שימוש בהגדרות המערכת לשרת proxy

  • pacScript

    ‫PacScript אופציונלי

    סקריפט ההגדרה האוטומטית של שרת proxy (PAC) להגדרה הזו. משתמשים באפשרות הזו במצב 'pac_script'.

  • כללים

    ‫ProxyRules אופציונלי

    כללי ה-proxy שמתארים את ההגדרה הזו. משתמשים בזה במצב fixed_servers.

ProxyRules

אובייקט שמכיל את קבוצת כללי ה-proxy לכל הפרוטוקולים. אפשר להשתמש ב-'singleProxy' או בחלק מהערכים 'proxyForHttp',‏ 'proxyForHttps',‏ 'proxyForFtp' ו-'fallbackProxy'.

מאפיינים

  • bypassList

    string[] אופציונלי

    רשימת השרתים שאליהם מתחברים בלי שרת proxy.

  • fallbackProxy

    ‫ProxyServer אופציונלי

    שרת ה-proxy שישמש לכל השאר או אם לא צוין אף אחד מהשרתים הספציפיים proxyFor... ‎.

  • proxyForFtp

    ‫ProxyServer אופציונלי

    שרת ה-Proxy שישמש לבקשות FTP.

  • proxyForHttp

    ‫ProxyServer אופציונלי

    שרת ה-Proxy שישמש לבקשות HTTP.

  • proxyForHttps

    ‫ProxyServer אופציונלי

    שרת ה-proxy שישמש לבקשות HTTPS.

  • singleProxy

    ‫ProxyServer אופציונלי

    שרת ה-proxy שישמש לכל הבקשות לכתובות URL (כלומר http,‏ https ו-ftp).

ProxyServer

אובייקט שמכיל את המפרט של שרת proxy יחיד.

מאפיינים

  • מארח

    מחרוזת

    שם המארח או כתובת ה-IP של שרת ה-Proxy. שמות המארחים חייבים להיות ב-ASCII (בפורמט Punycode). עדיין אין תמיכה ב-IDNA.

  • ניוד

    מספר אופציונלי

    היציאה של שרת ה-proxy. ברירת המחדל היא יציאה שתלויה בסכימה.

  • סכמה

    סכימה אופציונלי

    הסכימה (הפרוטוקול) של שרת ה-proxy עצמו. ברירת המחדל היא 'http'.

Scheme

‫Chrome 54 ואילך

ספירה

'http'

‫"https"

‫quic

‫'socks4'

‫socks5

מאפיינים

settings

ההגדרות לשרת proxy שבהן יש להשתמש. הערך של ההגדרה הזו הוא אובייקט ProxyConfig.

אירועים

onProxyError

chrome.proxy.onProxyError.addListener(
  callback: function,
)

התראות על שגיאות בשרת ה-proxy.

פרמטרים

  • callback

    פונקציה

    הפרמטר callback נראה כך:

    (details: object) => void

    • פרטים

      אובייקט

      • פרטים

        מחרוזת

        פרטים נוספים על השגיאה, כמו שגיאת זמן ריצה של JavaScript.

      • error

        מחרוזת

        תיאור השגיאה.

      • fatal

        בוליאני

        אם הערך הוא true, השגיאה הייתה חמורה והעסקה ברשת בוטלה. אחרת, נעשה שימוש בחיבור ישיר.