「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Linuxの各種 手順]]

*目次 [#ea5ed371]
#contents

*概要 [#ab21cc80]
Linux環境でプロキシを設定する方法。

**設定例 [#d9ce56e7]

***通常プロキシ [#xfae2fc5]
プロキシURLの設定方法

-http://proxy.example.com:8080
-http://<HOSTNAME>:<PORTNUMBER>

***認証プロキシ [#qa27a84b]
プロキシURLの設定方法

-http://userid:password@proxy.example.com:8080
-http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>

※ <USERID> や <PASSWORD> に @ や : などの記号が含まれる場合は、URLエンコードが必要。

***SSLフォワード・プロキシ [#n7e5e9a9]
-SSLフォワード・プロキシが配布する証明書を指定する必要がある。
-復号化とパススルーが混在する場合は、既存証明書に証明書をバンドルする必要がある。

-ディストリビューション毎に、CA証明書バンドルのファイルパスがある。
--CA証明書バンドル(.pem)を管理ツールが証明書ディレクトリ内の個別証明書から生成
--証明書ファイル(.crt)を所定の証明書ディレクトリに配置し、管理ツールを実行

***Squidプロキシ [#mea8ebd0]
-認証機能を持った、Webプロキシキャッシュサーバ
-認証プロキシを通常のプロシキと同様の設定でバイパスできる。
-[[SSLフォワード・プロキシ>#n7e5e9a9]]としての機能もある。

**インターネット・オプション的な [#laecfd41]

***macOS [#z2e174f8]
-プロキシ~
“システム環境設定” → “ネットワーク” → ネットワークデバイス → “詳細...” → “プロキシ” → “構成するプロトコルを選択:”

-証明書ストア~
システム全体またはユーザーレベルでの証明書を管理するために、システム キーチェーン、ログイン キーチェーン、など複数のキーチェーンがある。。

***Linuxのデスクトップ環境 [#s4ee1495]
-プロキシ
--GNOME:[設定] → [ネットワーク] → [ネットワークプロキシ]
--KDE:[システム設定] → [ネットワーク] → [接続] → [プロキシ]

-証明書ストア
--GNOME Keyring(gnome-keyring-daemon)
--KDE Wallet Manager(KWallet)

>※ システム全体のCA証明書バンドルとは別のユーザー向けの証明書ストア

**環境変数で設定 [#y2f549fb]
シェル単位・ユーザー単位でプロキシ設定する最も一般的な方法

***一時的に設定(シェル内のみ有効) [#k12741b9]
 export http_proxy=http://proxy.example.com:8080
 export https_proxy=http://proxy.example.com:8080
 export ftp_proxy=http://proxy.example.com:8080
 export no_proxy=localhost,127.0.0.1,.example.com

***永続的に設定(ログイン時に反映) [#g76469e8]
-bash(~/.bashrc または ~/.bash_profile) に記述:
 echo 'export http_proxy=http://proxy.example.com:8080' >> ~/.bashrc
 echo 'export https_proxy=http://proxy.example.com:8080' >> ~/.bashrc
 echo 'export no_proxy=localhost,127.0.0.1,.example.com' >> ~/.bashrc

-その後、反映:
 source ~/.bashrc

*詳細 [#xdb7058d]
以下は、ツールごとの話。

**シェル [#wd5aaea0]

***Bourne Shell (sh) 系 [#d838af95]
sh や bash、ksh など。
 export http_proxy="http://proxy.example.com:8080"
 export https_proxy=$http_proxy

***csh 系 [#z4ce4f3a]
csh や tcshなど、レガシー環境の場合
 setenv http_proxy  "http://proxy.example.com:8080"
 setenv https_proxy $http_proxy

**パッケージ・マネージャ [#cbe64ab2]

***APT(Debian/Ubuntu) [#q511a3e3]
-メイン設定ファイルを使用する例

--*.conf
 sudo vi /etc/apt/apt.conf

--設定
 Acquire::http::proxy "http://proxy.example.com:8080";
 Acquire::https::proxy "http://proxy.example.com:8080";

-設定ディレクトリ内の個別ファイルを使用する例
 sudo tee /etc/apt/apt.conf.d/95proxies <<EOF
 Acquire::http::proxy "http://proxy.example.com:8080";
 Acquire::https::proxy "http://proxy.example.com:8080";

***YUM(RHEL/CentOS 7系まで) [#i7e0642d]
-*.conf
 sudo vi /etc/yum.conf

-設定
 proxy=http://proxy.example.com:8080
 proxy_username=<USERID>
 proxy_password=<PASSWORD>

**Web ブラウザ [#g9f648a7]
Webブラウザの種類やデスクトップ環境(GNOME, KDEなど)によって異なる。

***CLIブラウザ [#q74e563c]
(w3m, lynx, curl, wget)

-基本的に、環境変数を使用する。
-ツール毎にI/Fを持っていることも。

***GUIブラウザ [#y819218f]
(Firefox, Chromium, Chrome)

-FirefoxはOSの環境変数を参照しないためGUIから手動設定が必要

-Chrome/Chromium
--プロキシ設定をシステム設定(GNOMEやKDEの設定)に依存
--Chrome のコマンドラインで直接指定(プロキシ自動設定など)

**その他のツール [#h84571cd]
個別に調査すべし。

***環境変数を使用 [#g5f09279]
基本的に、環境変数を使用するが、ツール毎に専用の設定I/Fがあるものもある。

-CLI:
--curl、wget、git
--pip、npm / yarn
--docker CLI、AWS CLI、Azure CLI、Google Cloud SDK

-プログラミング言語の標準ライブラリ
--Python:requests, urllib
--Node.js:http / https
--Java:JVM
--Ruby:open-uri
--Go:net/http

***独立した証明書バンドルを使用 [#r4664a57]
OSの証明書ストアとは別のバンドルを使用するものもある。

-[[Python(requests / urllib3):certifi>Python#y9ac7218]]
-Node.js:Node.js 組み込みの CA ストア
-Java (JVM系全般):cacerts(JKS形式のキーストア)
-Rust(reqwest等):独自のバンドル or rustls のビルトイン証明書
-Go (net/http):Goランタイムに依存

*参考 [#vb3bf87f]

**[[Windowsの場合>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95]] [#j3970de8]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS