Created
February 3, 2023 19:22
-
-
Save likair/095d565969a149f5c61da7d83ec32289 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# This script is used to set proxy environment variables | |
# and proxy settings for gnome, apt and docker. | |
############################################################## | |
# Configuration (change these values to your proxy settings) | |
PROXY_HOST= | |
PROXY_PORT= | |
PROXY_PAC= | |
NO_PROXY= | |
GNOME_PROXY_MODE=auto | |
############################################################## | |
PROXY="http://$PROXY_HOST:$PROXY_PORT/" | |
# Set proxy environment variables | |
export http_proxy=$PROXY | |
export HTTP_PROXY=$PROXY | |
export https_proxy=$PROXY | |
export HTTPS_PROXY=$PROXY | |
export ftp_proxy=$PROXY | |
export FTP_PROXY=$PROXY | |
export socks_proxy=$PROXY | |
export SOCKS_PROXY=$PROXY | |
export all_proxy=$PROXY | |
export ALL_PROXY=$PROXY | |
export no_proxy=$NO_PROXY | |
export NO_PROXY=$no_proxy | |
if [ "auto" = "$GNOME_PROXY_MODE" ]; then | |
echo "Set Gnome system proxy as auto mode." | |
gsettings set org.gnome.system.proxy mode 'auto' | |
gsettings set org.gnome.system.proxy autoconfig-url "${PROXY_PAC}" | |
else | |
echo "Set Gnome system proxy as manual mode" | |
gsettings set org.gnome.system.proxy mode 'manual'; | |
gsettings set org.gnome.system.proxy.http host "'$PROXY_HOST'"; | |
gsettings set org.gnome.system.proxy.http port $PROXY_PORT; | |
gsettings set org.gnome.system.proxy.https host "'$PROXY_HOST'"; | |
gsettings set org.gnome.system.proxy.https port $PROXY_PORT; | |
gsettings set org.gnome.system.proxy.ftp host "'$PROXY_HOST'"; | |
gsettings set org.gnome.system.proxy.ftp port $PROXY_PORT; | |
gsettings set org.gnome.system.proxy.socks host "'$PROXY_HOST'"; | |
gsettings set org.gnome.system.proxy.socks port $PROXY_PORT; | |
fi | |
echo "Set apt proxy: /etc/apt/apt.conf.d/proxy" | |
cat <<_EOF_ | sudo tee /etc/apt/apt.conf.d/proxy > /dev/null | |
Acquire::http::Proxy "${PROXY}"; | |
Acquire::https::Proxy "${PROXY}"; | |
Acquire::ftp::Proxy "${PROXY}"; | |
_EOF_ | |
echo "Set docker proxy: /etc/systemd/system/docker.service.d/http-proxy.conf" | |
sudo mkdir -p /etc/systemd/system/docker.service.d | |
cat <<_EOF_ | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null | |
[Service] | |
Environment="HTTP_PROXY=${PROXY}" | |
Environment="HTTPS_PROXY=${PROXY}" | |
Environment="NO_PROXY=${NO_PROXY}" | |
_EOF_ | |
docker info | grep -i "HTTP Proxy:" > /dev/null || ( | |
echo "Restarting docker service..." | |
sudo systemctl daemon-reload | |
sudo systemctl restart docker | |
sudo systemctl status docker | grep -i "active (running)" > /dev/null && echo "Docker is running." || echo "Docker is not running, check your settings.") | |
echo "Checking Internet..." | |
curl -s -I http://www.google.com | grep -i "HTTP/1.1 200 OK" > /dev/null && echo "Proxy enabled." || echo "Proxy does not work, check your settings." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment