0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プロキシ環境の中でサッとプロキシを設定できるスクリプトを作ってもらった

Posted at

毎回プロキシ打つのがめんどいので作ってもらった。
追加してほしいとか動かないとかあればコメントもらえるとうれしいです。

参考: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' を実行してください。"

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?