/var/log

技術ネタ多めで思ったことを書きます。※内容は個人の発言であり、所属する組織を代表するものではありません。

Proxy監獄からの脱出

社内等でプロキシ環境下のPCからyumやGitを利用するための設定方法を調べたので備忘。
利用は各自、自己責任でお願いします。

単純なプロキシ配下の場合

外部に接続するために以下の経路となっている場合の設定方法です。

PC
↓↓↓
Proxy
↓↓↓
インターネット

bash環境変数

この設定だけでもyumpingなどは問題なく利用できる。

export http_proxy="http://[ユーザID]:[パスワード]@[プロキシサーバIP/NAME]:[ポート番号]"
export https_proxy="http://[ユーザID]:[パスワード]@[プロキシサーバIP/NAME]:[ポート番号]"
export ftp_proxy="http://[ユーザID]:[パスワード]@[プロキシサーバIP/NAME]:[ポート番号]"

Git関係の設定

Gitの方は上記の環境変数だけでは駄目だった。
追加で以下を設定する。

git config --global http.proxy http://[ユーザID]:[パスワード]@[プロキシサーバIP/NAME]:[ポート番号]
git config --global https.proxy http://[ユーザID]:[パスワード]@[プロキシサーバIP/NAME]:[ポート番号]
git config --global url.https://.insteadOf git://

pipの設定

proxy経由で pandas をインストールする場合はこんな感じです。

pip install pandas --proxy "http://[ユーザID]:[パスワード]@[プロキシサーバIP/NAME]:[ポート番号]"

多段プロキシでインターネットに接続する場合

開発環境などで直接Proxyにつなぐことすら叶わない場合は踏み台を用意する。

VM
↓↓↓
Proxyにアクセスできる端末 ※squid等を動かしておく
↓↓↓
Proxy
↓↓↓
インターネット

squidの設定例

squidにこだわる必要はないですが、簡単なので肝になる設定だけ記載しておきます。
待受ポートの設定の設定はこんな感じ。
(デフォルト設定のまま)
↓↓↓

http_port 3128

Proxyへの転送設定はこんな感じ。 ↓↓↓

cache_peer [プロキシサーバIP/NAME] parent [ポート番号] 0 no-query login=[ユーザID]:[パスワード]

bash環境変数

この設定だけでもyumpingなどは問題なく利用できる。

export http_proxy="http://[squidが稼働している端末のIP/NAME]:[squidの待受ポート番号]"
export https_proxy="http://[squidが稼働している端末のIP/NAME]:[squidの待受ポート番号]"
export ftp_proxy="http://[squidが稼働している端末のIP/NAME]:[squidの待受ポート番号]"

まとめ

多段プロキシの設定が最初はよく分からなかったですが、squidを使えば簡単に設定できるので参考にしてみて下さい。