本稿の目的
非生産的なネットサーフィンをどうにしかして辞めたいSafari使いのために
どういう人向け
ネットサーフィンしてしまいがちな貴方、私。browser毎に素敵な遮断Pluginを入れてもいいんだけど、アップデートの隙間や、OSレベルで遮断したいという人向け
Chromeとか使ってる人はPluginの方が遥かに柔軟だと思います
環境
Mac OS Mojave/Safari 14.0.3
ハマりポイント
大まかな流れは
1.hostsを編集
sudo vi /etc/hosts
hostsファイルに
127.0.0.1 *+****.com(遮断したいwebsiteのhost)
と書いて保存
2.dnsキャッシュをクリア
sudo dscacheutil -flushcache
ここまでは良いのですが、依然としてsafariがhostsを反映せず、サイトが見られる
状態が続いています。この回避策としてlogoutや再起動など提示されています。
(*ブラウザ再起動とlogoutは意味がなかったです)
一応hostsに記載した、ブロックしたいサイトに対して
ping **********.com
を打つと127.0.0.1に繋がるのでos的には認識しているようです
解決策
Stackexchange
を参照したところsafariはIpv6でも名前解決を試みるようで、そちらも同様に書かなければならないそうです。
試しにhostsに
fe80::1 ******.com
を追記しdnsキャッシュクリアしたところ立ち所にサイトがブロックされました!
おまけ
モダンなbrowserはIpv6をサポートしているでしょうから、他のブラウザでこういうことがあるかもしれませんね。
Ipv6は従来のIpv4と違って32bitから128bit長なので16bit毎に:で区切った表記をするそうです。同じ表現が続く場合は::でその区間を省略できるようです。
Ipv4に見られるlocalhostを表すアドレスの先頭127に対応するのが
Ipv6だとfe80です。最後はどちらも1ですね。