{"meta":{"title":"ランナーでのプロキシサーバの使用","intro":"GitHubとのセキュリティで保護された通信にプロキシ サーバーを使用するように、分離環境のランナーを構成できます。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/actions","title":"GitHub Actions"},{"href":"/ja/actions/how-tos","title":"方法"},{"href":"/ja/actions/how-tos/manage-runners","title":"ランナーを管理する"},{"href":"/ja/actions/how-tos/manage-runners/use-proxy-servers","title":"プロキシ サーバーの使用"}],"documentType":"article"},"body":"# ランナーでのプロキシサーバの使用\n\nGitHubとのセキュリティで保護された通信にプロキシ サーバーを使用するように、分離環境のランナーを構成できます。\n\n## Linux および Windows ランナー用のプロキシの構成\n\nランナーがプロキシ サーバー経由で通信する必要がある場合は、環境変数またはシステム レベルの構成を使用してプロキシ設定を構成できます。\n\n| Variable      | Description                                                                                           | Example                                                                                     |\n| ------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |\n| `https_proxy` | HTTPS トラフィックのプロキシ URL。 必要に応じて基本認証を含めることができます。                        | `http://proxy.local`<br>`http://192.168.1.1:8080`<br>`http://username:password@proxy.local` |\n| `http_proxy`  | HTTP トラフィックのプロキシ URL。 必要に応じて基本認証を含めることができます。                         | `http://proxy.local`<br>`http://192.168.1.1:8080`<br>`http://username:password@proxy.local` |\n| `no_proxy`    | プロキシをバイパスするホストまたは IP アドレスのコンマ区切りの一覧。 一部のクライアントでは、ホスト名ではなく IP に直接接続する場合にのみ IP アドレスが優先されます。 | `example.com`<br>`example.com,myserver.local:443,example.org`                               |\n\nプロキシ環境変数はランナー アプリケーションの起動時に読み取られます。そのため、ランナー アプリケーションを構成または開始する前に環境変数を設定する必要があります。 プロキシ構成が変更された場合は、ランナー アプリケーションを再起動する必要があります。\n\nWindows マシンでは、プロキシ環境変数の名前では大文字と小文字が区別されません。 Linux及びmacOSマシンで、環境変数はすべて小文字にすることをおすすめします。 Linux または macOS 上で、`https_proxy` と `HTTPS_PROXY` のように、小文字と大文字の両方の環境変数がある場合、セルフホステッド ランナー アプリケーションには小文字の環境変数が使用されます。\n\nセルフホステッド ランナーと GitHub 間の接続は、 HTTPS (ポート 443) 経由です。 \n\n> [!WARNING]\n> セルフホステッド ランナーは、 `no_proxy` 環境変数での IP アドレスと CIDR 範囲の使用をサポートしていません。 \n>               GitHub Enterprise Server インスタンスが IP アドレスを使用し、そのアドレスのプロキシをバイパスするように`no_proxy`を構成した場合、ランナーは引き続き接続に失敗します。\n\nGitHub Enterprise Server インスタンスに IP アドレスを使用してアクセスし、接続でプロキシをバイパスする必要がある場合、その IP アドレスが `no_proxy` に表示されている場合でも、ランナーは接続に失敗します。\n\n### 構成例\n\n> [!NOTE]\n> 問題を避けるには、使っているオペレーティング システムとシェルの動作に関係なく、環境変数を大文字と小文字を区別するものとして扱うことをお勧めします。\n\n#### Linux と macOS\n\nランナーのプロキシ環境変数を設定します。\n\n```shell copy\nexport https_proxy=http://proxy.local:8080\nexport http_proxy=http://proxy.local:8080\nexport no_proxy=example.com,localhost,127.0.0.1\n```\n\n#### ウィンドウズ\n\nWindows では、環境変数を設定するか [、netsh コマンド](https://learn.microsoft.com/en-us/windows/win32/winhttp/netsh-exe-commands#set-advproxy)を使用してプロキシ設定を構成できます。\nnetsh アプローチは、WinHTTP API に依存するアプリケーションとサービスに適用されます。\n\nプライベート ネットワークを使用するランナーには、環境変数を設定する必要があります。 netsh も構成する必要があるかどうかは、ワークフローで使用されるアプリケーションによって異なります。\n\n```shell copy\nnetsh winhttp set advproxy setting-scope=machine settings={\\\"Proxy\\\":\\\"proxy.local:8080\\\",\\\"ProxyBypass\\\":\\\"168.63.129.16;169.254.169.254\\\",\\\"AutoconfigUrl\\\":\\\"\\\",\\\"AutoDetect\\\":false} \n```\n\nカスタム イメージの生成中にこれを構成するときは、 `setting-scope=machine` を使用して、再起動後と VM イメージング中にプロキシ設定が保持されるようにします。\n\n### プロキシ設定を永続的にする\n\nカスタム イメージの生成中にこれらの環境変数を設定する場合は、再起動またはイメージの再構築の間に構成が保持されるようにします。\n\n#### Linux と macOS\n\n`/etc/environment`に変数を書き込みます。\n\n```shell\n echo 'http_proxy=http://proxy.local' >> /etc/environment\n```\n\n#### ウィンドウズ\n\nシステム全体の環境変数を設定します。\n\n```shell copy\n[Environment]::SetEnvironmentVariable(\"http_proxy\", \"http://proxy.local\", \"Machine\")\n```\n\n## Azure ランナー向けプロキシの設定\n\nランナーが Azure でホストされている場合(セルフホステッド ランナーまたはプライベート ネットワークでデプロイされた GitHub ホスト型の大規模ランナー)、ネットワーク分離を維持しながら GitHub サービスへの送信接続を許可するようにプロキシを構成することが必要になる場合があります。\n\nランナーが必要な Azure サービスにアクセスできるように、Azure メタデータと管理 IP を `no_proxy` リストに追加する必要があります。 これらのエンドポイントを使用すると、Azure VM は、適切な操作に必要な構成と ID 情報を取得できます。\n\n2 つの Azure IP は次のとおりです。\n* 168.63.129.16 ( [Azure IP アドレス 168.63.129.16 の概要](https://learn.microsoft.com/en-us/azure/virtual-network/what-is-ip-address-168-63-129-16?tabs=linux)を参照)\n* 169.254.169.254 ( [Azure インスタンス メタデータ サービスを](https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux)参照)\n\n## .envファイルを使用したプロキシ設定\n\n> [!NOTE]\n> `.env` ファイルを使用してプロキシ構成を設定することは、GitHub でホストされているランナーでは実行できません。\n\nセルフホステッド ランナーでは、セルフホステッド ランナー アプリケーション ディレクトリ (ランナー ソフトウェアをダウンロードしてアンパックしたディレクトリ) の `.env` ファイルに変数を追加することで、プロキシ設定を構成できます。 この方法は、ランナーがシステム アカウントでサービスとして実行するように構成されている場合に便利です。 ランナーが起動すると、プロキシ構成の `.env` に設定された変数が読み取られます。\n\n### 例 `.env`プロキシ構成\n\n```shell copy\nhttps_proxy=http://proxy.local:8080\nno_proxy=example.com,myserver.local:443\n```\n\n## Dockerコンテナのプロキシ設定を行う\n\nワークフロー中でDockerコンテナアクションやサービスコンテナを使うなら、上記の環境変数の設定に加えて、プロキシサーバーを使うようDockerも設定しなければならないかもしれません。\n\n必要な Docker 構成の詳細については、Docker ドキュメントの「[Configure Docker to use a proxy server](https://docs.docker.com/network/proxy/)」(プロキシ サーバーを使うように Docker を構成する) を参照してください。"}