開発ツール別プロキシ設定まとめ — git / apt / npm / pip / Docker / VSCode 対応
社内ネットワークや VPN 環境でプロキシが必要な場合、ツールごとに設定方法がバラバラで毎回調べ直すことがあります。 この記事では コピペですぐ使える コマンドを中心に、主要ツール別の設定方法をまとめます。
目次
- シェル環境変数(基本)
- git
- apt(Ubuntu / Debian)
- curl
- wget
- npm / pnpm / yarn
- pip(Python)
- Docker
- VSCode
- Homebrew(macOS)
- Go
- Rust(cargo)
- SSH over proxy
- WSL2
- まとめ表
プロキシ変数の基本(シェル環境変数)
まず OS レベルの環境変数を設定しておくと、多くのツールがこれを自動参照します。
# ~/.bashrc または ~/.zshrc に追記
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,::1,*.local"
# 大文字も設定しておくと安全(ツールによって参照する変数が異なる)
export HTTP_PROXY="$http_proxy"
export HTTPS_PROXY="$https_proxy"
export NO_PROXY="$no_proxy"
設定を反映する:
source ~/.bashrc
# または
source ~/.zshrc
PROXY_URL を自分の環境に合わせて変更してください。 認証が必要な場合は
http://user:[email protected]:8080の形式を使います。
git
グローバル設定(推奨)
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy http://proxy.example.com:8080
確認
git config --global --get http.proxy
git config --global --get https.proxy
解除
git config --global --unset http.proxy
git config --global --unset https.proxy
特定ホストだけプロキシを使う
# github.com だけプロキシを通す場合
git config --global http.https://github.com.proxy http://proxy.example.com:8080
~/.gitconfig の直接編集
[http]
proxy = http://proxy.example.com:8080
[https]
proxy = http://proxy.example.com:8080
apt(Ubuntu / Debian)
一時的に使う(1コマンドだけ)
sudo http_proxy=http://proxy.example.com:8080 apt update
永続設定
sudo nano /etc/apt/apt.conf.d/01proxy
以下を貼り付け:
Acquire::http::Proxy "http://proxy.example.com:8080";
Acquire::https::Proxy "http://proxy.example.com:8080";
確認・削除
# 確認
cat /etc/apt/apt.conf.d/01proxy
# 削除
sudo rm /etc/apt/apt.conf.d/01proxy
curl
# オプションで指定
curl -x http://proxy.example.com:8080 https://example.com
# または環境変数(前節の http_proxy / https_proxy が使われる)
curl https://example.com
~/.curlrc で永続設定
proxy = http://proxy.example.com:8080
wget
# 一時的
wget -e use_proxy=yes -e http_proxy=http://proxy.example.com:8080 https://example.com
# ~/.wgetrc で永続設定
echo 'use_proxy = on' >> ~/.wgetrc
echo 'http_proxy = http://proxy.example.com:8080' >> ~/.wgetrc
echo 'https_proxy = http://proxy.example.com:8080' >> ~/.wgetrc
npm / pnpm / yarn
npm
npm config set proxy http://proxy.example.com:8080
npm config set https-proxy http://proxy.example.com:8080
# 確認
npm config get proxy
# 解除
npm config delete proxy
npm config delete https-proxy
pnpm
pnpm config set proxy http://proxy.example.com:8080
pnpm config set https-proxy http://proxy.example.com:8080
# 解除
pnpm config delete proxy
pnpm config delete https-proxy
yarn
yarn config set proxy http://proxy.example.com:8080
yarn config set https-proxy http://proxy.example.com:8080
# 解除
yarn config delete proxy
yarn config delete https-proxy
.npmrc の直接編集
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
pip(Python)
一時的
pip install requests --proxy http://proxy.example.com:8080
環境変数で設定(http_proxy / https_proxy が使われる)
export http_proxy=http://proxy.example.com:8080
pip install requests
pip.conf で永続設定
mkdir -p ~/.config/pip
nano ~/.config/pip/pip.conf
[global]
proxy = http://proxy.example.com:8080
Docker
Docker デーモン(イメージの pull 時)
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1"
設定を反映:
sudo systemctl daemon-reload
sudo systemctl restart docker
Dockerfile の中でプロキシを使う
ARG HTTP_PROXY
ARG HTTPS_PROXY
ENV http_proxy=$HTTP_PROXY
ENV https_proxy=$HTTPS_PROXY
RUN apt-get update && apt-get install -y curl
ビルド時に渡す:
docker build \
--build-arg HTTP_PROXY=http://proxy.example.com:8080 \
--build-arg HTTPS_PROXY=http://proxy.example.com:8080 \
-t myimage .
Docker Desktop(Mac / Windows)
Settings → Resources → Proxies から GUI で設定できます。
VSCode
settings.json で設定
Ctrl+Shift+P → Open User Settings (JSON) を開いて追記:
{
"http.proxy": "http://proxy.example.com:8080",
"http.proxyStrictSSL": false
}
http.proxyStrictSSL: false は自己署名証明書を使う社内プロキシで必要になる場合があります。
拡張機能のインストールがプロキシで詰まる場合
VSCode は起動時にシェルの環境変数を引き継ぐため、ターミナルで環境変数を設定してから起動すると解決することがあります:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
code .
Homebrew(macOS)
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
brew install <formula>
Homebrew はシェルの環境変数をそのまま参照するため、専用の設定コマンドはありません。
Go(go get)
go env -w GOPROXY=https://proxy.golang.org,direct
go env -w GONOSUMCHECK=*
# HTTP プロキシは環境変数で
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
Rust(cargo)
~/.cargo/config.toml に追記
[http]
proxy = "http://proxy.example.com:8080"
または環境変数:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
cargo install <crate>
SSH(git over SSH でプロキシを通す)
社内プロキシ経由で GitHub に SSH 接続したい場合は ~/.ssh/config に以下を追記します。
Host github.com
HostName github.com
User git
ProxyCommand nc -x proxy.example.com:8080 %h %p
nc(netcat)の代わりに connect-proxy を使う場合:
sudo apt install connect-proxy
Host github.com
ProxyCommand connect-proxy -H proxy.example.com:8080 %h %p
WSL2 でホスト側のプロキシを使う
WSL2 からホスト(Windows)のプロキシを使う場合、ホスト IP を動的に取得して設定します。
# ホスト IP の取得
HOST_IP=$(ip route show | grep -i default | awk '{ print $3}')
export http_proxy="http://${HOST_IP}:8080"
export https_proxy="http://${HOST_IP}:8080"
~/.bashrc や ~/.zshrc に書いておくと毎回自動設定されます。
まとめ
| ツール | 設定方法 | 設定ファイル |
|---|---|---|
| シェル全体 | 環境変数 http_proxy | ~/.bashrc / ~/.zshrc |
| git | git config --global http.proxy | ~/.gitconfig |
| apt | /etc/apt/apt.conf.d/01proxy | /etc/apt/apt.conf.d/ |
| npm / pnpm | npm config set proxy | ~/.npmrc |
| pip | pip.conf または環境変数 | ~/.config/pip/pip.conf |
| Docker | systemd drop-in | /etc/systemd/system/docker.service.d/ |
| VSCode | settings.json | User Settings |
| cargo | config.toml | ~/.cargo/config.toml |
基本方針:まず http_proxy / https_proxy 環境変数をシェルに設定し、それでも動かないツールだけ個別に設定するのが効率的です。
認証付きプロキシの場合はパスワードに特殊文字が含まれると URL エンコードが必要になるので注意してください(例:@ → %40)。