新建脚本文件
1 |
nano setproxy.sh |
输入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#!/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 |
保存退出 ,为脚本增加执行权限。
1 |
chmod +x setproxy.sh |
重启服务器生效