SwitchyOmega 是一款 Chrome 扩展,用于简化和增强 Google Chrome 浏览器内的代理管理,让用户可以在多套代理配置之间快速切换,并为自动切换定义精细的规则。它提供了功能完备的界面来管理各类代理配置文件,包括 HTTP、HTTPS、SOCKS4/5 以及 PAC 脚本,相比 Chrome 自带的代理设置是一次明显升级。
SwitchyOmega 概述
SwitchyOmega 面向经常需要与多台代理服务器打交道的用户提供高级功能,弥补了标准浏览器和操作系统代理配置的不足。这类用户包括网络工程师、质量保障测试人员、调试地域受限内容的开发者以及安全从业者。该扩展与 Chrome 浏览器无缝集成,提供独立图标用于快速选择配置文件并进入完整设置。
核心功能
- 配置文件管理:创建、保存多套彼此独立的代理配置,并在它们之间切换。
- Auto Switch 模式:定义规则,根据 URL 模式、域名或 IP 地址自动选择特定的代理配置文件。
- 绕过列表(Bypass List):指定应绕过任何生效代理、直接连接的 URL 或域名。
- PAC 脚本支持:使用代理自动配置(PAC)脚本实现动态代理选择逻辑。
- 导入/导出:在不同的 Chrome 安装之间或与团队成员共享配置。
安装
SwitchyOmega 可从 Chrome 应用商店获取。
1. 打开 Chrome 应用商店。
2. 搜索 "SwitchyOmega"。
3. 选择官方扩展并点击"添加至 Chrome"。
4. 确认安装提示。
安装完成后,SwitchyOmega 图标会出现在 Chrome 工具栏中。
配置与使用
创建新的代理配置文件
添加新的代理配置:
1. 点击 Chrome 工具栏中的 SwitchyOmega 图标,选择 "Options"。
2. 在左侧边栏点击 "+ New Profile"。
3. 为配置文件起一个描述性的名称(例如 "Development Proxy"、"SOCKS5 VPN")。
4. 选择配置文件类型:
* Proxy Profile:用于直接配置代理服务器。
* Switch Profile:用于定义自动切换规则(后文详述)。
* PAC Profile:用于使用 PAC 脚本。
5. 点击 "Create"。
配置 Proxy Profile
对于 "Proxy Profile":
1. 在左侧边栏选择刚创建的配置文件。
2. 在 "Proxy Servers" 中填写代理类型和详细信息:
* 协议:HTTP、HTTPS、SOCKS4、SOCKS5。
* 服务器:代理服务器的 IP 地址或主机名。
* 端口:代理服务器的端口号。
3. 如果需要认证,请勾选 "Bypass authentication for local addresses"(如适用),或在浏览器弹出提示时输入凭据。
4. 点击 "Apply changes" 保存。
示例:HTTP 代理
Protocol: HTTP
Server: 192.0.2.10
Port: 8080
示例:SOCKS5 代理
Protocol: SOCKS5
Server: proxy.example.com
Port: 1080
配置 PAC Profile
对于 "PAC Profile":
1. 选择该 PAC 配置文件。
2. 在 "PAC Script" 和 "PAC URL" 之间选择。
* PAC Script:把 PAC 脚本内容直接粘贴到提供的编辑器中。
* PAC URL:填写托管 PAC 脚本的 URL(例如 http://proxy.example.com/proxy.pac)。
3. 点击 "Apply changes"。
PAC 脚本片段示例:
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.internal.com:8080";
}
if (isPlainHostName(host) ||
dnsDomainIs(host, ".local")) {
return "DIRECT";
}
return "PROXY proxy.external.com:8080";
}
配置 Auto Switch 规则
"Auto Switch" 配置文件是动态代理管理的核心:
1. 在左侧边栏选择 "Auto Switch" 配置文件。
2. 在 "Rule List" 中定义流量的路由方式。规则自上而下依次匹配。
3. 点击 "+ Add condition" 创建新规则。
4. 为每条规则指定:
* 条件类型:
* URL Pattern:使用通配符或正则表达式匹配特定 URL。
* Domain:匹配某个域名。
* IP Address:匹配某个 IP 地址或地址段。
* 条件:要匹配的模式或取值。
* 配置文件:条件命中时使用的代理配置文件,或选择 "Direct" 以绕过所有代理。
规则配置示例:
| 条件类型 | 条件 | 配置文件 | 说明 |
|---|---|---|---|
| URL Pattern | *://*.dev.example.com/* |
Development Proxy | 将 dev.example.com 的全部流量经 "Development Proxy" 转发。 |
| Domain | securebank.com |
Direct | 对 securebank.com 绕过代理。 |
| IP Address | 10.0.0.0/8 |
Internal VPN SOCKS5 | 内网流量经由 SOCKS5 VPN 转发。 |
| Default | (无条件) | External Proxy | 其余全部流量走 "External Proxy"。 |
"Default" 规则在没有其他规则命中时作为兜底。可拖放规则调整顺序,因为第一条命中的规则决定代理行为。
绕过列表
任何代理配置文件中的 "Bypass List" 都可用于指定始终绕过该配置文件所设代理的域名或 IP 地址。这与全局作用于 "Auto Switch" 配置文件的 Auto Switch 规则不同。
- 选择某个具体的代理配置文件(例如 "Development Proxy")。
- 在 "Bypass List" 中输入需要绕过的域名或 IP 地址模式。
*.local:绕过所有本地主机名。<local>:预定义关键字,用于绕过本地地址(例如localhost、127.0.0.1)。192.168.1.0/24:绕过整个 IP 子网。example.com:绕过特定域名。
- 点击 "Apply changes"。
切换配置文件
切换当前生效的代理配置文件:
1. 点击 Chrome 工具栏中的 SwitchyOmega 图标。
2. 下拉菜单会列出所有已配置的配置文件。
3. 选择所需的配置文件。所选配置文件的名称会显示在图标旁边。
进阶使用场景
开发测试
开发者经常需要在不同代理环境之间切换以进行测试:
* 本地开发:直连或使用特定的本地代理。
* 预发布环境:配置代理以访问内部预发布服务器或 VPN。
* 生产环境:直连,或使用特定地区的代理来测试区域内容。
SwitchyOmega 的配置文件让你无需手动修改浏览器设置即可快速切换。Auto Switch 规则可在访问特定开发或预发布域名时自动套用正确的代理。
地域内容测试
对于根据用户位置分发内容的应用:
* 为不同地区创建独立的代理配置文件(例如 "US Proxy"、"EU Proxy"、"APAC Proxy")。
* 在这些配置文件之间切换,模拟来自不同地理位置的访问,验证内容分发、本地化和性能。
安全分析
安全从业者可以把特定流量导向分析工具:
* 配置一个代理配置文件,指向 Burp Suite 或 OWASP ZAP 等本地代理,以拦截和分析 HTTP/S 流量。
* 使用 Auto Switch 规则,仅把相关应用流量导向分析代理,其余浏览器流量保持直连或使用其他代理。
与原生代理设置的对比
| 特性 | Chrome 原生代理设置 | SwitchyOmega |
|---|---|---|
| 多配置文件 | 不直接支持;需手动修改。 | 完整支持创建和管理不限数量的配置文件。 |
| 快速切换 | 需在浏览器设置中层层点击。 | 通过工具栏图标一键切换。 |
| 自动切换 | 无内置功能。 | 完善的基于规则的自动切换。 |
| 绕过列表 | 仅有基础的系统级绕过。 | 精细的、按配置文件独立的绕过列表。 |
| PAC 脚本 | 支持系统级 PAC 或指定 URL。 | 每个配置文件均支持直接编辑 PAC 脚本和填写 URL。 |
| 用户界面 | 集成在浏览器设置中,管理代理时不够直观。 | 专门且条理清晰的代理配置界面。 |
| 作用范围 | 作用于整个浏览器,通常与系统设置绑定。 | 仅作用于浏览器,除非设为使用系统代理,否则独立于系统设置。 |
相比只依赖 Chrome 原生代理设置或系统级代理配置,SwitchyOmega 在管理代理配置方面要灵活、高效得多,在需要频繁且复杂地更换代理的场景中尤其明显。
常见问题排查
代理不生效
- 确认所选配置文件:检查 SwitchyOmega 工具栏菜单中生效的是否为正确的配置文件。
- 核对代理服务器信息:再次检查配置文件设置中的 IP 地址/主机名和端口号。
- 认证:如果代理需要认证,请确认凭据正确。Chrome 会弹出提示要求输入。
- 防火墙/网络问题:确认从你的网络可以访问该代理服务器,且未被本地防火墙拦截。
- 代理服务器状态:确认代理服务器本身运行正常。
Auto Switch 规则不生效
- 规则顺序:规则自上而下匹配。请把更具体的规则放在更宽泛的规则之前。
- 条件准确性:确认 URL 模式、域名或 IP 地址填写无误。新版本若提供 "Test Rule" 功能可以使用,或直接访问目标 URL 进行验证。
- Default 规则:确认默认规则(若存在)没有意外覆盖某条具体规则。
- 配置文件关联:确认 "Auto Switch" 配置文件中的规则指向了正确的代理配置文件。
PAC 脚本错误
- 语法检查:检查 PAC 脚本是否存在 JavaScript 语法错误。可借助在线 PAC 脚本校验工具。
- URL/内容正确性:若使用 PAC URL,确认它可访问且返回正确的脚本;若直接粘贴脚本,请核对粘贴的内容。
- 返回值:确认
FindProxyForURL函数返回合法的代理字符串(例如"PROXY host:port"、"SOCKS host:port"、"DIRECT")。
