写了一个Mac快速设置打开和关闭Web代理的Shell命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写了一个Mac快速设置打开和关闭Web代理的Shell命令相关的知识,希望对你有一定的参考价值。

缘由(痛点)

每次在Mac上设置Web代理,都需要点开"系统偏好设置 -- 网络 -- 高级 -- 代理",然后分别设置Web代理(HTTP)和安全Web代理(HTTPS),设置完后,还要点"好 -- 应用"。如果要关闭Web代理也是如此,只是点到代理设置面板后,只需要取消勾选Web代理和安全Web代理。

个人觉得这种操作很繁琐,对于一个经常需要改Web代理的人来说,这简直是灾难性的重复操作。所以这段时间学了些Linux Shell脚本编程的知识,写了两个Shell命令用来一键设置和开关Web代理。

设置和打开Web代理的Shell脚本

#!/bin/bash
#

export PATH=/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
clear
networkservice=$(networksetup -listallnetworkservices | head -n 2 | tail -n 1)  #获取Mac当前使用的网络名称
echo Open web proxy for networkservice: $networkservice
if [ "$2" != "" ]; then
    sudo networksetup -setwebproxy $networkservice $1 $2   #设置Web HTTP代理
    sudo networksetup -setsecurewebproxy $networkservice $1 $2   #设置Web HTTPS代理
fi
sudo networksetup -setwebproxystate $networkservice on   #打开Web HTTP代理
sudo networksetup -setsecurewebproxystate $networkservice on  #打开Web HTTPS代理
echo Done

如何使用这个脚本

将上面的脚本保存为一个文件,比如叫proxyon,然后将这个proxyon文件移动到某个bin目录下,如:

/usr/local/bin/

然后我们就可以在终端通过这个命令快速设置和打开Web代理了:

sudo proxyon  #仅打开Web代理
sudo proxyon 115.231.175.68 8081 #设置并打开Web代理

关闭Web代理的Shell脚本

#!/bin/bash
#

export PATH=/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
clear
networkservice=$(networksetup -listallnetworkservices | head -n 2 | tail -n 1)   #获取Mac当前使用的网络名称
echo Close web proxy for networkservice: $networkservice
sudo networksetup -setwebproxystate $networkservice off   #关闭Web HTTP代理
sudo networksetup -setsecurewebproxystate $networkservice off   #关闭Web HTTPS代理
echo Done

如何使用这个脚本

同proxyon,我们将上面的脚本保存为一个文件,比如叫proxyoff,然后将这个proxyff文件移动到某个bin目录下,如:

/usr/local/bin/

然后我们就可以在终端通过这个命令快速关闭Web代理了:

sudo proxyoff  #关闭Web代理

打算下次再写一个自动获取互联网上可用网络代理的脚本。

以上是关于写了一个Mac快速设置打开和关闭Web代理的Shell命令的主要内容,如果未能解决你的问题,请参考以下文章

Mac 设置命令行代理

HTTP代理是自动还是关闭?

HTTP代理关闭还是自动的呢?

如何在 Mac 上设置我的默认 shell,例如钓鱼? [关闭]

Mac快速备忘录开启与关闭设置方法

Mac Termianl 实现全局代理