LoginSignup
5

More than 5 years have passed since last update.

Bash on Windows で セキュリティソフトにaptの邪魔をされるとき

Posted at

半ば諦めて公式対応してくれるのを期待していたのですが、ふと思いついたのでやってみたらできました。

apt updateできない?

いろいろやりたいことを妄想して、いざパッケージをインストールしてみようとすると、いきなり壁にぶちあたります。
curlでのhttpは通信できるけれど、aptコマンドでのhttpでは通らない。。
apt update / install でリポジトリにつながらない (ただし、 curl だとつながる)

私の環境でもSymantec Endpoint Protectionを使っていて、一応、ファイアーウォールを無効にすれば、apt updateは成功しましたが、いつも無効にしておくわけにもいきません。

また、ファイアーウォールのルールはサーバー側で制御しているので、あまり多くのことを試すことができませんが、アプリケーションごとに通信の許可(ホワイトリスト)みたいなことはやっていませんでした。

ローカル通信は別なルールになるのでは?

ファイアウォールのルールで遮断されているなら、別なルールを使う通信ならいけるかも、と思ってWindows側のローカルにプロキシを立ててそこを経由させてみました。

プロキシ経由で接続してみる

プロキシには簡単に立てられる、BlackJumboDogを使わせていただきました。

msiとzipで配布されているので、よりお手軽なほうのzipでダウンロードしてきて、解凍。
起動したら、オプション→プロキシサーバ→ブラウザのダイアログで、「プロキシサーバ[Browser]を使用する」にチェックをつけて、以下の設定を。

  • 基本設定タブ

    • クライアントから見たポート:8080
    • 待ち受けるネットワーク:IPv4 127.0.0.1
  • ACLタブ

    • 指定したアドレスからのアクセスのみを許可する
    • 利用者(アドレス)の指定:お好きな名前で127.0.0.1を追加

準備ができたら、Bashでこんな感じにするといけます。

# export http_proxy="http://localhost:8080/"
# apt update

sudoでやりたいって方は、-Eオプションをつけて実行すると環境変数を引き継いでくれます。

$ export http_proxy="http://localhost:8080/"
$ sudo -E apt update

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5