2017年5月13日土曜日

Linuxでプロキシ経由でインターネット通信をする (プロキシがある環境化でyumを使う)

ちょっとした小ネタ。

プロキシがある環境でyumを使ったら、なかなか成功しなかったので、備忘録として記載する。OSはCentOS 7.3となる。ちなみに、この手順はapt-getを使うLinuxディストリビューション(Ubuntuなど)でも同様に動作する。

環境変数を設定する

まずは失敗するパターン。

# yum check-update
------------------------------
読み込んだプラグイン:fastestmirror
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#7 - "Failed to connect to 2001:4178:5:200::10: ネットワークに届きません"

~(以下略)~
------------------------------

「ネットワークに届きません」というエラーが出て失敗している。IPv6のアドレスが表示されているので、IPv4ではなくてIPv6のアドレスで接続しようとしているのかと疑ったが、そうではなくてプロキシ設定をしていないことが問題だった。

というわけで、以下のように環境変数を設定する。

# export http_proxy="http://<プロキシのIPアドレス>:<プロキシのポート>/"
# export https_proxy="http://<プロキシのIPアドレス>:<プロキシのポート>/"
# export ftp_proxy="http://<プロキシのIPアドレス>:<プロキシのポート>/"

# export ←確認コマンド
------------------------------
declare -x ftp_proxy="http://<プロキシのIPアドレス>:<プロキシのポート>/"
declare -x http_proxy="http://<プロキシのIPアドレス>:<プロキシのポート>/"
declare -x https_proxy="http://<プロキシのIPアドレス>:<プロキシのポート>/"
------------------------------

再度yumを実行すると、以下の通り成功した。

# yum check-update
------------------------------
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.usonyx.net
 * extras: download.nus.edu.sg
 * updates: centos.usonyx.net
base/7/x86_64/primary_db                                   | 5.6 MB   00:00  

NetworkManager.x86_64                     1:1.4.0-19.el7_3               updates
NetworkManager-libnm.x86_64               1:1.4.0-19.el7_3               updates

~(中略)~

wpa_supplicant.x86_64                     1:2.0-21.el7_3                 updates
xfsprogs.x86_64                           4.5.0-9.el7_3                  updates
------------------------------