Tunnel Broker 経由で見れない Web サイトが出てきたので、 Squid で対処してみた

おそらく、ここ 2ヶ月ぐらいのことだったと思うのだけど、 Engadget 日本語版の記事が見れなくなってた。
例えば、下の tweet 中の記事へのリンクをクリックすると

こんな画面に転送されてしまい、記事が読めないという状態。

EngadgetのGDPR警告画面

なんだかんだで、こんなヒントを貰ったので、確認してみたところ…。

さくらの VPS に建ててるサーバは、IPv6 を有効にしているので、こちらを使って curl コマンドでのアクセスを試してみると正しいコンテンツが返ってくる…。
ということで、 我が家のネットワークにおける IPv6 接続に原因があるということが判明…。


我が家のネットワーク、8 年近く前から IPv6 接続に関しては、Hurricane Electric Free IPv6 Tunnel Broker を利用しているのだけど、いままでは特に問題出たことなかったんだけどな〜。

どーにかしなくちゃいけないのは、変わりがないので、思い切って接続先を変更することにした。
Feel6@DTI にすれば、今ある設定ファイルをちょこっと直すだけなんだろうなぁ、とは思うのだけど、ケチケチモード発動でフリーでいけるトコロということで、Hurricane Elctric が提供する Free Tunnel Broker サービスにしました。

[From Feel6 から tunnelbroker.net に変更しました - Soukaku's HENA-CHOKO Blog]

ということで、原因がわかったので対処方法を考えるわけですが、過去のエントリーにもある通りプロキシとして Squid を使っているので、これの設定に手を入れることで対応することに。

特定サイトへのアクセス時に、上位プロキシを切り替える

まず、自宅側ネットワーク内にある Squid の設定を変更。

  • 既存の設定に対して、上位プロキシ切り替えのための acl to_peer_Sakura を用意
  • 特定サイト用の上位プロキシを指定するための cache_peer ディレクティブを、既存の cache_peer ディレクティブよりも上に追記
  • cache_peer_access ディレクティブで、上位プロキシと acl to_peer_Sakura を指定

これで、準備完了。
今後、 Engadget 日本版と同じような状態になるサイトが出てきたら、acl to_peer_Sakura にドメイン名を追記していけばよい、と…。

root@vhost01:/etc/squid# diff -u squid.conf_20210515 squid.conf
--- squid.conf_20210515 2021-04-09 22:55:38.000000000 +0900
+++ squid.conf 2021-05-16 00:05:41.659899250 +0900
@@ -33,6 +33,8 @@
acl direct_URL dstdomain .agora.io
acl direct_URL dstdomain .agoraio.cn

+acl to_peer_Sakura dstdomain .engadget.com
+
# acl
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
@@ -46,9 +48,11 @@
http_port 3128

# others
-cache_peer 172.16.0.1 parent 3128 0 no-netdb-exchange no-digest no-query
-always_direct allow direct_URL
-never_direct allow all
+cache_peer 153.126.162.12 parent 3128 0 no-netdb-exchange no-digest no-query
+cache_peer 172.16.0.1 parent 3128 0 no-netdb-exchange no-digest no-query
+cache_peer_access 153.126.162.12 allow to_peer_Sakura
+always_direct allow direct_URL
+never_direct allow all

forwarded_for on
shutdown_lifetime 5 seconds

上位プロキシの方も Squid にしたんですが、こちらはさくらの VPS で建ててるサーバに追加でインストール。こちらの設定の注意点は、オープンプロキシにならないように、 Squid と iptables で自宅側プロキシからのアクセスだけを許可するように設定すること。
と、これで問題なく Engadget 日本語版を見に行けるようになったわけですが、ここまで書いてから、「これ、 PAC ファイルで振り分けるんでよかったんじゃね?」ということに気づいたんだけど、まいっか。(プロキシ追加で用意しなくちゃいけなかったのは、どっちでも同じだしな。)

トラックバック(0)

コメントする