Proxyとの闘い
Proxyとの闘いお疲れ様です。ハマるのは時間が勿体ないのでメモ。
随時更新予定。
Windows Powershell
やり方は複数ありますが、以下で認証proxyに対応。Windows認証の例です。
profileを開く
PS C:\> notepad $PROFILE
profileのファイルが無い場合は以下で作成
PS C:\> New-Item -Type File $PROFILE -Force
ファイルの中身を以下にして保存(proxyサーバアドレス、ポートは適宜書き換え)
[System.Net.WebRequest]::DefaultWebProxy = new-object System.Net.WebProxy ('http://your-proxy.com:port')
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
[system.net.webrequest]::DefaultWebProxy.BypassProxyOnLocal = $true
以後、powershell ウィンドウを開く都度に上記が読み込まれ有効となります。
dotnet
dotnetコマンド v5.0 windows, linux 両方で同一設定でいけるはず。windowsでは認証proxyも対応してくれました。場合によっては https_proxy, no_proxy を使うかも。
set http_proxy=http://your-proxy.com:port
libman
proxy設定は以下を参照。何故か version 2.1.113 では –set key= で設定をクリア出来るとマニュアルにあるけど出来ませんでした。コマンドプロンプトを立ち上げ直すとクリアされていました。
また、Windows認証には対応してくれませんでした。
libman config --set http_proxy=http://your-proxy.com:port
wget
環境変数でproxy指定。こちらはWindows認証proxy対応ではないです
export http_proxy=http://your-proxy.com:port
export https_proxy=http://your-proxy.com:port
sudo
sudo の後のコマンドには現在の環境変数は適用されないが、 -E で引き継ぐことができる
export http_proxy=http://your-proxy.com:port
export https_proxy=http://your-proxy.com:port
sudo -E apt-get update
git
git configでproxyを指定します
UserName, Passwordを指定する方法でWindows認証Proxyに対応してました
# 設定
git config --global http.proxy http://your-proxy.com:port
git config --global https.proxy http://your-proxy.com:port
# Username, Passwordありの場合
git config --global http.proxy http://username:password@your-proxy.com:port
git config --global https.proxy http://username:password@your-proxy.com:port
# 除外設定
export no_proxy='hoge.co.jp'
# 確認
git config --global -l
echo $no_proxy
proxy設定が邪魔してしまうケースあり、設定削除方法
# http.proxyを削除
git config --global --unset http.proxy
git config --global --unset https.proxy
GitLab Runner Windows
GitLab Runner Windows を動作させるにも proxy 設定があります。セットアップ時と実行時の設定があるので注意
registerする時のproxy設定
registerする時のproxyは環境変数を読み取ってくれます
管理者権限でコマンドプロンプトを起動し以下の様にregisterします
set http_proxy=http://your-proxy.com:port
set https_proxy=http://your-proxy.com:port
gitlab-runner.exe register
<以下略>
registerの手順はこちら
実行時のproxy設定
register後にinstallし、startするとproxyに阻まれます。レジストリに設定することで動作できました
管理者権限でコマンドプロンプトを起動
gitlab-runner.exe install
installするとレジストリキーが出来るのでproxy設定を追加します
管理者権限でPowershellを起動
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\gitlab-runner\" -Name "Environment" -Value "HTTPS_PROXY=your-proxy.com:port" -PropertyType MultiString
レジストリ設定後にstartします
gitlab-runner.exe start
GitLabサイト – Settings – CI/CD – Runners のページで追加したspecific runnerのアイコンが緑になっていることを確認
curl
環境変数または引数で対応できます
Windows認証proxyへは対応していないぽいです
環境変数
export http_proxy=http://your-proxy.com:port
export https_proxy=http://your-proxy.com:port
curl https://www.yahoo.co.jp/
引数
curl https://www.yahoo.co.jp/ -x http://your-proxy.com:port
Azure CLI
azコマンドWindows版
set https_proxy=http://your-proxy.com:port
az login
コメント