Ubuntuのproxy設定まとめ
プロキシ設定が必要
野良開発ならあまりプロキシとか意識しないけど、職場とかではプロキシ通さないとLANを越えられないため、コマンドとかでオプションをつけないとダメな場面が出てくる。作業中はあまり気にしないけど、パッケージの導入時とかにはまる。毎回調べるのもアレなので、まとめておくことにした。
環境はUbuntu14.04。とはいえUnityがスペック的にストレスがマッハになるので普段使ってるのはXubuntu14.04。軽くてミニマルで気に入っている。
環境変数
環境変数として設定する。大体これでやってくれる。~/.vimrcとかに書いておけばいい。
export http_proxy=http://your.proxy.address:8080 export https_proxy=http://your.proxy.address:8080
apt
/etc/apt/apt.confにプロキシ設定を書き込む。なければファイル作成。セミコロンを付け忘れることが多い。
Acquire::ftp::proxy "ftp://your.proxy.address:8080/"; Acquire::http::proxy "http://your.proxy.address:8080/"; Acquire::https::proxy "https://your.proxy.address:8080/";
ppa
add-apt-repositoryコマンド実行時に設定する。aptにproxy設定しても環境変数に設定してもppaの追加時にはproxyが反映されない。sudoするときに引き継がれないらしいので、オプションとして-Eを追加したらいい。
sudo -E add-apt-repository ppa:git-core/ppa
R
パッケージのインストール前に設定しておく。RStudioではできなくてCLIのRではできたりする。切り替えればいいので、特段原因追及はしない
Sys.setenv(http_proxy="http://user:pass@proxy.dom.com:8080/")
pip
pip installコマンド実行時に設定する。
pip --proxy=http://your.proxy.address:8080 install package
cntlm
いわゆるリバースプロキシ。ネットワークがNTLMv2認証とかだと上記のプロキシ設定とかでは簡単に通してくれない。ということでCNTLMを使って通してもらう。
sudo apt install cntlm
導入前なのにapt使が使える矛盾があるが、そういう時はdebを使って入れてもいい。
Cntlm: Fast NTLM Authentication Proxy in C
上記の公式サイトからdebを持ってきてインストールする。
あとは設定。/etc/cntlm.conf
Username yourname Domain yourdomain Password yourpassword
これを書いてテスト実行
cntlm -I -M http://test.com
うまく認証してくれれば下記文字列を返してくれる
Config profile 1/11... OK (HTTP code: 200) Config profile 2/11... OK (HTTP code: 200) ----------------------------[ Profile 0 ]------ Auth NTLMv2 PassNTLMv2 ?????????????????????????? ------------------------------------------------
下2行(Auth NTLMv2とPassNTLMv2の行)をコピーして/etc/cntlm.confに貼り付ける。後にcntlmを再起動
sudo /etc/init.d/cntlm restart
これでcntlmの設定は完了。これまで上げてきたプロキシの設定値としてhttp://localhost:3128を指定することで、プロキシを超えてくれる。