nsINativeDNSResolverOverrideで、hostsファイルを編集せずにドメインのIPアドレスを変更する方法

更新日:

サーバー移転時のWebサイトの表示確認に欠かせないhostsファイルの編集。しかし、パソコンの管理者権限がなくて編集できないケースも少なくありません。

この記事では、管理者権限不要でドメインの参照先のIPアドレスを変更できる、FirefoxのnsINativeDNSResolverOverrideをご紹介します。

利用にあたっての重要なルール

自身が所有・管理しているドメインおよびサーバーであること

nsINativeDNSResolverOverrideは、あくまでサーバー移転時などの動作検証のために使用するものです。第三者が所有するドメインを無断で自身の用意したサーバーに紐づけるような行為は行わないでください。

悪用厳禁(自己責任)

紹介する内容は、開発・検証を目的とした技術情報です。誤った設定や不正な目的での使用により発生したトラブルについて、当社は一切の責任を負いかねます。必ず自身の管理下にある環境で、マナーを守って実行してください。

nsINativeDNSResolverOverrideによるIPアドレスの上書き

Firefoxの機能であるnsINativeDNSResolverOverrideを使用すれば、システム全体のhostsファイルを編集するのとほぼ同等の操作がブラウザー内だけで完結します。

※ドメインとIPアドレスは例です。

hostsファイル書き換えの代替

IPアドレスの上書き手順

  1. Firefoxのプライベートウィンドウを起動します。
  2. Ctrl + Shift + J(Macの場合は Cmd + Shift + J)を押して、ブラウザーコンソールを開きます。
  3. 以下のコードのドメインとIPアドレスを任意のものに書き換え、コンソールに貼り付けてEnterを押します。
const override = Cc["@mozilla.org/network/native-dns-override;1"].getService(Ci.nsINativeDNSResolverOverride);
override.addIPOverride("example.com", "192.0.2.1");

出典:test_dns_override.js – mozsearchより一部改変

親プロセスブラウザーコンソール

このコードはFirefoxのXPCOM(クロスプラットフォーム・コンポーネント・オブジェクト・モデル)に直接アクセスし、nsINativeDNSResolverOverrideインターフェースを通じて名前解決の挙動を一時的に書き換えています。

Firefoxを再起動すればこの設定はリセットされるため、システムを汚さず安全にテストが可能です。再起動せずにリセットする場合は、下記コードをコンソールに貼り付けてEnterを押します。

override.clearOverrides();

使用時に移転先サーバーにアクセスできないケース

以下の設定によっては意図した通りに移転先サーバーにアクセスできない場合があります。

ドメイン設定

移転先サーバーにドメインが設定されている必要があります。

SSL/TLSサーバー証明書

移転先サーバーにSSL/TLSサーバー証明書が設置されている必要があります。

WAFの影響

移転先サーバーのWAF設定によってはアクセスが遮断される場合があります。

サーバーサイドの通信

PHPのcURLなど、サーバー内部で完結する通信には影響しません。その場合は別途CURLOPT_RESOLVEオプションを使用するなどの対応が必要です。

Firefoxのセキュリティ設定

Firefoxの「DNS over HTTPS」が有効になっていると動作しないため、一時的にオフにする必要があります。

DNS over HTTPS

移転先サーバーでWebサイトを確認する他の方法の例

hostsファイルの書き換えやnsINativeDNSResolverOverrideによる上書きの他にも、管理者権限がないパソコンで移転先サーバーのWebサイトを確認する方法はあります。

サブドメインを利用する

確認専用のサブドメインを作成して移転先サーバーを割り当てれば、ブラウザーを選ばず表示確認ができます。ただし、サブドメイン用のSSL/TLSサーバー証明書が必要です。

初期ドメインを利用する

多くのレンタルサーバーでは、契約時に発行される初期ドメインが用意されています。これを利用すれば本番ドメインの切り替え前でも移転先サーバーにアクセスし、サイトの表示を確認することが可能です。

いずれの方法もソースコードにドメイン名をハードコーディングしている場合や、絶対パスを使用している箇所などは正しく動作しない可能性があるため注意が必要です。

tooolsのTech Blogではこれからも役に立つ情報を発信していきますので、定期的に閲覧していただけると幸いです。

参考:nsIServiceManager.idl – mozsearch
参考:components.conf – mozsearch
参考:nsINativeDNSResolverOverride.idl – mozsearch
参考:PHP: 定義済み定数 – Manual

学校授業の「IT化」で、こんなお悩みありませんか?【e-おうち】
出張/持込/宅配でパソコン修理・設定 24時間365日対応
消費税計算

税率を設定して税込/税抜金額の消費税計算ができます。

文字数カウント

文字数をカウントできます。

和暦西暦変換

和暦と西暦を相互変換できます。

年齢計算

和暦または西暦から年齢を計算できます。

入学年・卒業年計算

履歴書に必要な学校の入学年・卒業年を生年月日から計算できます。

単位変換(換算)

キロ、マイル、グラム、華氏などの様々な単位を相互変換(換算)できます。

カラーコード変換

カラーコード(16進数)とRGB値(10進数)を相互変換できます。

Webタイマー(カウントダウン)

Webタイマー(カウントダウン)です。ストップウォッチ機能もあります。

生活に便利な電話番号一覧

警察や消防などの緊急連絡先や電話番号案内などの電話番号を確認できます。

プロバイダーのカスタマーサポートの電話番号一覧

主なプロバイダーのカスタマーサポートの電話番号を確認できます。

タスク管理(ToDo)

自分のWebブラウザーだけでタスク管理(ToDo)ができます。

エクセル関数

エクセル関数を検索できます。

麻雀の点数計算

麻雀の和了時の点数(符数/翻数/役)を計算することができます。

便利なショートカット一覧

Windows 10やExcelなどで使用できる便利なショートカットを確認できます。

電気料金計算

消費電力、使用時間、使用日数、1kWh単価から電気料金を計算できます。

パスワード生成(作成)

大文字・小文字・数字・記号を含むランダムなパスワードを生成できます。

自分のグローバルIPアドレスを確認

自分がインターネットに接続する時のグローバルIPアドレスを確認できます。

学校授業の「IT化」で、こんなお悩みありませんか?【e-おうち】
出張/持込/宅配でパソコン修理・設定 24時間365日対応
出張/持込/宅配でパソコン修理・設定 24時間365日対応
きょうみくん
このサイトの管理者
名前 きょうみくん
身長 181.1cm
誕生日 1月21日
所属 日本PCサービス株式会社
コメント

パソコン、インターネット、サーモン、ミルクティーが好きです。
猫ではありません。

エクセル家計簿の作り方など、技術的なコラムを書いているTech Blogも運営しています。