Squid でプロキシ認証を自動化する

プロキシ認証を自動化する

Basic 認証を要求してくるプロキシサーバーがありますが、これによっていろいろな問題が発生します。

  • sbt でアーティファクトがダウンロードできない。
  • MySQL Server のインストールで MySQL Installer が VC++ のランタイムをダウンロードできない。
  • Visual Studio Code の機能拡張の更新ができない。
  • MSYS Git が SSH で動かない。

回避策はあったりなかったりしますが、いちいち調べるのも時間の無駄ですので、これを回避するために自分のマシンにプロキシサーバーを立てて、認証を代行させます。

  1. Squid をインストールします。

  2. C:\Squid\etc\squid\squid.conf を編集します。パスワードは URL エンコードします。Squid はファイルの上から順番に設定を読み込んでいくので、設定を記述する場所に注意します。

    1
    2
    3
    4
    # Example rule allowing access from your local networks.
    # Adapt to list your (internal) IP networks from where browsing
    # should be allowed
    cache_peer proxy.zak.sobal.co.jp parent 3128 0 no-query no-netdb-exchange login=ユーザー名:パスワード
    1
    2
    acl SSL_ports port 22
    acl Safe_ports port 22
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #
    # Recommended minimum Access Permission configuration:
    #
    acl TRACE method TRACE
    acl GET method GET
    acl POST method POST
    acl PUT method PUT
    acl OPTIONS method OPTIONS
    acl DELETE method DELETE

    acl SSL method CONNECT
    never_direct allow all
    1
    dns_nameservers [DNS サーバー1] [DNS サーバー2] ...
  3. Squid を再起動します。コントロールパネル→管理ツール→サービス→Squid for Windows を選択して「再起動」ボタンを押します。

  4. プロキシの設定を変更します。コントロールパネル→インターネットオプション→接続→LAN 設定→プロキシサーバ

    • アドレス: 127.0.0.1
    • ポート: 3128
  5. ブラウザで接続を確認します。ブラウザは再起動したほうが確実です。

仮想マシンのプロキシ設定

仮想マシンから、ホストの Squid を経由してインターネットにアクセスするには、以下のように設定します。

  • VirtualBox
    • アドレス: 10.0.2.2
    • ポート: 3128
  • Android Virtual Device
    • アドレス: 10.0.2.2
    • ポート: 3128