缘由(痛点)
每次在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代理
打算下次再写一个自动获取互联网上可用网络代理的脚本。