「[[.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]