Android 手机使用 PC 代理上网的方法

本文最后更新于 2024年2月29日 凌晨

在一些特殊的情况下,可能需要使用 Android 手机或者 PC 的线路访问外部网络资源,同时没有条件连接 wifi 网络,这时候可以使用 Android Platform Tools 的 adb 工具来达到目的。

Android Platform Tools 的下载地址为:
https://developer.android.com/tools/releases/platform-tools#downloads

Android 手机使用 PC 的代理上网的方法

用 USB 数据线连接 Android 手机和 PC,在 PC 中执行下面的命令

1
2
adb shell settings put global http_proxy 127.0.0.1:7890
adb reverse tcp:7890 tcp:7890

首先设置 Android 手机 http 全局代理为 127.0.0.1:7890,然后将手机的 127.0.0.1:7890 转发到 PC 127.0.0.1:7890 (没有找到设置 Android 系统全局使用 socks5 代理的方法)

设置 Android 全局代理需要 android.permission.WRITE_SECURE_SETTINGS 权限,ColorOS 需要在开发者选项中开启 「禁止权限监控」具体方法可以参考:在 ColorOS 上免 root 玩机,请先打开这个开关,如果是小米手机可能需要在开发者选项中打开 「USB调试(安全设置)」,我没有小米手机未测试。

如果需要恢复Android 无代理状态,需要使用下面的命令,一定要记得执行这条恢复命令,否则手机可能无法联网。

1
2
3
adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

执行 adb reverse 命令后,可以使用 adb reverse --list 查看连接建立情况:

1
UsbFfs tcp:7890 tcp:7890

不需要使用时,可以使用 adb reverse --remove 移除转发

1
adb reverse --remove tcp:7890

参考 adb 的帮助,执行命令 adb help

1
2
3
4
5
6
7
8
9
reverse --list           list all reverse socket connections from device
reverse [--no-rebind] REMOTE LOCAL
reverse socket connection using:
tcp:<port> (<remote> may be "tcp:0" to pick any open port)
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
reverse --remove REMOTE remove specific reverse socket connection
reverse --remove-all remove all reverse socket connections from device

PC 使用 Android 手机代理上网的方法

首先在手机上开启 socks5 代理 127.0.0.1:9999, 然后用 USB 数据线连接 Android 手机和 PC,在 PC 中执行下面的命令

1
adb forward tcp:7890 tcp:9999

这样会把 PC 127.0.0.1:7890 转发到手机 127.0.0.1:9999

使用 adb forward --list 查看连接建立情况

1
94e22910 tcp:7890 tcp:9999

不需要使用时,可以使用 adb forward --remove 移除转发

1
adb forward --remove tcp:7890

参考 adb 的帮助,执行命令 adb help

1
2
3
4
5
6
7
8
9
10
11
12
13
forward --list           list all forward socket connections
forward [--no-rebind] LOCAL REMOTE
forward socket connection using:
tcp:<port> (<local> may be "tcp:0" to pick any open port)
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
vsock:<CID>:<port> (remote only)
acceptfd:<fd> (listen only)
forward --remove LOCAL remove specific forward socket connection
forward --remove-all remove all forward socket connections

参考资料

[1] 在 ColorOS 上免 root 玩机,请先打开这个开关 - 克莱德 2021.06.08
https://sspai.com/post/67110

[2] 在 Android 手机上的使用 stunnel - zz 2021.2.24
https://www.usmacd.com/cn/android_stunnel/


Android 手机使用 PC 代理上网的方法
https://usmacd.com/cn/android_use_proxy_of_pc/
作者
henices
发布于
2024年2月27日
许可协议