תאריך הרענון: 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 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
רשימת העקיפה
אפשר להחריג שרתים ספציפיים מהפעלת ה-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]:443IP_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
ספירה
'ישיר'
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
ספירה
'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, השגיאה הייתה חמורה והעסקה ברשת בוטלה. אחרת, נעשה שימוש בחיבור ישיר.
-
-