Agile育成ブログ
未来を変える喜びを
未分類

🌐 会社のWSLが繋がらない?「3つのプロキシ系統」の罠と正解ルート

💡 はじめに:なぜ「ブラウザは繋がるのにWSLは死ぬ」のか

会社ネットワークで開発していると必ず直面する、「ブラウザやSlackは動くのに、WSLのaptやpipだけがタイムアウトする」という現象。
実はこれ、あなたの設定ミスではありません。Windowsにおける「プロキシ設定の3つの系統」がバラバラであることが原因です。

🔍 Windowsに潜む「プロキシの3つの系統」

Windowsでは、アプリケーションの種類によって参照するプロキシ設定の場所が異なります。これが混乱の元凶です。

系統主な利用者会社PCの典型的な状態
WinINETEdge, Chrome, 一般的なアプリ✅ 有効(PACや自動検知)
環境変数Python, Git, 開発ツール✅ 有効(手動設定済み)
WinHTTPWSL, apt, CLIツール系❌ 未設定(空白)

👉 結論: WSLやVS Code Serverのバックエンドは「WinHTTP」を参照することが多いため、ここが空白だと外の世界へ通信できません。

🏗️ なぜWSL環境は「地獄」になりやすいのか

WSLを使おうとすると、以下のようなDNSとプロキシの複合問題に巻き込まれます。

  1. WinHTTPの壁: WSLのセットアップ時にWindows側のプロキシ設定が正しく引き継がれない。
  2. 認証の壁: 会社のプロキシにユーザー認証が必要な場合、CLIツールでは設定が非常に困難。
  3. PACの壁: WinHTTPは「自動プロキシ設定スクリプト(PAC)」をそのまま扱えないことが多い。

🚀 導き出される「2つの正解ルート」

この状況で仕事を止めないための選択肢は2つだけです。

✅ ルート①:Windows Pythonで進める(最強・推奨)

無理にWSLを使わず、Windowsネイティブ環境で開発を進める方法です。

  • 理由: 会社の公式手順はWindows前提であることが多く、すでに環境変数の設定だけで通信が通る状態にあるため。
  • メリット: プロキシ地獄にハマらず、本来の「データ分析」や「開発」に集中できる。
  • 判断: 「仕事を止めない」なら、これが正解です。

⚠️ ルート②:WinHTTPにプロキシを強制注入する

どうしてもWSLが必要な場合、管理者権限でWinHTTPに設定を書き込みます。

# WinHTTPにプロキシサーバーを直接登録する例
netsh winhttp set proxy proxy-server="http=http://proxy.example.co.jp:8080;https=http://proxy.example.co.jp:8080"

リスク: 認証が必要なプロキシには対応できず、IT部門のセキュリティポリシーに抵触する可能性があるため、非推奨です。