ProxyAssistant - 强大的浏览器代理管理扩展
ProxyAssistant 是一款功能强大的浏览器代理管理扩展,支持 Chrome、Firefox、Edge 等多款浏览器,支持多场景管理,帮助用户轻松配置和切换网络代理。作为一款开源的浏览器扩展,ProxyAssistant 凭借其丰富的功能特性、优秀的用户体验和完善的多语言支持,已成为众多用户管理网络代理的首选工具。
一、项目概述
1.1、项目简介
ProxyAssistant 诞生于对高效代理管理工具的需求。作为一款现代化的浏览器扩展,它采用了最新的 Manifest V3 规范,充分利用了现代浏览器提供的各种 API,为用户提供了一个界面美观、功能完善、操作便捷的代理管理解决方案。项目采用原生 JavaScript 和 jQuery 开发,是一款成熟稳定的代理管理工具。
该扩展的核心设计理念是”简单易用,功能强大”。无论是需要频繁切换不同代理服务器的用户,还是需要为不同网站配置不同代理规则的高级用户,ProxyAssistant 都能满足其需求。同时,项目完全开源,采用 MIT 许可证,任何人都可以自由使用、修改和分发。
项目地址:https://github.com/bugwz/ProxyAssistant

1.2、技术栈与架构
在架构设计上,项目采用了清晰的模块化结构。worker.js 负责代理配置管理和 PAC 脚本生成,popup.js 处理弹窗界面交互,main.js 负责设置页面的完整功能,i18n.js 提供多语言支持。这种分层架构使得代码易于维护和扩展,也便于贡献者理解和参与开发。
ProxyAssistant 在技术选型上始终坚持简洁高效的原则。项目使用以下核心技术构建:
| 技术组件 | 用途说明 |
|---|---|
| 原生 JavaScript | 核心业务逻辑开发,确保最佳性能 |
| jQuery | DOM 操作和事件处理,简化跨浏览器兼容 |
| Jest | 单元测试、集成测试和端到端测试框架 |
| Manifest V3 | Chrome 扩展规范,Service Worker 替代后台页面 |
| Chrome Storage API | 本地和云端数据存储 |
| i18n | 完整的国际化支持 |
1.3、浏览器兼容性
ProxyAssistant 对主流浏览器提供了良好的支持:
| 浏览器 | 支持情况 | 技术方案 |
|---|---|---|
| Chrome | ✅ 完全支持 | Manifest V3 + Service Worker |
| Firefox | ✅ 完全支持 | Manifest V3 + proxy.onRequest API |
| Edge | ✅ 兼容支持 | 基于 Chromium,可安装 Chrome 扩展 |
值得注意的是,Firefox 版本要求最低版本为 142.0,这是为了确保能够完整支持所需的扩展 API。对于需要跨浏览器使用的用户,ProxyAssistant 提供了统一的配置同步功能,可以在不同浏览器间无缝迁移代理配置。
二、核心功能特性
2.1、多协议代理支持
ProxyAssistant 支持市场上主流的代理协议,满足不同场景的需求:
| 协议类型 | 支持情况 | 应用场景 |
|---|---|---|
| HTTP | ✅ 完全支持 | 传统网页浏览,兼容性最好 |
| HTTPS | ✅ 完全支持 | 安全加密传输,保护隐私 |
| SOCKS5 | ✅ 完全支持 | 支持 TCP 和 UDP 协议,应用广泛 |
| SOCKS4 | ✅ 完全支持 | 兼容旧版系统和应用 |
每种协议都支持完整的认证功能(注意:受限于Chrome的约束, SOCKS5 的连接认证),用户可以为代理服务器配置用户名和密码,扩展会自动处理认证请求,确保安全可靠地使用代理服务。这种多协议支持使得 ProxyAssistant 能够适应各种复杂的网络环境和代理服务提供商。
2.2、三种代理状态
为了满足不同用户的使用习惯和需求,ProxyAssistant 提供了三种代理状态:
| 状态 | 描述 | 适用场景 |
|---|---|---|
| 禁用 | 禁用代理,使用系统默认网络连接 | 需要直接访问本地网络时 |
| 手动 | 从列表中手动选择代理 | 单一代理固定使用 |
| 自动 | 根据 URL 规则自动选择匹配代理 | 不同网站使用不同代理 |
自动模式是 ProxyAssistant 的一大特色功能。用户可以为每个代理配置 URL 规则,包括”不走代理的地址”和”走代理的地址”。系统会根据访问的网站自动选择合适的代理,实现了智能路由功能。例如,可以让国内网站直连,特定国外网站走代理,大大提高了使用的灵活性。
2.3、自定义场景模式
场景模式是 ProxyAssistant 1.5.0 版本引入的重大功能更新,它允许用户创建不同的代理配置集合:
- 多场景支持:可以创建如”公司”、”家庭”、”开发环境”等不同场景
- 快速切换:一键在不同场景间切换代理列表,无需重复配置
- 灵活管理:支持场景的新增、重命名、删除及排序
- 代理迁移:支持将代理在不同场景间移动,方便整理
这种设计非常适合需要在多个网络环境间切换的用户。例如,在公司使用公司提供的代理,在家使用科学上网代理,通过场景切换可以瞬间完成代理配置的变更,极大提升了使用效率。
2.4、数据同步
ProxyAssistant 支持两种同步方式: 浏览器原生同步 和 Github Gist 同步。
2.4.1、浏览器原生同步
使用浏览器账号进行数据同步:
- Chrome 使用
chrome.storage.syncAPI - Firefox 使用
browser.storage.syncAPI - 自动通过 Chrome/Firefox 账号同步
- 分块存储:配置数据自动分块(每块 7KB),绕过 8KB 单项配额限制
- 数据校验:使用校验和确保同步数据的完整性
- 原子操作:Push 操作先清空旧数据再写入新数据,保证一致性
- 配额显示:实时显示已用/总配额(100KB)和分块数量
2.4.2、GitHub Gist 同步
通过 GitHub Gist 实现跨浏览器同步:
- 需要配置 GitHub Personal Access Token
- 支持手动 push/pull 或自动同步
- 配置内容加密存储,导出时自动清除敏感信息
| 配置项 | 描述 |
|---|---|
| 访问密钥 | GitHub Personal Access Token(需具有 gist 权限) |
| 文件名 | Gist 中的文件名,默认为 proxy_assistant_config.json |
| Gist ID | 自动识别保存,无需手动输入 |
2.5、数据导入和导出
ProxyAssistant 提供了完善的导入导出功能:
- 导出配置:生成包含所有代理信息、主题设置、语言设置等信息的 JSON 文件
- 导入配置:支持从 JSON 文件恢复配置
- 数据安全:导出文件自动清除敏感信息(Token、密码)
- 格式兼容:支持导入旧版本配置文件
导出功能使得配置分享变得非常简单。用户可以将自己的代理配置导出为 JSON 文件,分享给团队成员或在其他设备上导入使用,既方便又安全。
2.6、主题模式
ProxyAssistant 提供了完整的主题支持:
| 主题类型 | 描述 |
|---|---|
| 白天模式 | 适合白天使用,界面清爽明亮 |
| 夜间模式 | 适合夜间使用,减少眼睛疲劳 |
| 自动切换 | 根据配置的时间段自动切换主题 |
用户可以根据自己的使用习惯和喜好选择合适的主题模式,也可以设置自动切换,让扩展根据时间自动调整界面风格,体现了产品设计的人文关怀。
2.7、多语言支持
ProxyAssistant 在国际化方面做得非常出色,目前支持 10 种语言:
| 语言 | 代码 | 状态 |
|---|---|---|
| 简体中文 | zh-CN | ✅ 已支持 |
| 繁體中文 | zh-TW | ✅ 已支持 |
| English | en | ✅ 已支持 |
| 日本語 | ja | ✅ 已支持 |
| Français | fr | ✅ 已支持 |
| Deutsch | de | ✅ 已支持 |
| Español | es | ✅ 已支持 |
| Português | pt | ✅ 已支持 |
| Русский | ru | ✅ 已支持 |
| 한국어 | ko | ✅ 已支持 |
国际化实现结合了 Chrome i18n API 和自管理的语言包,确保用户可以在扩展内实时切换语言。这种广泛的多语言支持使得 ProxyAssistant 能够服务于全球各地的用户。
三、安装与使用
3.1、安装方式
3.1.1、Chrome 浏览器
方式一(推荐):从 Chrome 官方商店安装
- 打开 Chrome,访问 Chrome 网上应用商店
- 搜索”代理助手”,或直接访问 代理助手
- 点击”添加至 Chrome”
方式二:本地安装
- 前往 GitHub Releases 页面
- 下载
proxy-assistant-chrome-x.x.x.zip文件 - 解压后加载
src目录
3.1.2、Firefox 浏览器
方式一(推荐):从 Firefox 官方附加组件安装
- 打开 Firefox,访问 Firefox 附加组件
- 搜索”代理助手”,或直接访问 代理助手
- 点击”添加到 Firefox”
方式二:本地安装
- 从 release 目录下载 Firefox 扩展安装包(
.xpi文件) - 在附加组件页面从文件安装
3.1.3、Microsoft Edge
Edge 浏览器基于 Chromium 内核,可以直接安装 Chrome 扩展:
- 访问
edge://extensions/ - 开启开发者模式
- 加载 Chrome 扩展或从 Chrome 网上应用店安装,或直接访问 代理助手
3.2、使用指南
- 添加代理:点击扩展图标 → 设置 → 新增代理 → 填写代理信息
- 使用代理:
- 手动模式:从列表中选择代理
- 自动模式:配置 URL 规则,自动匹配
- 场景切换:在弹窗中切换不同场景
- 导入导出:设置页面支持配置文件的导入导出
四、开发与测试
4.1、项目结构
ProxyAssistant 采用清晰的项目结构,便于开发和维护:
|
4.2、测试框架
ProxyAssistant 使用 Jest 作为测试框架,建立了完整的测试体系:
| 测试类型 | 命令 | 描述 |
|---|---|---|
| 单元测试 | make test_unit | 测试核心功能模块 |
| 集成测试 | make test_integration | 测试模块间交互 |
| 端到端测试 | make test_e2e | 测试完整用户流程 |
| 全部测试 | make test | 运行所有测试 |
| 覆盖率报告 | npm run test:coverage | 生成测试覆盖率报告 |
项目还提供了监听模式 (npm run test:watch),支持开发过程中实时运行测试,确保代码质量。
4.3、构建流程
ProxyAssistant 提供了完整的构建脚本:
| 命令 | 描述 |
|---|---|
make build | 构建 Chrome 和 Firefox 扩展 |
make build VERSION=dev | 指定版本号构建 |
make clean | 清理构建产物 |
构建产物包括:
ProxyAssistant_{VERSION}_chrome.zip- Chrome 安装包ProxyAssistant_{VERSION}_chrome.tar.gz- Chrome 源码包ProxyAssistant_{VERSION}_firefox.zip- Firefox 安装包ProxyAssistant_{VERSION}_firefox.tar.gz- Firefox 源码包ProxyAssistant_{VERSION}_firefox.xpi- Firefox 官方扩展包
4.4、代码规范
项目遵循严格的代码规范:
- 缩进:2 个空格
- 引号:单引号
- 命名:小驼峰 (camelCase),常量使用大写下划线
- 分号:一致使用
详细的开发规范请参考 AGENTS.md。
五、应用场景
5.1、多代理切换
对于需要在不同网络环境间切换的用户,ProxyAssistant 提供了便捷的解决方案:
- 为不同网络环境配置不同代理
- 办公网络使用公司代理
- 家庭网络使用科学上网代理
- 一键快速切换,无需重复配置
5.2、智能路由
ProxyAssistant 的自动模式和 URL 规则配置功能实现了智能路由:
- 国内网站直连,享受最快速度
- 特定网站走代理,突破网络限制
- 根据域名自动选择,无需手动切换
5.3、团队共享
ProxyAssistant 的导入导出功能便于团队协作:
- 导出配置文件
- 分享给团队成员
- 保持统一的代理配置
