Ubuntu Server 设置全局代理脚本

新建脚本文件

nano setproxy.sh

输入以下内容

#!/bin/bash

# 代理服务器地址和端口,根据实际情况进行修改
HTTP_PROXY_SERVER="http://172.16.44.88:10802"
HTTPS_PROXY_SERVER="$HTTP_PROXY_SERVER"
NO_PROXY_SERVER="localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local"
#全局代理
env_file="/etc/environment"
#全局用户代理
profile="/etc/profile.d/99proxy.sh"
#apt代理
apt_proxy="/etc/apt/apt.conf.d/99proxy"
# microk8s代理
microk8s_container_env="/var/snap/microk8s/current/args/containerd-env"

# 检查脚本是否以root权限运行
if [ "$(id -u)" != "0" ]; then
   echo "该脚本需要root权限来修改 $env_file"
   exit 1
fi

# 检查传入的参数
if [ "$1" == "on" ]; then
    # 添加代理配置
    echo "添加代理配置..."

    sed -i '/^export HTTP_PROXY=/d' $env_file
    sed -i '/^export HTTPS_PROXY=/d' $env_file
    sed -i '/^export NO_PROXY=/d' $env_file
    echo "export HTTP_PROXY=\"$HTTP_PROXY_SERVER\"" >> $env_file
    echo "export HTTPS_PROXY=\"$HTTPS_PROXY_SERVER\"" >> $env_file
    echo "export NO_PROXY=\"$NO_PROXY_SERVER\"" >> $env_file

    #添加apt代理
    sudo rm -f $apt_proxy 
    sudo tee $apt_proxy << EOF
    Acquire::http::proxy "$HTTP_PROXY_SERVER";
    Acquire::https::proxy "$HTTPS_PROXY_SERVER";
EOF

    #添加全局用户代理
    sudo rm -f $profile
    sudo tee $profile << EOF
    export HTTP_PROXY="$HTTP_PROXY_SERVER"
    export HTTPS_PROXY="$HTTPS_PROXY_SERVER"
    export NO_PROXY="$NO_PROXY_SERVER"
EOF

    #添加microk8s代理
    sed -i '/^HTTP_PROXY=/d' $microk8s_container_env
    sed -i '/^HTTPS_PROXY=/d' $microk8s_container_env
    sed -i '/^NO_PROXY=/d' $microk8s_container_env
    echo "HTTP_PROXY=\"$HTTP_PROXY_SERVER\"" >> $microk8s_container_env
    echo "HTTPS_PROXY=\"$HTTPS_PROXY_SERVER\"" >> $microk8s_container_env
    echo "NO_PROXY=\"$NO_PROXY_SERVER\"" >> $microk8s_container_env

    echo "代理配置已更新。"
elif [ "$1" == "off" ]; then
    # 删除代理配置
    echo "删除代理配置..."

    #删除全局环境变量代理
    sed -i '/^export HTTP_PROXY=/d' $env_file
    sed -i '/^export HTTPS_PROXY=/d' $env_file
    sed -i '/^export NO_PROXY=/d' $env_file

    #删除apt代理
    sudo rm -f $apt_proxy

    #删除全局用户代理
    sudo rm -f $profile

    #删除microk8s代理
    sed -i '/^HTTP_PROXY=/d' $microk8s_container_env
    sed -i '/^HTTPS_PROXY=/d' $microk8s_container_env
    sed -i '/^NO_PROXY=/d' $microk8s_container_env

    echo "代理配置已删除。"
else
    echo "无效的参数。使用 'on' 来添加或替换代理,使用 'off' 来删除代理。"
    exit 1
fi

保存退出 ,为脚本增加执行权限。

chmod +x setproxy.sh

重启服务器生效

发表回复

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

滑动验证 *