macでhostsファイルを書き換える方法を紹介します。
※Mac OS Xを対象にしています。
hostsファイルを書き換えるとDNSに関係なく公開前のwebサイトの動作確認を行うことが出来ます。
新サーバーにサイトを構築する時などサーバー移管を含むリニューアル案件等で役にたちますね。
ここからは具体的なhostsファイルを書き換える方法を記載していきますが、一つ一つが少々長いのでこの項目だけ見れれば十分という方は以下の目次より必要なところだけご覧ください。
また、そもそもhostsファイルって何? DNSって何? という方に向けて最後に用語の解説もしております。
アプリを使う方法
個人的にはこれが一番簡単でおすすめです。
macには無料で使える『Hosts.prefpane』というアプリがあります。(厳密には環境設定用のファイル)
通称『Hosts』。macを使っている方だとご存知の方もいるかもしれません。
*こちらはとても便利だったのですが、macOS Big Surでは使えなくなっていました。残念。。今はhostsファイルを変更して対応しているのですが、いい方法があればぜひ教えてくださいませ。
『Hosts.prefpane』のダウンロード
『Download here』からダウンロードするか、もしくは『GitHub』からもダウンロードできます。
ダウンロードが完了したら圧縮ファイルを開きインストールします。
インストールに成功すると『環境設定』の画面に『Hosts』が追加されます。
アプリケーションのところではないので、ご注意ください。
hosts設定を入力する
『Hosts』を開くと以下のような画面が開きます。
鍵アイコン上のプラスをクリックするとIPアドレスとホスト名が追加入力可能に。
また左下の鍵アイコンでロックをかけたり外したり出来ます。
おそらくこの方法が一番簡単ですね。
ただこのアプリには一つ問題がありまして、最終更新が2017年の時点で5年前。。。古っ!
今のところ問題なく使えてるので愛用してますが、いつかは他のアプリが必要になるでしょう。
代わりになる候補だと『gasmask』あたりでしょうか。
使いやすいと他の人のブログで見たことはあるのですが、名前が怖いので私は使っていません(笑)
テキストエディタで編集する方法
hostsファイルがあるフォルダを開く
Finderのメニューバー→移動→フォルダへ移動をクリック。
そこで『/private/etc 』と入力するとhostsファイルがあるフォルダが開きます。
hostsファイルをコピーして編集する
今回はわかりやすいようにデスクトップにファイルをコピーしました。
コピーした方のファイルをテキストエディット(mac標準のテキストエディタ)で開きます。
標準のテキストエディタでは開かないと書かれたサイトもありましたが2017年7月現在の最新バージョンでは問題なく開きますね。
もし開かない場合は『mi』というアプリもありますのでお試しください。
『mi』のダウンロードはこちらから
ファイルを開いたら一番下にIPアドレス+半角スペース+ホスト名(ドメイン名)を入力し、保存をします。
コピーしたhostsファイルを元のフォルダにドラッグ&ドロップして置き換える(上書きする)
「管理者の名前とパスワードが必要です」とメッセージが出るので認証をおこなってください。
「新しい項目で置き換えますか?」とメッセージが出るので『置き換える』をクリック。
これでhostsファイルの設定が反映されるようになります。ブラウザを再起動して確認してみましょう。
上書きしておかしくなってしまうのが不安な場合は、コピーをもう一つ取っておいて元に戻せる状態を作っておくと安心です。
ターミナルを使う方法
ターミナルを使うのは苦手なので個人的にはこの方法が一番使わないですが、ターミナルの方が慣れてるよって方はこちらの方法が一番良いのかもしれません。
アプリケーション→ユーティリティ→ターミナル。もしくはLaunchpad→その他→ターミナル。
以下の画面はLaunchpad経由の場合です。
ターミナルを開いたら最初にsudo vi /private/etc/hostsと入力
自分の場合は白背景ですが、黒背景でもやることは同じです。念のため。
パスワードの入力を求められるのでログイン中のアカウントのパスワードを入力
入力モードにしてhosts設定を記述・保存
以下のようなコードが書かれた画面が出てきます。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
この画面で『 i 』を入力すると一番下に『– INSERT –』と表示され、入力モードになります。
何もいじってない状態であれば::1 localhostの次の行にhosts設定を記述します。
※下矢印で最終行まで移動。この場合だとlocalhostの最後のところで『 enter 』を押すと次の行に入力できるようになります。
IPアドレス+半角スペース+ホスト名(ドメイン名)を入力してください。
例えばこんな感じですね。
入力が終わったら『 esc 』キーを押す。
その後に『:wq 』と入力すれば設定が保存されます。
ブラウザを再起動すれば設定したサイトが見れるようになっています。
用語の説明
hostsファイルとは
すごく簡単にいうとIPアドレスとホスト名の組み合わせが一覧で記載されているテキストファイルです。
ここに記載されているものはDNSよりも優先されます。
具体的にはこんな風に書いたりします。
111.2.333.4 example.com
これを書くとどうなるか。
通常は以下の図のようにDNS設定されている方を読み込みます。
hostsファイルが記載されている場合はこのようになります。
『example.com』にアクセスするとDNS設定よりもhostsファイルは 優先されるので新サーバーを参照します。
この状態であれば現在表示されているwebサイトはそのままに裏側で新サーバーでの動作確認ができるようになります。
hostsファイルを書かなくても新サーバーのIPアドレスでアクセス出来なくはないですが、ssl化(ドメイン全体がhttpsから始まる)されているなどの理由で正常にチェック出来ないことも多いのでhostsファイルは変更した方がこういったケースでは望ましいと思います。
DNSとは
ざっくりいうとDNS(ディーエヌエス: Domain Name System)とはIPアドレスとドメイン名を管理するシステムのことです。
IPアドレスはコンピューターに割り振られる住所のようなもの。ただし人間から見るとただの記号にしか見えず、非常に管理しにくいのでドメイン名(人間が管理しやすい住所に置き換えたもの)で管理したいと考えました。
そこで登場したのがDNSでコンピューターと人間の言葉を繋げる(翻訳する)役割をしています。
わかりやすさを重視して大雑把な説明ではありますが、参考にしていただければと思います。