Skip to content

MS_ProxySettings

nishi_74322014 edited this page Aug 3, 2026 · 3 revisions

プロキシの設定方法

概要

Windows独自

インターネット・オプション

  • インターネット・オプションから設定する。
  • インターネット・オプションは、以下から起動可能。
    • 「ネットワークとインターネット」から起動する。
      • 「コントロール・パネル」から起動する。
      • 「Windows の設定」から起動する。
    • 直接起動する。
      • IEやEdge、ChromeなどのブラウザのGUIから。

      • 「ファイル名を指定して実行」から。

        inetcpl.cpl
        

ネットワークとインターネット > プロキシ

インターネット・オプションは非推奨の流れ。
(IEがシステム標準でなくなるので、別途システム標準を用意した感じ)

資格情報マネージャー

GUIで設定された認証プロキシの認証情報は「資格情報マネージャー」に設定される。

Linux仕草

Linuxの場合と同様に環境変数の値を設定し、コレを読む。

  • CUIは資格情報マネージャーが使用できないので事前に仕込む必要がある。
  • 各種、クロスプラットフォーム化(Linux発CLIツールのWindows版の普及)の移植コストの観点から、このケースが増えてきている。

CMD

  • SETコマンド
    • 認証なし

      set http_proxy=http://<HOSTNAME>:<PORTNUMBER>
      set https_proxy=%http_proxy%
      
    • 認証あり

      set http_proxy=http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>
      set https_proxy=%http_proxy%
      
    • ポイント

  • SETXコマンド
    • 認証なし

      setx http_proxy http://<HOSTNAME>:<PORTNUMBER>
      setx https_proxy %http_proxy%
      
    • 認証あり

      setx http_proxy http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>
      setx https_proxy %http_proxy%
      
    • ポイント

移行メモ(誤記): 原文の SETX の例は setx https_proxy=%http_proxy%= 付きで書かれていたが、SETX の構文は setx 変数名 値= は不要)。 誤記と解して = を除いた。

PowerShell

  • 基本的には、CMDと同じ
    • 認証なし

      $env:http_proxy = "http://<HOSTNAME>:<PORTNUMBER>"
      $env:https_proxy = $env:http_proxy
    • 認証あり

      $env:http_proxy = "http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>"
      $env:https_proxy = $env:http_proxy
  • モノによってはプログラマブル(http_proxy を使用しないプロダクト)
    • System.Net.WebProxy の例

      $user = "<USERID>"
      $proxyhost = "<HOSTNAME>:<PORTNUMBER>"
      $proxyaddress = "http://$($proxyhost)/"
      $creds = New-Object System.Management.Automation.PSCredential $user, $password_secure
      $proxy = New-Object System.Net.WebProxy $proxyaddress
      $proxy.Credentials = $creds

      移行メモ: 原文のサンプルは $password を定義しながら PSCredential には $password_secure を渡しており、 そのままでは動作しない(PSCredential の第2引数は SecureString)。 未定義の $password 行を除いたうえで原文の構造は残した。 実際に使う際は $password_secure = ConvertTo-SecureString "<PASSWORD>" -AsPlainText -Force 等で SecureString を用意する必要がある。

    • Get-Credential の例

      • IE proxy にプロキシの設定をする。

      • PowerShellプロンプトを起動したら、プロキシの認証情報(ユーザーIDとパスワード)を入力する。

        $cre = Get-Credential
          # popup画面が開くのでプロキシの認証情報を入力する。
        [System.Net.WebRequest]::DefaultWebProxy.Credentials = $cre
          # PowerShellプロセスのDefaultWebProxyの認証情報として設定する。
      • PowerShell のプロファイル機構を使用し、前述の設定を自動化すると便利になるらしい。

個別のアプリ

Default Web Proxyを利用する。

個別にプロキシ設定する。

  • TortoiseGitのGUI例 - 開発基盤部会 Wiki

  • 以下は、GitのCUI例

    git config --global http.proxy http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>
    git config --global https.proxy http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>
    

補足(セキュリティ): 環境変数や git config に パスワードを平文で埋め込む方式は、プロセス一覧や設定ファイルから漏れうる。 可能なら統合 Windows 認証や資格情報マネージャー、 あるいは認証不要のプロキシ経路を検討する。

参考


Tags: Windows

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally