はじめに
- カタカタカタカタ
- できたできた!さぁ動かすぞっていうときのUnknownHost・・・・
- またか・・・とため息をつきながらぐぐる
- 設定する
- 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
- settingの画面で、左タブ⇒Networkを開く
- 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)
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]
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に設定してあげます。
ソースで指定
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 httpClient = HttpClientBuilder.create()
.setDefaultRequestConfig(requestConfig)
.setDefaultHeaders(headers)
.useSystemProperties()
.build();
Gradle
- 環境変数では設定できないようです。また、UserとPasswordは使わなくてもプロパティとしては必要な模様
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>
<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などなど他のクライアントクラスでも同様
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のシステムプロパティに設定してあげればプロキシ経由できます。
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", proxyHost);
System.setProperty("proxyPort", proxyPort);
監視
DataDog Agent
- 設定ファイル
proxy_host: PROXY_HOST
proxy_port: PROXY_PORT
proxy_user:
proxy_password:
mackerel-agent
- 設定ファイル
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は新たに作る)
[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を進んでいくとプロキシ設定する画面がでてくるのでそこに入力