(1) hostsファイルの役割+IISとDNSの名前解決の関係性
(1-1) はじめに
(2) hostsの利用例①:開発中のアプリをローカルでテストする
(2-1) 検証①:hostsファイルの追記のみ
(2-2) 検証②:IISの設定のみ
(2-3) 検証③:hostsファイルの追記&IISの設定の両方を実施
(2-4) まとめ
(3) hostsの利用例②:有害なサイトを見れなくする
(3-1) 検証①:hostsファイルの追記のみ
(3-2) 検証②:IISの設定のみ
(3-3) 検証③:hostsファイルの追記&IISの設定の両方を実施
(1) hostsファイルの役割+IISとDNSの名前解決の関係性
(1-1) はじめに
本記事ではWindowsの「hostsファイルの役割」を実際の例を交えてご紹介します。
IIS(Webサーバ)とDNSによる名前解決(ホスト名/ドメイン名からIPを割り出す)の関係性についても見ていきます(お互いがどのように協力しあってWebアプリを公開しているか?)。
以降では、hostsファイルの実際の利用シーンを2つご紹介します。
(2) hostsの利用例①:開発中のアプリをローカルでテストする
Webアプリの開発中は、実際にブラウザからどのように見えるか❓を確認できると非常にスムーズと思いますが、hostsファイルを利用する事で手軽に「ローカルから任意のドメイン名でサイトにアクセス」してページの表示を確認する事ができます。
例として、ASP.NET Webアプリケーション(MVC5 .Net Framework 4.7)を「abcdefghijk.com」というドメインで公開したいとします。
(表)
アプリケーションの種類 | ASP.NET Webアプリケーション (MVC5 .Net Framework 4.7) |
公開に使用したいドメイン名 | abcdefghijk.com |
(2-1) 検証①:hostsファイルの追記のみ
検証①はIISの設定はせず、hostsファイルにIPアドレス&ドメイン名を登録しただけの状態です。
■hostsファイルの追記
今回は実存するIP(このサーバ自体)を指定します(⇒名前解決は出来る)。
(図211)
(2-2) 検証②:IISの設定のみ
検証②はhostsファイルに書き込みせず、IISの設定のみを行った状態です。そのため、先ほど定義したhostsファイルは一旦コメントアウトします。
(図221)
(図222)①
↓
(図222)②
アプリの表示以前に「名前解決」が出来ないため「このページは表示できません」と表示されています(初期状態と変わらない)
(図223)
(2-3) 検証③:hostsファイルの追記&IISの設定の両方を実施
両方の対応を行う事で、初めてドメイン「abcdefghijk.com」を指定して、作ったASP.NETのWebアプリに接続できます。
(2-4) まとめ
結果をまとめると、次のような結果になりました。
(表)
パターン | hostsファイルの追記 | IISの設定 | 表示結果 |
何もしない | ×(なし) | ×(なし) | ×:このページは表示できません |
パターン① | ○(あり) | ×(なし) | ×:404エラー |
パターン② | ×(なし) | ○(あり) | ×:このページは表示できません |
パターン③ | ○(あり) | ○(あり) | ○:200成功(正常に表示) |
(3) hostsの利用例②:有害なサイトを見れなくする
例えば自宅のPC等で、小さな子供に見てほしくないサイト等がある場合などに、hostsファイルが非常に役に立ちます。hostsファイルにて閲覧禁止したいサイトのURLを、存在しないIPアドレスに名前解決するようにhostsファイルを設定する事で、ページを見れなくする事ができます。
例として「tennis-database.com」を自宅PCからアクセス不可にしたいとします(※あくまで例です。このサイトは危険でも何でもなく、むしろ私が昔JSP/Servletで作ったサイトなので、本音はアクセスして欲しいですが・・笑)
(図301)初期状態ではこんな画面が表示されます・・✨(笑)
(3-1) 検証①:hostsファイルの追記のみ
検証①はIISの設定はせず、hostsファイルにIPアドレス&ドメイン名を登録しただけの状態です。
(図311)
(3-2) 検証②:IISの設定のみ
検証②はhostsファイルに書き込みせず、IISの設定のみを行った状態です。
(図321)
アプリの表示以前に「名前解決」が出来ない(ダミーのIPに誘導できない)ため、元々のページが表示されています(初期状態と変わらない)
(図322)
(3-3) 検証③:hostsファイルの追記&IISの設定の両方を実施
両方の対応を行う事で、初めて「tennis-database.com」へのアクセスを抑止し、ダミーのサイトを表示する事に成功しました。
■表示結果
ダミーのサイトが表示されています。
(図333)