省去手动设置的繁琐流程
可自动取消代理
背景
自动化项目中可能需要自动设置手机代理,配合mitmproxy使用
自动设置代理shell脚本
#!/bin/bash
if [ "$1" == "set" ];then
if [ -n "$2" ];then
echo "设置自定义代理 $2"
adb shell settings put global http_proxy $2
else
# 获取 IP
ip=$(ifconfig en0 | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
echo $ip
count=$(echo $ip | tr ' ' '\n' | wc -l )
if [ $count -gt 1 ];then
echo "多个ip,请手动选择一个"
exit
fi
default_proxy=${ip}":8888"
echo "本机IP为: $default_proxy"
echo "设置本机IP代理 $default_proxy"
adb shell settings put global http_proxy $default_proxy
fi
elif [ "$1" == "clean" ];then
echo "清除代理成功"
adb shell settings put global http_proxy :0
else
echo "Useage: proxy [set|clean] [ip]:[port]"
echo ""
echo " set 设置当前电脑ip为手机代理,且端口为8888"
echo " set ip:port 设置指定的ip及端口"
echo " clean 删除代理"
echo ""
fi
如我保存为easy_proxy.sh到 ~/Documents 目录下
配置
vim ~/.zshrc
# 添加如下alias
alias proxy="sh ~/Documents/easy_proxy.sh"
效果
$ proxy
Useage: proxy [set|clean] [ip]:[port]
set 设置当前电脑ip为手机代理,且端口为8888
set ip:port 设置指定的ip及端口
clean 删除代理
$ proxy set
$ proxy set 192.168.111.1:8899
$ proxy clean
注意:必须通过
proxy clean
命令取消代理,在手机wifi高级设置中不可见,不可手动取消