Windows 10 上で SOCKSプロキシを設定しようとしたところ、
またまたハマりどころ満載だったのでそのメモ。
背景・目的
WSLの実装で、私のような Linux/macOS 型の人間でも、それなりに使えるようになった Windows 10。
WSL は細かい所に目をつむれば良くできていて、
WSL上で $ ssh -L xxxx:xxxxx:xxxx ...
なんてすれば、
Windows 側から透過的にポートフォワーディングできたりします。
そうなると(やり方は敢えて詳細を記載しませんが) SOCKSプロキシで
踏み台を経由した webアクセスなんかも簡単にできそうとなるわけですが、
この (SOCKS)プロキシを Windows システムから使おうと思うと、
前述のように色々ハマりどころが多かったという訳です。
次の3つの方法について紹介します。
- Firefox を利用する方法
- コントロールパネルから設定する方法
- 「設定」から設定する方法
Firefox を利用する方法
この方法は OS を問いませんが、
Firefox はシステムの設定とは独立に、
Firefoxの設定としてプロキシなどを扱えます。
他の多くのブラウザはいずれもシステム設定経由でしか利用できません。
Firefox からプロキシを設定する方法は以下です。
オプション/一般 → ネットワーク設定/接続設定 → インターネット接続の画面
この画面の「手動でプロキシーを設定する」を設定すると
システム設定とは独立にプロキシを利用できます。
(システム設定を参照させることもできます)
コントロールパネルから設定する方法
この方法は Windows 10 以前の方法でも適用可能です。
コントロールパネル → インターネットのプロパティ → 接続 → LANの設定
ローカルエリアネットワーク(LAN)の設定
- 「設定を自動的に検出する」のチェックを外す
- 「LANにプロキシサーバーを使用する」にチェック
- 「詳細設定」から適切に設定する
「設定」から設定する方法
Windows 8? から導入された「設定」から設定する方法。
Windows 8.1 でも使えそうです。
「設定」→ ネットワークとインターネット → プロキシ
- 「設定を自動的に検出する」をオフにする
- 「プロキシサーバーを使う」をオンする
- アドレス, ポートを設定する
ハマりどころ1
上記のコントロールパネル経由の方法を先に試された方は、
アドレス欄にヒントが表示されるのですが(それでも "答え"ではない)
SOCKSプロキシを用いる場合、アドレス欄にそのままアドレスを入れても動作しません(謎)。
アドレス欄には socks=xxx
(localhostなど) と入力します。
こんなのパッとわかるわけがない。
せめて socks://xxx[:port]
という形式だろう。
ハマりどころ2
上記のように正しく設定・動作した状態で、
「プロキシサーバーを使う」を一度オフにして、改めてオンにしても接続できない。
これだと接続先や用途に応じてプロキシを使い分ける人は不便で仕方ない。
上記でコントロールパネルで先に設定した場合に
「ヒント」が現れると表現したのがまさしくこの症状です。
アドレス欄に socks=localhost
と正しく設定して接続した後、
一度プロキシをオフにすると、このアドレス欄の設定値が勝手に http://socks=localhost
に書き換えられる。
このため、次にプロキシをオンにしても接続に失敗する。
つまりプロキシをオンするたびに、アドレス欄を設定しなおす必要がある。
これはプロキシ設定はコントロールパネルでやれということなのだろうか。
「設定」側はとてもテストされているとは思えない御粗末な実装だ。
しかしこんな状態にも関わらず、コントロールパネルを抹殺しようとしている なんて噂が出たりするのだから恐ろしい。