Macでhostsファイルを書き換え・編集する方法!反映されないときはどうすれば?

Macでhostsファイルを書き換え・編集する方法!反映されないときはどうすれば?

Macでhostsファイルを書き換え・編集する方法について、「ターミナル」「テキストエディット」「アプリ」を使った設定方法を解説していきます。またhostsファイルを設定したけど、反映されないときにどうすべきかもごご紹介します。


目次[非表示]

  1. Macでhostsファイルを書き換える
  2. Macでhostsファイルを書き換える方法
  3. hostsファイルの設定が反映されない場合
  4. まとめ

Macでhostsファイルを書き換える

エンジニアの方などは開発中に、Macでhostsファイルを書き換え・編集したい場合があるかと思います。

ただそんなに頻繁にはないので、設定するときに「あれ?hostsの場所どこだっけ?」となる事はないでしょうか。

今回はMacでhostsファイルを書き換える・編集する方法と、設定したあとで変更が反映されない場合にはどうすればいいかという点をご紹介していきます。

hostsファイルって何?

まずはそもそもhostsファイルって何?というところから解説していきます。

例えば「https://aprico-media.com/」など通常URLをブラウザに入れるとそのドメイン(ここではaprico-media.com)に紐づくIPアドレスを有しているサーバーにリクエストが送られます。

DNSサーバーでの名前解決

aprico-media.comのドメインとIPアドレスの名前解決
図にするとこのような形となります。はじめに①でDNSサーバーに対してドメイン情報のIPアドレスを問い合わせします。

②で結果が返ってきて、無事にIPアドレスが分かったため③でアクセスを試みます。

hostsファイルでの名前解決

hostsファイルを使った名前解決
一方でパソコン内部にあるhostsファイルを利用すると、DNSに問い合わせるする前に、パソコンのhostsファイルに①で問い合わせをし、結果が②で返るためDNSサーバーへの問い合わせがありません。

要するにドメインとIPアドレスの紐づけの管理はDNSサーバーが管理していますが、自身のMacのhostsファイルにドメインとIPアドレスの紐づけを設定しておくと、DNSサーバーの設定よりもローカルのMacのhostsファイルの紐づけが優先されます。

hostsファイルはDNSサーバーと同じくドメインとIPアドレスの紐づけを行いますが、ローカル環境限定でIPアドレスとドメインの紐付けを上書きする役割を持ちます。

Macでhostsファイルを書き換える方法

それではMacでhostsファイルの設定を書き換える方法をご紹介していきます。

hostsファイルがある場所はどこ?

まずhostsファイルの場所を確認しておきましょう。hostsファイルの場所はMacの環境では「/etc/hosts」となります。

Unix系のOSの場合は「/etc/hosts」がhostsファイルの場所となります。あとはこの場所にあるファイルを書き換えればOKという話になります。

ちなみにhostsファイルを開くと下記のようになっているはずです。このファイルの中身を書き換えていきます。

※少し編集するのが怖いという方はファイルのコピーをしてバックアップをとっておきましょう。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost

ターミナルを使って書き換える

ターミナルを使ってhostsファイルを設定する方法を解説していきます。viを使っての書き換えの方法となりますので、viの操作が苦手という方は次のパートのテキストエディットやアプリを使った書き換え方法を参照下さい。

ターミナルの立ち上げ

ではまずはMacのターミナルを立ち上げましょう。

Launchpadのその他からターミナルを選択

ターミナルLaunchpadを開き、その他からターミナルを選択して起動させましょう。

viでhostsファイルを編集

ターミナルが立ち上がったら以下のコマンドを入力してviでhostsファイルを開きましょう。

hostsファイルはrootユーザーにしか書き込み権限がないために、sudoをつけてviを起動しています。sudoをつけてますので、パスワードを聞かれますのでご注意下さい。

sudo vi /etc/hosts
hostsファイルの中身

あとはviの操作でIPアドレスとドメインの情報をセットで入力して、最後に保存してviを終了しましょう。

以上でターミナルを使ってのhostsファイルの設定は完了です。

ターミナルを使ってhostsファイルを書き換え

  • ターミナルを起動する
  • sudo vi /etc/hosts
  • hostsファイルの内容を書き換えて上書き保存

またhostsファイルを度々書き換えるので、毎回sudoでパスワードを打つのが面倒という方は下記の記事を参考に設定をすると、パスワードなしでsudoが実行できます。

ぜひ参考にしてみて下さい。

Macでsudoコマンドをパスワードなしで実行する方法!

Macでsudoコマンドをパスワードなしで実行についてご紹介します。ターミナルでsudoコマンド実行時にはパスワードを聞かれますが、毎回入力するのが面倒だという方は今回の記事を参考に、visudoで権限を設定しましょう。

Thumb

テキストエディットを使って書き換える

viやターミナル上の操作が苦手だという方はテキストエディットなどのテキスト編集のアプリケーションを使ってのhostsファイルの設定がおすすめです。

Finderを立ち上げ「Command + Shift + G」で「フォルダの場所を入力」の機能

Finderを立ち上げ「Command + Shift + G」で「フォルダの場所を入力」の機能を立ち上げましょう。

そこで/etc/hostsを入力して、移動しましょう。

するとhostsファイルが保存されているetcフォルダが開き、hostsファイルが見つかると思います。
 

hostsファイルを編集

権限の問題で直接編集できませんので、一度ダウンロードフォルダやデスクトップにそのファイルのコピーを作成しましょう。

コピーしたhostsファイルを右クリックでテキストエディットで開きましょう。

テキストエディットで追加するIPアドレスとドメインのセットを記述し、保存をしましょう。

hostsファイルを反映

あとはオリジナルのhostsファイルがあるetcフォルダに対して、コピー&編集したhostsファイルを貼り付けます。

上書きする際にユーザー名とパスワードの入力が求められます。正しい情報を入力すれば、無事にhostsファイルが上書きされます。

テキストエディットを使ってhostsファイルを上書きする

  • Finderでhostsファイルのある場所まで移動(etcフォルダ)
  • hostsファイルを別の場所にコピー
  • コピーしたhostsファイルをテキストエディットで編集
  • コピー&編集したhostsファイルで元のetcフォルダのhostsファイルを上書きする

Macのテキストエディットの基本的な使い方が分からないという方は以下の記事を参考にしてみて下さい。

Macのテキストエディットの使い方をご紹介!文字コード/表の挿入/縦書き/画像挿入

Macのテキストエディットの使い方についてご紹介します。テキストエディットは最初から入っているMacのテキストエディタで、txtファイル/rtfファイル/htmlファイルなどの編集が行なえます(Windowsのメモ帳みたいなもの)。ぜひ使い方をマスターしましょう。

Thumb

アプリを使って書き換える

最後にアプリを使ってhostsファイルを書き換える方法をご紹介します。今回は「Hosts.prefpane」というアプリをご紹介します。

ダウンロード

Hosts.prefpaneはhostsファイルをアプリケーション内で追加&削除、有効・無効を切り替えられるアプリです。

ダウンロードは下記のリンクから行えます。

Hosts.prefpaneのダウンロード

アプリを使う

インストールが完了すると、システム環境設定にHostsというアイコンが増えるかと思います。

こちらのアイコンをクリックして、Hosts.prefpaneを立ち上げましょう。

テキストエディットなどでテキスト編集しなくてもアプリを使って管理ができるので、テキスト編集に慣れていない方にもおすすめの方法です。

アプリを使ってhostsファイルを書き換え

  • Hosts.prefpaneをインストール
  • システム環境設定にアイコンが追加される
  • アプリケーション内でIPアドレスとドメインの紐づけを設定できる

hostsファイルの設定が反映されない場合

hostsファイルを編集しても中々設定が上書きされていないことがあります。その場合は以下を注意して見てみましょう。

hostsの設定情報があっているか

hostsファイルに設定した情報が本当にあっているか、またアプリを使っている場合はあまり意識することがないところかと思いますが、改行コードなどはutf-8のLFになっているかなど文法の問題をチェックしてみましょう。

DNSのキャッシュをクリアしてみる

以下のコマンドでDNSのキャッシュをクリアできます。反映されない場合はターミナル上で一度試してみましょう。

sudo killall -HUP mDNSResponder

そもそもどうやって反映されているか試しているのか

hostsファイルが効いているかどうかをどうやって試しているかも関係してきます。というのもコマンドによってはhostsファイルを参照しないものがあります。

例えばコマンドのdigやnslookupはhostsファイルを参照せずに、DNSサーバーの情報を見に行きますので、hostsファイルの内容は無視されます。

pingやブラウザでドメインをたたいてみて、hostsファイルの情報が適用されているか試してみましょう。

まとめ

いかがでしたでしょうか。Macでhostsファイルを設定する方法をまとめました。またhostsファイルが反映されない場合の対処や見るべきポイントについてもあわせてまとめています。

hostsファイルはあまり編集する機会がないかもしれませんが、だからこそ、どうやってやるのか毎回調べる事が多い設定なのかと個人的には思っています。

今回の情報が少しでも役立てば幸いです。


関連記事