LoginSignup
1
1

More than 3 years have passed since last update.

Safariがhostsファイルを中々反映しないのを解決する

Posted at

本稿の目的

非生産的なネットサーフィンをどうにしかして辞めたい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ですね。

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