Linuxプロキシ設定完全早見表(apt, yum, dnf, npm, wget, curl, git, k8s/containerd, OS環境変数)

プロキシ環境下でLinux環境を構築する際、ツールごとにプロキシの設定方法が異なり、毎回調査に時間を奪われるため、Linux環境で頻繁に利用する主要10ツールのプロキシ設定方法(認証付き)をチートシート(早見表)としてまとめました。

目次

プロキシ設定の迷いをなくす

本記事では、Linux環境における主要なアプリケーションのプロキシ設定方法を一元化し、設定漏れや構文エラーによる時間の浪費を防ぐことを主眼とします。特に、開発現場で頻出するツールに焦点を当て、迷うことなく設定作業を完了できるリファレンスを提供します。開発者がインフラ設定ではなく、本来の業務である設計や実装に集中できる環境を整えます。

主要10ツールの通信

OS全体の環境変数から、パッケージマネージャ(apt/apt-get, yum, dnf, npm)、ダウンロードツール(wget, curl)、バージョン管理(git)、およびコンテナオーケストレーション(Kubernetes/containerd)まで、計10種類の主要ツールにおける通信設定を対象とします。

プロキシ設定を困難にする主な要因

プロキシ設定を困難にする主な要因は以下の2点です。
第一に、設定ファイルがシステム全体(/etc配下)に適用されるものと、ユーザー個別(ホームディレクトリ配下)に適用されるものが混在しており、さらに書式(大文字・小文字の区別やイコールの有無)が異なる点です。
第二に、認証付きプロキシの場合、パスワードに「@」や「:」といった特殊文字が含まれると、URLの解析エラーを引き起こす点です。これらはパーセントエンコーディング(例:@を%40に変換)を用いてエスケープ処理を行う必要があります。

Linuxプロキシ設定チートシート

認証付きプロキシ(例:[http://user:pass@proxy.example.com:8080/](http://user:pass@proxy.example.com:8080/))を前提とした設定の早見表です。Ubuntu 22.04、24.04、26.04のLTS間において、本設定内容は基本的に共通して利用可能です。Ubuntu LTSごとの差異に関する注記

OS環境変数

システム全体に適用される基本的な環境変数です。
設定先: /etc/environment

http_proxy="http://user:pass@proxy.example.com:8080/"
https_proxy="http://user:pass@proxy.example.com:8080/"
no_proxy="localhost,127.0.0.1,.example.com"

apt / apt-get

Ubuntu等のDebian系パッケージマネージャの設定です。
設定先: /etc/apt/apt.conf.d/proxy.conf

Acquire::http::Proxy "http://user:pass@proxy.example.com:8080/";
Acquire::https::Proxy "http://user:pass@proxy.example.com:8080/";

yum / dnf

Red Hat系OSで利用するパッケージマネージャの設定です。
設定先: /etc/yum.conf または /etc/dnf/dnf.conf

proxy=http://proxy.example.com:8080/
proxy_username=user
proxy_password=pass

npm

Node.jsのパッケージマネージャの設定です。コマンドから実行し、~/.npmrc に保存されます。
コマンド実行:

npm config set proxy http://user:pass@proxy.example.com:8080/
npm config set https-proxy http://user:pass@proxy.example.com:8080/

wget

ファイルのダウンロードツールの設定です。
設定先: ~/.wgetrc または /etc/wgetrc

use_proxy=on
http_proxy=http://user:pass@proxy.example.com:8080/
https_proxy=http://user:pass@proxy.example.com:8080/

curl

API通信やファイル取得に利用するツールの設定です。
設定先: ~/.curlrc

proxy="http://user:pass@proxy.example.com:8080/"

git

バージョン管理ツールの設定です。グローバルに適用します。
コマンド実行:

git config --global http.proxy http://user:pass@proxy.example.com:8080/
git config --global https.proxy http://user:pass@proxy.example.com:8080/

k8s (containerd)

Kubernetes等で利用されるコンテナランタイムの設定です。Systemd経由で指定します。
設定先: /etc/systemd/system/containerd.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://user:pass@proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://user:pass@proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,10.0.0.0/8"

設定後、反映させるために以下のコマンドを実行してください。

systemctl daemon-reload
systemctl restart containerd

Ubuntu LTSごとの差異に関する注記

Ubuntu 22.04から最新の26.04に至るまで、上記ツール群におけるプロキシ設定の基本構文に変更はありません。ただし、OSのデフォルトネットワーク管理ツールがNetplanへ完全に移行している点や、Kubernetes環境における標準ランタイムがDockerからcontainerdへ完全に置き換わっている点に留意してください。そのため、コンテナ通信の不具合時は、OSの環境変数ではなく、Systemd経由でのcontainerdのプロキシ設定を優先的に確認する必要があります。

外部通信の確実な疎通確認

各ツールの設定完了後は、通信の成否を検証します。
例えばcurlを使用する場合、curl -I [https://google.com](https://google.com) を実行し、HTTPステータスコード「200 OK」が返却されることを確認します。aptの場合は apt update を実行し、リポジトリ情報の取得に成功すれば設定は正しく反映されています。コンテナ環境であれば、crictl pull docker.io/library/alpine 等でイメージ取得をテストします。

まとめ

社内プロキシによる通信遮断を防ぎ、開発環境構築を円滑に進めるため、主要10ツールの通信設定を一元化しました。ツールごとの設定ファイルの分散や、認証情報の特殊文字による解析エラーが主な課題です。これに対し、OS環境変数からapt、npm、k8s等に至るまでの正確な設定構文を早見表として整理しました。結果として、設定作業の迷いを排除し、外部ネットワークとの安定した通信を即座に確立することが可能です。