LoginSignup
500
529

More than 3 years have passed since last update.

日々プロキシで苦しむ人の為のプロキシ設定まとめ

Last updated at Posted at 2015-06-18

はじめに

  1. カタカタカタカタ
  2. できたできた!さぁ動かすぞっていうときのUnknownHost・・・・
  3. またか・・・とため息をつきながらぐぐる
  4. 設定する
  5. 1へ戻る

プロキシが憎い!

だけど、頑張ってくぐらないといけない!そんなあなたの為のプロキシ設定まとめです。私が良く使うものを随時更新していきます。
追加して欲しいものがあればコメントいただければ追加しますので編集リクエストください。

尚以下のような記述はご自分の環境に合わせて変更をお願いします。

http[s]://PROXY_HOST:PROXY_PORT

環境

  • Windows,CentOSを前提としています。
  • Ubuntuは会社ではあまり使わないので・・・

ブラウザ

書かなくてもいい気がしたが一応書いておく。社内サーバ系は除外リストに入れとこ。

IE

  • インターネットオプション ⇒ 接続 ⇒ LANの設定

Chrome

  • Chromeのプロキシ設定はIEの設定を見ます。Chromeから開く場合は以下の手順。
  • 設定 ⇒ 画面下部の「詳細設定を表示」 ⇒ プロキシ設定の変更

  • プロキシのせいでSlideShareが見れない人は、SlideShareViewerが必須です。

FireFox

  • 独自でプロキシ設定を持っているので設定しておく。
  • ツール ⇒ オプション ⇒ 詳細タブ ⇒ ネットワーク ⇒ 接続設定

Microsoft Store

管理者権限でコマンドプロンプトを開く

IEのプロキシ設定を反映する

netsh winhttp import proxy source=ie

設定されているかを確認する

netsh winhttp show proxy

構成管理

Git

  • gitコマンドで追加(~/.gitconfigに追記される)
$ git config --global http.proxy http://PROXY_HOST:PROXY_PORT
$ git config --global https.proxy http://PROXY_HOST:PROXY_PORT
  • 環境変数で追加
$ export http_proxy="http://PROXY_HOST:PROXY_PORT"
$ export https_proxy="http://PROXY_HOST:PROXY_PORT" 

SVN(Subversion)

コマンド

  • Jenkins設定するときによく使うんだよね。
cat ~/.subversion/servers
[global]
http-proxy-exception = NO_PROXY_HOST
http-proxy-host = PROXY_HOST
http-proxy-port = PROXY_PORT

Tortoise Svn

  1. settingの画面で、左タブ⇒Networkを開く
  2. Enable Proxy Serverにチェックをつけてプロキシの設定を行う。

CI

Jenkins

 Jenkinsの管理 -> プラグインの管理 -> 高度な設定

でもいいし、Javaの起動引数に以下を追加してもOK

 -Dhttp.proxyHost=PROXY_HOST -Dhttp.proxyPort=PROXY_PORT

コマンド

curl

  • コマンド
curl -x PROXY_HOST:PROXY_PORT -L url
  • 設定ファイル
echo `proxy = "http[s]://PROXY_HOST:PROXY_PORT/"' >> ~/.curlrc

wget

  • 環境変数
export http_proxy="http[s]://PROXY_HOST:PROXY_PORT/"
export https_proxy="http[s]://PROXY_HOST:PROXY_PORT/"
export ftp_proxy="http[s]://PROXY_HOST:PROXY_PORT/"
  • 設定ファイル(/etc/wgetrc, ~/.wgetrc)
proxy_user=PROXY_USER
proxy_password=PROXY_PASSWORD
http_proxy=http[s]://PROXY_HOST:PROXY_PORT/
https_proxy=http[s]://PROXY_HOST:PROXY_PORT/

yum

  • 環境変数
export http_proxy="http[s]://PROXY_HOST:PROXY_PORT/"
export https_proxy="http[s]://PROXY_HOST:PROXY_PORT/"
  • 設定ファイル(/etc/yum.conf)
/etc/yum.conf
proxy=http[s]://PROXY_HOST:PROXY_PORT/
proxy_username=[UserId]
proxy_password=[Password]

rpm

  • 環境変数
export http_proxy=http[s]://PROXY_HOST:PROXY_PORT/
  • コマンドライン
rpm --httpproxy PROXY_HOST--httpport PROXY_PORT

Powershell

Invoke-WebRequest

  • -Proxyを利用する(AnsibleでWinRMを利用する時に利用するスクリプトをダウンロードする場合はこんな感じ)
Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/Con
figureRemotingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1 -Proxy http://PROXY_HOST:PROXY_PORT

python

pip

pip install モジュール名 --proxy=http://PROXY_HOST:PROXY_PORT

boto

  • botoはAWSにアクセスするためのモジュールです。
~/.boto
[Boto]
debug = 0
num_retries = 10

proxy = PROXY_HOST
proxy_port = PROXY_PORT
proxy_user = foo
proxy_pass = bar

Ruby

gem

gem install パッケージ名 -r -p http[s]://PROXY_HOST:PROXY_PORT/

bundler, rbenv

export http_proxy=http[s]://PROXY_HOST:PROXY_PORT/

Java

Eclipse

  • ウィンドウ ⇒ 設定 ⇒ 一般の下のネットワーク接続
  • 「ネイティブ」はIEの設定を引っ張ってきています。それに対しマニュアルは自分で設定を行うモードです。

HttpClient4.x系

  • 3と4で違うあたりが憎くてしょうがないですが、、、HttpClientに設定してあげます。

ソースで指定

proxy.java
        HttpClient httpClient = HttpClientBuilder
                .create()
                .setDefaultRequestConfig(requestConfig)
                .setDefaultHeaders(headers)
                .setProxy(new HttpHost("PROXY_HOST", PROXY_PORT))
                .build();

VMパラメータで指定

  • VMパラメータでも設定できますがHttpClientに.useSystemProperties()を設定する必要があります。
-Dhttp[s].proxyHost=PROXY_HOST -Dhttp[s].proxyPort=PROXY_PORT
httpclient.java
        HttpClient httpClient = HttpClientBuilder.create()
                .setDefaultRequestConfig(requestConfig)
                .setDefaultHeaders(headers)
                .useSystemProperties()
                .build();

Gradle

  • 環境変数では設定できないようです。また、UserとPasswordは使わなくてもプロパティとしては必要な模様
gradle/gradle.properties
systemProp.http.proxyHost=myproxy.co.jp
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=
systemProp.http.proxyPassword=
systemProp.https.proxyHost=myproxy.co.jp
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=
systemProp.https.proxyPassword=

Maven

Maven

  • settings.xmlに記載する
  • archivaなどが社内にいる場合はnonProxyHostsの設定を忘れずに。
settings.xml
<settings>
  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>PROXY_HOST</host>
      <port>PROXY_PORT</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

MavenWrapper(mvnw)

export MAVEN_OPTS=-Dhttp.proxyHost=PROXY_HOST -Dhttp.proxyPort=PROXY_PORT -Dhttps.proxyHost=PROXY_HOST  -Dhttps.proxyPort=PROXY_PORT

Go

go get

export http_proxy=http[s]://PROXY_HOST:PROXY_PORT
export https_proxy=http[s]://PROXY_HOST:PROXY_PORT

Apache Archiva

1.左メニュー[NetworkProxies]を選択
2.ID,Protocol,Host,Portなどの情報を登録してSaveする。
3.左メニュー[ProxyConnectors]を選択
4.外部リポジトリに接続するリポジトリで[Edit]を選択 例:central
5.NetworkProxyに先ほど登録したProxyのIDを選択してSaveする。

AWS(SDK for Java)

  • ClientConfigurationのインスタンスを作成してAmazonEC2のコンストラクタに渡してあげるだけです。
  • EC2に限らずSQSなどなど他のクライアントクラスでも同様
clientconfiguration.java
        AWSCredentialsProvider provider = new ClasspathPropertiesFileCredentialsProvider();

        ClientConfiguration cc = new ClientConfiguration();
        cc.setProxyHost("PROXY_HOST");
        cc.setProxyPort(PROXY_PORT);

        AmazonSQS sqs = new AmazonSQSClient(provider, cc);
        sqs.setRegion(Region.getRegion(Regions.AP_NORTHEAST_1));
        return sqs;

SoftLayer(Java)

  • 内部ではURLConnectionを使っているので、Javaのシステムプロパティに設定してあげればプロキシ経由できます。
proxy.java
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", proxyHost);
System.setProperty("proxyPort", proxyPort);

監視

DataDog Agent

  • 設定ファイル
/etc/dd-agent/datadog.conf
proxy_host: PROXY_HOST
proxy_port: PROXY_PORT
proxy_user: 
proxy_password: 

mackerel-agent

  • 設定ファイル
/etc/mackerel-agent/mackerel-agent.conf
http_proxy = "http://PROXY_HOST:PROXY_PORT"
  • 環境変数
HTTP_PROXY=http://PROXY_HOST:PROXY_PORT

その他環境

Vagrant

vagrant upするときの通信(windowsの場合)

set http_proxy=PROXY_HOST:PROXY_PORT
set https_proxy=PROXY_HOST:PROXY_PORT

ゲストOS上のProxyを自動設定

プロキシ設定対象はこちら

generic http_proxy etc. environment variables that many programs support
default proxy configuration for all Chef provisioners
proxy configuration for Apt
proxy configuration for Docker
proxy configuration for Git
proxy configuration for npm
proxy configuration for PEAR
proxy configuration for Subversion
proxy configuration for Yum
simple proxy configuration for Windows

1. vagrant proxyconfを利用します。

このプラグインはVagrant管理下のOS起動時にプロキシを自動的に設定してくれるプラグインです。たとえばyum利用時にいちいちproxyの設定をする必要が無くなります。

vagrant plugin install vagrant-proxyconf

2. プラグインがインストールできたことを確認しましょう。

$ vagrant plugin list
vagrant-proxyconf (1.5.0)

3. Vagrantfileに設定を追加します。

Vagrant.configure(2) do |config|
・・・・・
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http = "http://PROXY_URL:PROXY_PORT/"
    config.proxy.https = "http://PROXY_URL:PROXY_PORT/"
    config.proxy.no_proxy = "localhost,127.0.0.1,192.168."
  end
end

Azure

  • azure cli
# export https_proxy=http[s]://PROXY_HOST:PROXY_PORT/
# export http_proxy=http[s]://PROXY_HOST:PROXY_PORT/

VirtualBox

  • ファイル - 環境設定 - プロキシで設定

Docker

Docker(CentOS7,Docker1.9.1で確認)

  • docker pull,searchするには外部と接続する必要がありますので設定してみます。公式ドキュメントはこちら 1.proxy用の設定ファイルを作る(/etc/systemd/system/docker.service.dは新たに作る)
/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http[s]://PROXY_HOST:PROXY_PORT/" "HTTPS_PROXY=http[s]://PROXY_HOST:PROXY_PORT/"

2.変更を反映する

sudo systemctl daemon-reload

3.反映を確認する

# systemctl show --property=Environment docker
Environment=GOTRACEBACK=crash HTTP_PROXY=http[s]://PROXY_HOST:PROXY_PORT/ HTTPS_PROXY=http[s]://PROXY_HOST:PROXY_PORT/

4.反映する

systemctl restart docker

Docker-machine

  • Docker-machineをcreateするときに利用します。
docker-machine create -d virtualbox --engine-env HTTP_PROXY=http[s]://PROXY_HOST:PROXY_PORT/ --engine-env HTTPS_PROXY=http[s]://PROXY_HOST:PROXY_PORT/ --engine-env NO_PROXY=127.0.0.1 \
    docker

Dockerfile

  • Dockerfile内でyumなどを行う場合、ENVで環境変数を定義しても良いのですが・・・
ENV http_proxy http[s]://PROXY_HOST:PROXY_PORT/
  • ARGを使うとDockerfileがproxyに依存しなくなります。予め以下のARGは定義済です。
HTTP_PROXY
http_proxy
HTTPS_PROXY
https_proxy
FTP_PROXY
ftp_proxy
NO_PROXY
no_proxy
  • docker buildするときに--build-argsを設定してあげましょう
docker build --build-arg HTTP_PROXY=http[s]://PROXY_HOST:PROXY_PORT --build-arg HTTPS_PROXY=http[s]://PROXY_HOST:PROXY_PORT -t uzresk/xxxx:ver1.1 .

ElasticSearch

  • pluginのインストール時にproxyを設定します。
  • elasticsearch-headプラグインをインストールする場合は以下のようなコマンドになります。
/usr/share/elasticsearch/bin/plugin -DproxyPort=PROXY_PORT -DproxyHost=PROXY_HOST -i
nstall mobz/elasticsearch-head

cygwin

  • setup.exeを進んでいくとプロキシ設定する画面がでてくるのでそこに入力
500
529
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
500
529