やるきなし

2014/08/25 19:11 / ニコニコ動画 over squid3 3.3.8-1.1+b1

なぜか squid proxy を通すとニコニコ動画が見れないので調べてみた.Debian GNU/Linux で squid は squid3 3.3.8-1.1+b1.

どうやらアクセスログによると

1408960XXX.XXX     31 ::1 TCP_MISS/400 231 GET http://smile-fnl00.nicovideo.jp/smile? - HIER_DIRECT/119.110.89.1 -
1408960XXX.XXX     31 ::1 TCP_MISS/400 231 GET http://smile-fnl00.nicovideo.jp/crossdomain.xml - HIER_DIRECT/119.110.89.1 -

みたいな感じになっており,通常は最後の - の箇所が content-type になるのだがそうなっていない.tcpdump や telnet 等で調べてみると smile-fnl00.nicovideo.jp が問答無用で Bad Request,つまり,

HTTP/1.1 400 Bad Request
Date: Mon, 25 Aug 2014 10:XX:XX GMT
Server: lighttpd
Connection: close

を返すらしい.これは squid proxy が

X-Forwarded-For: ::1
という怪しげな Header をつけていたのが原因. 127.0.0.1 ならOKだったので ::1 を 127.0.0.1 にすれば良いのだが, やり方がわからないので(どこのIPv6をdisableしたらいいか不明), squid.conf で以下で X-Forwarded-For を付けない設定とする.
-# forwarded_for on
+forwarded_for off

Related articles