2
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?

【永久保存版】もう迷わない!ツールごとの Web プロキシ設定

Last updated at Posted at 2024-03-20

プロキシ設定はつらい。

環境変数か、設定ファイルか、コマンドラインの引数指定か、それ以外か。
一般にコマンドライン引数、設定ファイル、環境変数の順に設定が有効だが、本当か。
環境変数は大文字・小文字どちらなのか。
...など、ツールごとに違うし、公式のドキュメントにたどり着きにくいし、つらい。

昨今、 HTTP プロキシが必須なことはまれで、だいたい HTTPS プロキシを設定すれば十分そう。

ツールごとの HTTPS プロキシ設定をまとめておく。

プロキシ設定

Linux OSパッケージ管理

apt

環境変数か、設定ファイルで設定を書く。

設定ファイルの場合、 /etc/apt/apt.conf.d/proxy.conf に設定を加える。

Acquire::https::Proxy "http://proxy.example.com:3128";

dnf

環境変数か、設定ファイルで設定を書く。

設定ファイルの場合、 /etc/dnf/dnf.conf に設定を加える。

proxy http://proxy.example.com:3128

yum

dnf と同様そうなので省略。

apk

環境変数 https_proxy を設定する。

Microsoft Windows

TODO: netsh.exe でプロキシを設定する。

PS > Get-ComputerInfo | select WindowsProductName, OsVersion

WindowsProductName OsVersion
------------------ ---------
Windows 10 Home    10.0.22631
PS > netsh winhttp set proxy /?

使用法:  set proxy [proxy-server=]<サーバー名> [bypass-list=]<ホスト一覧>

パラメーター:

  タグ             値
  proxy-server  -  http または https プロトコルに使用するプロキシ サーバー
  bypass-list   -  プロキシをバイパスすることで表示するサイトの
                   一覧 (短い名前のホストをすべてバイパスする場合は
                   "<local>" を使用)

例:

  set proxy myproxy
  set proxy myproxy:80 "<local>;bar"
  set proxy proxy-server="http=myproxy;https=sproxy:88" bypass-list="*.foo.com"

コマンドライン・ツール

curl

引数で指定するか、環境変数を設定する。

環境変数の場合、次のように定義する。

export https_proxy="http://proxy.example.com:3128"

環境変数の名前は大文字 HTTPS_PROXY も有効だが、小文字 https_proxy が良い。

wget

環境変数か、設定ファイルで設定を書く。

設定ファイルの場合、 $HOME/.wgetrc に設定を加える。

https_proxy = http://proxy.example.com:3128/

git

git config 設定か、環境変数を設定する。

環境変数の場合、 curl 同様に設定する。
次のように定義する。

export https_proxy="http://proxy.example.com:3128"

Docker

dockerd デーモン

設定ファイル daemon.json (ただし Docker Engine 23.0 以降)か、環境変数で設定する。

環境変数で設定する場合、 systemd で管理される Linux なら systemctl edit docker.service で設定する。

systemctl edit docker.service
[Service]
Environment="HTTPS_PROXY=http://proxy.example.com:3128"

環境変数の名前は大文字や小文字を問わない。

Docker クライアント, docker コマンド

TODO

Node.js

npm

npm config 設定か、環境変数で設定する。

設定の場合、次のように設定する。

npm config set https-proxy "http://proxy.example.com:3128"

# または

npm -g config set https-proxy "http://proxy.example.com:3128"

環境変数の場合、 curl 同様に設定する。
次のように定義する。

export https_proxy="http://proxy.example.com:3128"

Python3

pip コマンド

引数で指定するか、設定ファイルか、環境変数などで設定する。

環境変数の場合、次のように定義する。

export https_proxy="http://proxy.example.com:3128"

環境変数の名前は小文字が有効である。大文字が有効かわからない。

urllib3 パッケージ

少なくともコードや、環境変数で設定できる。

export HTTPS_PROXY="http://proxy.example.com:3128"

環境変数の名前は大文字が有効である。小文字が有効かわからない。

requests パッケージ

少なくともコードや、環境変数で設定できる。

export https_proxy="http://proxy.example.com:3128"

環境変数の名前は大文字や小文字を問わない。

  • 参考資料
    • Proxies
      • https://requests.readthedocs.io/en/latest/user/advanced/#proxies
        • When the proxies configuration is not overridden per request as shown above, Requests relies on the proxy configuration defined by standard environment variables http_proxy, https_proxy, no_proxy, and all_proxy. Uppercase variants of these variables are also supported.

主な変更履歴

  • 2024-03-20: Microsoft Windows を加えた。

TODO

  • .curlrc
  • TODO

さいごに

加筆したいものがあればコメントにどうぞ!

2
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
2
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?