让iTerm2实时显示梯子状态
2020年3月31日
约 958 字 需时 2 分钟
深色阅读
作为日常翻墙的不轨分子之一,常遇到需要会调用curl、wget、brew等进行代理下载的时候,这时候碰壁是最撕心裂肺的。通常最省力的做法是装个代理开关,早前也有写过相关简案《给zsh来把翻墙弹椅 》。
但问题来了,时间一长,却常将当前session抛之脑后而无法分辨当前连接状态,这就是本文的来缘了。
方案一:增强型function
修改~/.zshrc
加入下列内容:
export proxy_host=127.0.0.1
export proxy_port=1080//自定义梯子端口
export switch_proxy=0
export cdc_in=0
function pp(){
if [ $switch_proxy = 0 ]; then
export http_proxy="$proxy_host:$proxy_port"
export https_proxy="$proxy_host:$proxy_port"
export ftp_proxy="$proxy_host:$proxy_port"
export GOPROXY="$proxy_host:$Proxy_port"
switch_proxy=l
echo -e "梯子模式"
else
unset http_proxy
unset https_proxy
unset ftp_proxy
unset GOPROXY
switch_proxy=0
echo -e "和谐模式"
fi
}
方案二:iTerm2 badge功能
先安装 Shell Integration1,以zsh为例:
$ curl -L https://iterm2.com/shell_integration/zsh \
-o ~/.iterm2_shell_integration.zsh
重新加载配置
$ source ~/.iterm2_shell_integration.zsh
往~/.zshrc
添加脚本内容2:
function iterm2_print_user_vars() {
iterm2_set_user_var proxy $([ -z "$http_proxy" ] || echo "㊙️🅿️")
}
打开iTerm2 ,将Preferences -> Profiles -> General -> Badge3 设置为 \(user.proxy)
最终,我结合了上述两种办法,制作了双保险方案,效果如下:
- 键入
pp
,进入梯子模式
- 再次键入
pp
,退出梯子状态,回退到和谐模式
方案三:proxychains
但在实际应用中,由于经常在clashX与v2rayu之间切换,pp经常不是特别灵光,于是又加了第三重保险:proxychians-ng4:
$ brew install proxychains-ng
proxychains-ng默认配置文件名为proxychains.conf
。
- 通过源代码编译安装的默认为 /etc/proxychains.conf
- Mac下用Homebrew安装的默认为 /usr/local/etc/proxychains.conf
$ vi /usr/local/etc/proxychains.conf
修改可能会用到的对应协议及端口即可:
[ProxyList]
socks5 127.0.0.1 1080 # v2rayU端口
http 127.0.0.1 1089 # v2rayU端口
socks5 127.0.0.1 7891 # ClashX端口
http 127.0.0.1 7890 # ClashX端口
根据自己的实际情况选择proxychains-ng的代理模式:
- dynamic_chain :动态模式,按照代理列表顺序自动选取可用代理
- strict_chain :严格模式,严格按照代理列表顺序使用代理,所有代理必须可用
- round_robin_chain :轮询模式,自动跳过不可用代理
- random_chain :随机模式,随机使用代理
建议:编辑vi ~/.zshrc
,加入别名映射
alias pc='proxychains4'
测试:
$ pc curl ip.cc
[proxychains] config file found: /usr/local/etc/proxychains.conf
[proxychains] preloading /usr/local/Cellar/proxychains-ng/4.14/lib/libproxychains4.dylib
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] Dynamic chain ... 127.0.0.1:7891 ... timeout
[proxychains] Dynamic chain ... 127.0.0.1:1080 ... cip.cc:80 ... OK
IP : 103.17.10.50
地址 : 中国 台湾 新北市
运营商 : twnoc.net
数据二 : 台湾省新北市 | 远振资讯
数据三 : 中国台湾新北 | 台湾固网