こんにちは、SWX3人目の熊谷(悠)です。
Windows10でしてない筈だったプロキシ設定でハマり、プロキシ設定はどこにあるのか調べても、一覧的なものが見当たらなかったので備忘として記します。
バージョン情報
Windows 10 Pro バージョン 1909
システムのプロキシ設定
WinInet
Internet Explorerとその関連するコンポーネントでWindows内において共通で使われているもので、どれか一つ設定すれば全て同じ設定になります。
- (windows自体の)スタートメニュー>設定>ネットワークとインターネット>プロキシ
- Google Chrome>Google Chromeの設定>設定>詳細設定>システム>パソコンのプロキシ設定を開く
- Microsoft Edge(Chromium)>設定など>設定>システム>コンピューターのプロキシ設定を開く
- Internet Exploror(11)>ツール>インターネットオプション>接続>LAN の設定>プロキシ サーバー
- レジストリ エディター>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] ※レジストリ設定はログオフ&ログオン等しないと即時反映はされないようです。
参考
Microsoft Windows Internet - Wikipedia
レジストリ ファイルを使用してクライアントのプロキシ サーバー設定を構成する方法
WinHTTP
WinInetからサーバとしての利用を考慮したHTTP専用のコンポーネントで、Windows Update等で利用されています。
コマンドプロンプトを管理者として実行して、以下のコマンドで設定します。
C:\Windows\system32>netsh netsh>winhttp # 現在の設定内容を表示 netsh winhttp>show proxy 現在の WinHTTP プロキシ設定: 直接アクセス (プロキシ サーバーなし)。 # プロキシ設定を行う netsh winhttp>set proxy http://192.168.0.1:80 現在の WinHTTP プロキシ設定: プロキシ サーバー: http://192.168.0.1:80 バイパス一覧 : (なし) # プロキシ設定をリセットする netsh winhttp>reset proxy 現在の WinHTTP プロキシ設定: 直接アクセス (プロキシ サーバーなし)。
参考
winhttp proxyの設定とその周辺事情
WinHTTP(Windows HTTP Services)とは - IT用語辞典 e-Words
グループ ポリシーを使用して、WinHTTP プロキシ設定を Windows クライアントに適用する
WinHTTPプロキシの設定方法
環境変数
環境変数にプロキシ設定をしておくと、デフォルトで環境変数を参照するソフト等にて共通の設定が適用できます。
コントロール パネル>システムとセキュリティ>システム>システムの詳細設定>詳細設定>環境変数
CUIで設定する場合、Windows PowerShellを管理者として実行して、以下のコマンドで設定します。
# システム環境変数のhttps_proxy変数の設定内容を取得 PS C:\Windows\system32> [Environment]::GetEnvironmentVariable("https_proxy","Machine") https://192.168.0.1:80/ # ユーザー環境変数のhttps_proxy変数の設定内容を取得 PS C:\Windows\system32> [Environment]::GetEnvironmentVariable("https_proxy","User") # 未設定の場合は何も出力されない # システム環境変数のhttps_proxy変数を削除する PS C:\Windows\system32> [Environment]::SetEnvironmentVariable("https_proxy", "", [System.EnvironmentVariableTarget]::Machine) # ユーザー環境変数のhttps_proxy変数に値を設定する PS C:\Windows\system32> [Environment]::SetEnvironmentVariable("https_proxy", "https://192.168.0.1:80/", [System.EnvironmentVariableTarget]::User)
参考
各使用ソフトウェアの設定
ここはwindowsの設定ではないのでおまけです。以下にも色々纏まってました。
日々プロキシで苦しむ人の為のプロキシ設定まとめ
Firefox
Firefox>メニュー>オプション>ネットワーク設定>接続設定
Firefoxは他ブラウザと異なり、システムから独立したプロキシ設定も可能です。
Visual Studio Code
http.proxySupportキーがoverrideの時は環境変数のhttps_proxyを参照します。(デフォルト設定)
※システムのプロキシ設定は参照しません。
Ctrl
+,
もしくは Manage>Settingsで設定画面を開く- 右上タブのOpen Settings(JSON)でjsonを開くか、
proxy
と検索し、以下設定を追加or削除
{ "http.proxy": "https://192.168.0.1:80/", "http.proxyAuthorization": null "http.proxyStrictSSL": false, "http.proxySupport": "on", }
設定が誤っているとExtensionsで以下警告が表示されて拡張機能の検索やお勧めが出なくなります。
We cannot connect to the Extensions Marketplace at this time, please try again later.
参考
npm
デフォルト設定では環境変数のhttps_proxyを参照します。
※以下バージョンuser-agent = "npm/6.14.4 node/v12.17.0 win32 x64"
の場合
# 現在のプロキシ設定を確認 C:\Users\user>npm config list -l ... https-proxy = null ... proxy = null ... # proxyを設定 C:\Users\user>npm config set proxy https://192.168.0.1:80 # https-proxyを設定 C:\Users\user>npm config set https-proxy https://192.168.0.1:80 # proxy設定を削除 npm config delete proxy # https-proxy設定を削除 npm config delete https-proxy
実設定ファイルがC:\Users\user\.npmrc
等に配置されている(環境によって異なります)ので、こちらでも設定は可能です。
参考
proxy配下のnpm設定
[Node.js] npm の proxy と registry 設定
Windows10でnode/npm周りにproxy設定する備忘録
何にハマったか?
npm install
を実行すると、以下エラーが発生しました。
C:\Users\user>npm install -g serverless npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! network request to https://registry.npmjs.org/serverless failed, reason: connect ETIMEDOUT 192.168.0.1:80 npm ERR! network This is a problem related to network connectivity. npm ERR! network In most cases you are behind a proxy or have bad network settings. npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly. See: 'npm help config'
いつどこで設定したか記憶は定かではないのですが、昔必要があってserver:192.168.0.1
のport:80
(そんなプロキシサーバーは実際には存在しません)を一度WinInetに設定してすぐ削除した覚えがありました。
ただ、上項目「システムのプロキシ設定」が全て未設定な事と、npm config
が未設定な事を確認して、
念の為npm config delete
もしてみましたがエラーが解消できなかったので、どこにプロキシ設定が隠れているんだ...と頭を悩ませていたら、
何故か環境変数に設定が残っていたので、削除したところ無事解決できました!
まとめ
- プロキシ設定箇所は1つではない。
- ソフトによって参照しているプロキシ設定箇所は異なる。
熊谷 悠司 (記事一覧)