プロキシ(Proxy)設定されている会社でLinuxの構築を行った際に、色々なところにProxy設定を行わないといけなかったので備忘録としてメモ
基本形
プロキシの設定は
【認証がない場合】
http[s]://【ホスト名】:【ポート番号】
【認証がある場合】
http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
となる。(プロキシ環境によってhttpとhttpsが異なる)
ポート番号は8080が多いイメージが、ホスト名とポート番号は会社から指定されているものになるので確認必須。
【参考】Windowsの場合はプロキシ画面から確認できる
※自動構成スクリプトの場合、スクリプトのアドレスからファイルを取得し、Javaスクリプトを読み解く必要があるので注意


環境変数
exportコマンドを使うことでproxy設定が可能になる。
設定後、シェルを使用している間、yumやcurlが使えるようになる。(ログアウトすると消える)
no_proxyの設定を行わないと、localhostや127.0.0.1もproxy経由となるのでループバックしているサーバとかは思わぬ不具合が出る場合があるので注意
【認証不要】
export HTTP_PROXY=http[s]://【ホスト名】:【ポート番号】
export HTTPS_PROXY=http[s]://【ホスト名】:【ポート番号】
export FTP_PROXY=http[s]://【ホスト名】:【ポート番号】
export no_proxy="127.0.0.1,localhost"
【認証必要】
export HTTP_PROXY=http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
export HTTPS_PROXY=http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
export FTP_PROXY=http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
export no_proxy="127.0.0.1,localhost"
コマンドラインで実行
環境変数で設定すると、yumやcurlが使えるようになる。
ただし、認証必要なプロキシ設定の場合、historyコマンドに残るため扱いに注意が必要
.bashrcに記入
記入方法はコマンドラインと同じだが、~/.bashrcに入力することで同等の効果がある
ログイン時に有効な設定となるため、bashなどを実行したい場合は bash --loginなどログイン情報引き継ぐ必要あり
※ファイル記入後、再ログインしないと設定されないので注意
/etc/enviromentに記入
記入方法はコマンドラインと同じだが、「/etc/environment」に記入することでサーバ全体のproxyとなる。
bashで外につなぐ必要がある場合はこのファイルに記載したほうが無難
※全ユーザ適用となるので認証があるproxyは取り扱い注意
yum
CentOSやRedhatLinuxで使用されているyumを使用したい場合「/etc/yum.conf」に記載する。
proxy=http[s]://【ホスト名】:【ポート番号】/
proxy_username=【ユーザID】
proxy_password=【ユーザパスワード】
ユーザIDとユーザパスワードは分離している点注意
curl
環境変数で設定した場合、何もしなくてもよいが、curlだけ設定したい場合は「-x」を使用する。
curl -x http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】http://example.com
もしくは「~/.curlrc」に記載でもproxy設定ができる。
proxy-user = "【ユーザID】:【ユーザパスワード】"
proxy = "http[s]://【ホスト名】:【ポート番号】"
wget
環境変数で設定した場合、何もしなくてもよいが、「.wgetrc」と「/etc/wgetrc」に記載する方法がある。
どちらも記載方法は同じ
#https_proxy = http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
#http_proxy = http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
#ftp_proxy = http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
npm
Linuxだけではないが、Node.js(npm)の際もリポジトリからデータ取得するのにproxy設定が必要になる。
3つ目のregistryはSSL通信でリポジトリ取得に失敗した場合に設定する。
<proxyを設定したい場合>
【ユーザ毎の設定】
npm config set proxy http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
npm config set https-proxy http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
npm config set registry http://registry.npmjs.org/
【グローバル】
npm -g config set proxy http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
npm -g config set https-proxy http[s]://【ユーザID】:【ユーザパスワード】@【ホスト名】:【ポート番号】
npm -g config set registry http://registry.npmjs.org/
<proxyを削除したい場合>
【ユーザ】
npm config delete proxy
npm config delete https-proxy
npm config delete registry
【グローバル】
npm -g config delete proxy
npm -g config delete https-proxy
npm -g config delete registry