通过系统 Wi-Fi 设置(最简单,适用于普通用户)
这是最直接、最简单的方法,适用于连接特定 Wi-Fi 网络时使用代理。

适用场景:
- 只在连接某个 Wi-Fi 时使用代理。
- 临时使用代理。
- 不需要复杂的代理配置(如认证、PAC 等)。
操作步骤:
-
打开 Wi-Fi 设置:
- 进入手机的
设置>网络和互联网(或连接) >Wi-Fi。
- 进入手机的
-
修改当前网络的代理设置:
(图片来源网络,侵删)- 长按你当前已连接的 Wi-Fi 网络,选择
修改网络(Modify network) 或网络配置(Network configuration)。 - 如果是首次连接,可能需要先连接,然后进入
高级选项(Advanced options)。
- 长按你当前已连接的 Wi-Fi 网络,选择
-
选择代理类型:
- 在网络配置页面,找到
代理(Proxy) 选项。 - 通常有以下几种类型:
- 无 (None): 不使用代理。
- 手动 (Manual): 手动输入代理服务器的地址和端口,这是最常用的方式。
- PAC (Proxy Auto-Configuration): 输入一个 PAC (Proxy Auto-Configuration) 文件的 URL,PAC 文件是一个 JavaScript 文件,可以告诉设备哪些网站需要走代理,哪些直连,适用于复杂的代理策略。
- 在网络配置页面,找到
-
填写代理信息(以“手动”为例):
- 代理主机名 (Proxy hostname): 输入代理服务器的 IP 地址或域名(
168.1.100或proxy.example.com)。 - 代理端口 (Proxy port): 输入代理服务器的端口号(
8080)。 - Bypass proxy for: 可以添加不需要走代理的域名(
*.local),这些域名将直接连接。
- 代理主机名 (Proxy hostname): 输入代理服务器的 IP 地址或域名(
-
保存设置:
- 点击
保存或连接,系统会断开当前 Wi-Fi 并重新连接以应用新的代理设置。
- 点击
使用 VPN 应用(最灵活,适用于所有流量)
VPN (Virtual Private Network) 应用可以在操作系统层面创建一个虚拟的网络接口,将设备上的所有网络流量(不仅仅是特定 App)都通过 VPN 服务器转发,许多 VPN 应用也支持模式设置为“代理模式”,即连接到一个本地或远程的代理服务器。

适用场景:
- 需要让所有 App 的流量都走代理。
- 需要更高级的功能,如分应用代理、路由规则等。
- 临时、快速地切换代理。
推荐应用:
- Postern: 一款功能强大的网络工具,支持全局代理、分应用代理、PAC 规则等。
- ProxyDroid: 经典的代理切换工具,支持 HTTP、SOCKS4/5 代理,并能按应用设置。
- Clash for Android: 基于 Clash 内核的代理工具,支持复杂的规则配置,是高级用户的首选。
通用操作步骤(以 Postern 为例):
- 下载并安装应用: 从 Google Play 商店或 F-Droid 下载并安装 Postern。
- 创建代理配置:
- 打开 Postern,点击左上角的 号,选择
创建代理。 - 填写代理信息:
- 名称: 给这个代理配置起个名字,方便识别。
- 服务器: 代理服务器的 IP 地址或域名。
- 端口: 代理服务器的端口号。
- 类型: 选择代理类型,如
HTTP或SOCKS5。 - 认证: 如果代理服务器需要用户名和密码,在此处填写。
- 打开 Postern,点击左上角的 号,选择
- 应用配置:
- 创建好代理配置后,返回主界面,点击它旁边的开关按钮,将其激活。
- Postern 会提示你授予 VPN 权限,点击
同意。 - 系统会创建一个 VPN 连接,所有流量都将通过你配置的代理服务器。
通过 ADB 命令(适用于开发者/高级用户)
对于需要自动化脚本或在没有图形界面的设备(如 Android TV、车载系统)上设置代理,可以使用 Android Debug Bridge (ADB) 命令。
适用场景:
- 开发和测试自动化。
- 远程批量配置设备。
- 在没有触摸屏的设备上操作。
操作步骤:
-
准备工作:
- 确保你的电脑上已安装 ADB。
- 在手机上启用
开发者选项和USB 调试,并通过 USB 线连接电脑。 - 在电脑上打开命令行终端(如 Windows 的 CMD 或 PowerShell,macOS/Linux 的 Terminal)。
-
设置代理:
- 使用以下命令设置全局 HTTP 代理,将
PROXY_IP和PROXY_PORT替换为你的实际代理地址和端口。adb shell settings put global http_proxy PROXY_IP:PROXY_PORT
adb shell settings put global http_proxy 192.168.1.100:8080
- 使用以下命令设置全局 HTTP 代理,将
-
设置 SOCKS 代理(可选):
- 如果你的代理支持 SOCKS,也可以设置 SOCKS 代理。
adb shell settings put global global_proxy_host PROXY_IP adb shell settings put global global_proxy_port PROXY_PORT adb shell settings put global global_proxy_type SOCKS
- 如果你的代理支持 SOCKS,也可以设置 SOCKS 代理。
-
清除代理设置:
- 如果需要取消代理,可以执行以下命令:
adb shell settings put global http_proxy :0
或者直接清除所有代理设置:
adb shell settings delete global http_proxy adb shell settings delete global global_proxy_host adb shell settings delete global global_proxy_port adb shell settings delete global global_proxy_type
- 如果需要取消代理,可以执行以下命令:
通过 Android 代码(适用于 App 开发者)
如果你正在开发一个 App,并希望让 App 内的流量走代理,而不是整个系统,你可以使用 Proxy 类来配置。
适用场景:
- 开发一个需要网络代理功能的 App。
- 让 App 的网络请求使用自定义代理,而不影响其他 App。
代码示例:
import java.net.InetSocketAddress;
import java.net.Proxy;
// ...
// 创建一个 SOCKS 代理
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("proxy.example.com", 1080));
// 或者创建一个 HTTP 代理
// Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.1.100", 8080));
// 然后在创建网络连接时使用这个 Proxy 对象
// 在使用 OkHttp 时:
OkHttpClient client = new OkHttpClient.Builder()
.proxy(proxy)
.build();
// 后续所有的 client.request() 都会通过这个代理
Request request = new Request.Builder().url("https://www.google.com").build();
try (Response response = client.newCall(request).execute()) {
// 处理响应...
}
总结与对比
| 方法 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|
| 系统 Wi-Fi 设置 | 简单直观,无需额外软件 | 仅限 Wi-Fi,功能单一 | 普通用户,临时使用 |
| VPN 应用 | 功能强大,全局代理,支持分应用规则 | 需要安装额外 App,可能影响设备性能 | 高级用户,开发者,需要精细控制流量的人 |
| ADB 命令 | 自动化,适合远程和批量操作 | 需要电脑和 ADB 知识,命令行操作不便 | 开发者,运维人员,测试人员 |
| App 代码设置 | 精确控制 App 内流量,不影响系统 | 仅适用于自己开发的 App | App 开发者 |
重要提示:
- 安全性: 请确保你使用的代理服务器是可信的,通过不可信的代理,你的所有网络流量都可能被监听。
- 认证: 如果代理需要用户名和密码,请确保输入正确。
- PAC 文件: 如果你的网络环境复杂,建议让网络管理员提供 PAC 文件,它可以智能地分流流量,效率更高。
