Idealisan

一个自动设置终端或命令行代理环境变量的脚本

下面这个小脚本使用nc判断代理端口是否已经打开,如果已经打开就设置环境变量,否则清除环境变量。把这个脚本作为profile的一部分即可在终端里自动配置代理了。

#!/bin/bash

# 目标代理服务器的地址
PROXY_HOST="localhost"

# 检测的代理端口
PROXY_PORT=10808

# 检测端口是否开放
nc -z $PROXY_HOST $PROXY_PORT > /dev/null 2>&1

# 根据 nc 命令的退出状态来决定是否设置环境变量
if [ $? -eq 0 ]; then
echo "Proxy port is open. Setting up proxy environment variables."
export http_proxy="http://$PROXY_HOST:$PROXY_PORT"
export https_proxy="http://$PROXY_HOST:$PROXY_PORT"
else
echo "Proxy port is closed. Clearing proxy environment variables."
unset http_proxy
unset https_proxy
fi

另外,还有一个脚本用语快速启动和关闭v2ray并且调整macOS的系统的GUI代理设置,以前的博客内容应该写过,这里再写一下。分两个脚本,打开和关闭代理。这两个脚本更早编写,其中既执行了调整GUI的代理设置的命令,也执行了修改profile从而控制终端代理设置的命令。

打开的脚本:

#!/bin/sh
networksetup -setwebproxystate Wi-Fi on
networksetup -setsecurewebproxystate Wi-Fi on
networksetup -setsocksfirewallproxystate Wi-Fi on
sed -i -e 's/#export http_proxy/export http_proxy/' ~/.profile &&
sed -i -e 's/#export https_proxy/export https_proxy/' ~/.profile &&
/Users/myname/Documents/ray/v2ray run &

关闭的脚本:

#!/bin/sh
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off
sed -i -e 's/export http_proxy/#export http_proxy/' ~/.profile &&
sed -i -e 's/export https_proxy/#export https_proxy/' ~/.profile &&
killall v2ray

如果使用Windows,下面的两段批处理可以比较方便的配置代理环境变量。
set http_proxy=http://127.0.0.1:10808
set https_proxy=http://127.0.0.1:10808
git config --global http.proxy http://127.0.0.1:10808
git config --global https.proxy http://127.0.0.1:10808
@echo off

REM Unset proxy settings for the current session
set http_proxy=
set https_proxy=

REM Unset global proxy settings for git
git config --global --unset http.proxy
git config --global --unset https.proxy

echo Proxy settings have been unset.
分类

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注