毎回プロキシ打つのがめんどいので作ってもらった。
追加してほしいとか動かないとかあればコメントもらえるとうれしいです。
参考:https://qiita.com/Makotunes/items/1c2aab00813a0b58bb9b
#!/bin/bash
echo "🚀 プロキシ設定スクリプトを開始します 🚀"
# プロキシ情報の入力
read -p "プロキシのアドレス (例: proxy.example.com): " PROXY_HOST
read -p "プロキシのポート (例: 8080): " PROXY_PORT
read -p "プロキシのユーザー名 (不要な場合はEnter): " PROXY_USER
read -s -p "プロキシのパスワード (不要な場合はEnter): " PROXY_PASS
echo
read -p "プロキシから除外するドメイン/IP (カンマ区切り、例: localhost,127.0.0.1,.example.com): " NO_PROXY_LIST
# プロキシURLの構築
PROXY_AUTH=""
if [ -n "$PROXY_USER" ] && [ -n "$PROXY_PASS" ]; then
PROXY_AUTH="$PROXY_USER:$PROXY_PASS@"
fi
HTTP_PROXY_URL="http://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}"
HTTPS_PROXY_URL="https://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}"
echo "設定されるプロキシURL (HTTP): $HTTP_PROXY_URL"
echo "設定されるプロキシURL (HTTPS): $HTTPS_PROXY_URL"
echo "除外リスト: $NO_PROXY_LIST"
# --- 環境変数の設定 (恒久化のため ~/.bashrc に追加) ---
echo "--- 環境変数を ~/.bashrc に追加します ---"
{
echo ""
echo "# Proxy settings added by script on $(date)"
echo "export HTTP_PROXY=\"$HTTP_PROXY_URL\""
echo "export HTTPS_PROXY=\"$HTTPS_PROXY_URL\""
echo "export NO_PROXY=\"$NO_PROXY_LIST\""
echo "export http_proxy=\"$HTTP_PROXY_URL\""
echo "export https_proxy=\"$HTTPS_PROXY_URL\""
echo "export no_proxy=\"$NO_PROXY_LIST\""
echo "# End of proxy settings"
} >> ~/.bashrc
echo "~/.bashrc に設定を追加しました。'source ~/.bashrc' を実行して反映させてください。"
# --- Git プロキシ設定 ---
echo "--- Git プロキシを設定します ---"
git config --global http.proxy "$HTTP_PROXY_URL"
git config --global https.proxy "$HTTPS_PROXY_URL"
echo "Git のプロキシ設定が完了しました。"
# --- npm (Node.js) プロキシ設定 ---
echo "--- npm プロキシを設定します ---"
npm config set proxy "$HTTP_PROXY_URL"
npm config set https-proxy "$HTTPS_PROXY_URL"
echo "npm のプロキシ設定が完了しました。"
# --- Docker デーモン設定 (daemon.json) ---
echo "--- Docker デーモン プロキシを設定します (root権限が必要です) ---"
if command -v docker &> /dev/null; then
read -p "Docker デーモンにプロキシ設定を適用しますか? (y/N): " DOCKER_CONFIRM
if [[ "$DOCKER_CONFIRM" =~ ^[Yy]$ ]]; then
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo bash -c "cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOL
[Service]
Environment=\"HTTP_PROXY=$HTTP_PROXY_URL\"
Environment=\"HTTPS_PROXY=$HTTPS_PROXY_URL\"
Environment=\"NO_PROXY=$NO_PROXY_LIST\"
EOL"
echo "Docker デーモン設定ファイルを作成しました: /etc/systemd/system/docker.service.d/http-proxy.conf"
echo "sudo systemctl daemon-reload && sudo systemctl restart docker を実行して反映させてください。"
else
echo "Docker デーモンへのプロキシ設定はスキップされました。"
fi
else
echo "Docker がインストールされていないため、Docker デーモン設定はスキップされます。"
fi
echo "✅ プロキシ設定スクリプトが完了しました ✅"
echo "💡 注意: 環境変数を反映させるには、ターミナルを再起動するか 'source ~/.bashrc' を実行してください。"