Windowsの認証proxyが必要な環境でcurlしたい時の設定
なんでproxy設定されてるような環境から打つの?は疑問に思わない方針で。
proxyで認証しないと外部NWに出ていけないような社内PCなどから、おもむろにcurl打ちたい場合の手順。
curl環境の用意
proxyの設定
コマンドに直接指定する
コマンド例はこんな感じ。
$ curl http://destination.example.com -x http://user:pass@proxy.example.com:8080
とはいえ、毎回コマンドに打ち込むのは面倒なので、常用する場合は後述のように設定しておきたい。
中身は下記の通り。それぞれ自環境に合わせて設定すること。
設定項目 | コマンド例のどこか |
---|---|
接続先URL | http://destination.example.com |
proxy認証ユーザID | user |
proxy認証パスワード | pass |
proxyホスト | proxy.example.com |
proxyポート | 8080 |
※ proxyホストはIPでもOK。(127.0.0.1等々…)
※ パスワードに記号を含む場合は、URLエンコードが必要
設定の永続化:bash形式の設定方式
環境変数に指定
HOME直下の.bashrc
などに環境変数を指定すればOK。
curl以外のコマンド群にも反映されるようになるので、色々使う場合はこっちで設定しておいた方が楽。
とりあえず試しに設定する場合。(bashのセッション終了時にリセットされる)
$ export HTTP_PROXY=http://user:pass@proxy.example.com:8080 $ export HTTPS_PROXY=http://user:pass@proxy.example.com:8080
上記設定後にproxy設定無しのcurlコマンド打って通るなら、HOME直下の.bashrc
などにそのままexportコマンドを書く。
$ cd $ echo "export HTTP_PROXY=http://user:pass@proxy.example.com:8080" >> .bashrc $ echo "export HTTPS_PROXY=http://user:pass@proxy.example.com:8080" >> .bashrc
※ viで編集でもなんでもご自由に。
設定の永続化:Windows標準curl用の設定方式
環境変数に指定
とりあえず試しに設定する場合。(プロンプトやPowerShell終了時にリセットされる)
$ SET HTTP_PROXY http://user:pass@proxy.example.com:8080 $ SET HTTPS_PROXY http://user:pass@proxy.example.com:8080
上記設定後にproxy設定無しのcurlコマンド打って通るなら、永続化は下記。※ Windowsの環境変数設定に入る
$ SETX HTTP_PROXY http://user:pass@proxy.example.com:8080 $ SETX HTTPS_PROXY http://user:pass@proxy.example.com:8080