LoginSignup
1
0

More than 3 years have passed since last update.

Squidで複数のProxyを操る

Posted at

※この記事はProxyを華麗にスルーしてWi-Fiを飛ばすには -Qiitaの環境を前提としています。まだお読みでない方はご一読の上こちらの記事をお読みください。

環境をざっくりと解説

  • PC: ThinkPad T490 Arch Linux
  • 認証付きProxy必須の環境
  • Azure上に構築したHTTP ProxyをSSHポートフォワーディングで持ってきている
  • create_apでWi-Fiを飛ばしていて,スマホはDronyを使いHTTP Proxy非対応のアプリもProxy経由で通信できるようにしている

困ったこと

  • スマホは認証付きProxyだとうまく接続できないため,常時Azure上に構築したプロキシに接続させているから,追加でAzureの通信料金が発生する
  • 認証付きProxyの方だと見れないサイトがある:Youtubeなど生活必需品

解決するために

ローカルにSquidを使ってProxyを構築し,時間帯・アクセス先のサイトに応じて代理接続するProxyサーバ先を選択できるようにした

192.168.1.1:8080に認証付きProxy,0.0.0.0:8888に外部Proxyがある環境の例 重要な設定を抜粋

/etc/squid/squid.conf
(前略)
cache_peer 192.168.1.1 parent 8080 0 no-query no-netdb-exchange no-digest login=ユーザ名:パスワード proxy-only
cache_peer 0.0.0.0     parent 8888 0 no-query no-netdb-exchange no-digest default

acl sorting time SMTWHF 1:00-6:00
acl blacklist dstdomain "/usr/local/etc/squid/blacklist"

(中略)

# ローカル環境には上位のプロキシを通さず直接接続
acl developersegments1 dst 192.168.1.1/24
always_direct allow developersegments1

never_direct allow all

# キャッシュしない
cache deny all

# 1:00から6:00にblacklistに掲載されているサイトにアクセスしたときは192.168.1.1に代理接続 **させない**
cache_peer_access 192.168.1.1 deny blacklist sorting
blacklist
.qiita.com
.youtube.com

.[domain]でそのドメイン全てを対象にできる

これで設定したポートに接続すると,192.168.1.1へ認証なしで優先的に接続され,1:00から6:00にblacklistに設定したサイトへアクセスしようとした場合は0.0.0.0のproxyへ接続される。

1
0
0

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
1
0