iPadのhostsファイルを編集する

DNSCloakアプリのアイコン
DNSCloak (アイコンクリックでApp Storeへ)
「DNSCloak • Secure DNS client」をApp Storeで

iPadでもmacOSで言うhostsファイルをいじりたくなることがあります。ここではネームサーバーの切り替え前に自分のサーバーへアクセスしたい場合を想定し、iPadやiPhone含むiOSデバイスでhostsファイルを編集したと同等のことを「DNSCloak」なるアプリで実現してみたいと思います。

想定読者

サーバー移転時や開発段階のサーバーなどへ、ネームサーバーが切り替わる前にアクセスするためにhostsファイルを利用することがあります。同等のことをiOSデバイスやiPadで行いたい方へ向けた記事です。

使うアプリ

「iPadのhostsファイルを編集する」なんてタイトルの記事ですが、実際はそれと同等のことをアプリで実現する内容です。基本的に「DNSCloak」にhostsファイルに似た形式のファイルを読み込ませて、対象サーバーのIPアドレスを名前解決させます。

DNSCloakアプリのアイコン
DNSCloak (GitHubへ)

Kodexはテキストエディタです(KodexのApp内課金は投げ銭なので無料で全機能使えます)。お好みのテキストエディタがあればそちらをお使いください。UTF-8でデバイス内やiCloud上に.txt形式で保存できるものであれば問題ありません。

早速hostsファイルを書く

DNSCloakが受け付けるルールファイル(便宜上、以後“hostsファイル”と呼びます)は次の形式です。

example-test.com 111.222.333.444

注意したい点は、ご覧のようにmacOSのhostsと逆で、ドメイン名を先に記述し半角スペースを挟んでサーバーIPアドレスを記述します。この名前解決ルールは1行に1ルールずつ記述する点、macOSのhostsファイルと共通です。

では、Kodexでhostsファイルを作成し、任意のディレクトリに保存しましょう。まずはKodexを開いて“New File”をタップします。

Kodexの初期画面
“New File”をタップ

ちなみにアプリの外観ですが、初期設定ではテーマがDarkでTintも赤色と邪悪な印象を受けたため、わたしは設定からテーマをLightに、Tintを青色に設定しています。

さて、ここへドメイン名+半角スペース+IPアドレスの形式でhostsルールを記述します。

例として“example-test.com 111.222.333.444”と記入したところ
例としてexample-test.com 111.222.333.444と記入

編集を終えたら、画面左上、左から2番目の巻物アイコンをタップ、“Save Document As…”をタップします。するとファイル名入力欄が表示されるので、ここにはhosts.txt拡張子.txt込みで入力しましょう。

ファイル名入力画面
ここには必ず.txtという拡張子を含めること!

今回はiCloud上のDocumentsというフォルダ直下に保存しました。

iCloudドライブ上のDocumentsフォルダを選択している画面
ここで表示されるファイル名は拡張子無しだが、このままで問題なし!

では、DNSCloakにこのhostsファイルを読み込ませてみましょう。

DNSCloakのセットアップ

初期設定

では、DNSCloakを開きましょう。

DNSCloakのメイン画面
まずは画面左上のハンバーガーメニューより設定画面を開きましょう

初期状態ではステータスバーにVPNアイコンが表示されない設定になっているので、画面左上のハンバーガーメニューをタップし設定画面を開き、お好みでオンデマンド接続を有効にしたり、ステータスバーへのVPNアイコン表示を有効にしたりしましょう。

一般設定(General options)画面
“Show VPN icon”をONにするとステータスバーに状態が表示されるためおすすめです

hostsファイルの読み込み

続けて“Advanced options”をタップし展開して、“Enable Cloaking”下の“Pick rules file…”をタップします。するとファイル一覧が表示されるので先程作成したhostsファイルを選択します。

高度な設定(Advanced options)画面
“Enable Cloaking”下の“Pick rules file…”をタップ

わたしはiCloudドライブのDocumentsフォルダ直下にhostsファイルを保存したので、それを選択しました。

iCloudドライブのDocumentsフォルダからhostsファイルを選択しているところ
Kodexで作成したhostsファイルを選択します

すると“Enable Cloaking”がONになります。ちなみにCloakという単語は“仮面”や“偽装”といった意味を持ちます。iPadが利用するDNSを、hostsファイルのルールに則ったDNSへ偽装(切り替え)できる仕組みです。

さて、これで設定は完了です。画面左上の戻るボタンよりメイン画面へ戻りましょう。

DNSサーバーの選択

ここまでくれば後はお好みのDNSサーバーを選択するだけです。今回は“cloudflare”を使うことにします。

メイン画面のDNSサーバー一覧からcloudflareサーバーを選択したところ
お好みのDNSサーバーを選択します

サーバー名をタップして、“Use this server”をタップするとVPN構成の追加許可を求められます。

VPN構成の追加許可プロンプト
“Allow(許可)”をタップしました

“Allow(許可)”をタップすると設定画面へ飛び、端末のパスコード入力を求められます。

パスコード入力画面
端末のパスワードを入力してVPN構成を追加しました

パスワードを入力するとVPN構成が追加されます。VPN構成は一度追加してしまえば、以後この作業は不要です。するとDNSCloakのDNSサービスが始動します。

DNSサービス開始中のぐるぐる(ローディングインジケータ)
DNSサービス開始中…

大抵の場合、30秒から1分ほどでDNSサービスが始動しますが、バグによりずっと“Starting DNS service”のぐるぐる(ローディングインジケータ)が表示され続けることがありました。そんなときは少し(30秒くらい?)待ってから一旦“Stop”でキャンセルし、再び始動させるか、あるいは一度ホーム画面へ戻り、再度DNSCloakを開くと正常な状態になったりします。さて、無事に始動すると、DNSCloakメイン画面左上の再生ボタンが停止ボタン(四角■)に変化したり、設定に依ってはステータスバーにVPNアイコンが表示されるので、動作していることが確認できます。

DNSサービス動作中のDNSCloakメイン画面
この状態になればhostsファイルのルールが効いています!

これでhostsファイルの書き換えは完了です!

動作確認

Safariより、hostsファイルに入力したドメイン名をアドレスバーに入力してみます。

Safariにて、hostsファイルに記入したドメイン名へアクセスしたところ
“It works!”ページが表示された!

無事サーバー上のコンテンツが表示されました!

DNSCloakの停止

用が済んだらDNSCloakを停止しましょう。DNSCloakメイン画面左上の停止ボタンをタップすることでDNSサービスが停止します。

DNSサービス動作中のDNSCloakメイン画面
画面左上の停止ボタンをタップすると、DNSサービスが停止する

これで元の状態に戻ります!再度hostsファイルを有効にしたい場合はメイン画面左上の再生ボタン(三角▶)をタップしDNSサービスを始動させるだけです。

hostsファイルを入れ替えたい場合は「(ハンバーガーメニューより)設定画面」→「Advanced options」より“Enable Cloaking”下の“Pick rules file…”をタップし、別のhostsファイルなり、新しく更新したhostsファイルを選択して、再生ボタンをタップしDNSサービスを再起動させるだけです。

DNSCloakのアンインストール

通常のアプリ同様、ホーム画面にてDNSCloakをロングプレスし、バツ印をタップで削除できます。アプリを削除することでVPN構成も削除されることを確認しました。

このように、iPadでもアプリの力を借りることでhostsファイルの編集に相当する機能を得られます。わたしは開発中のサーバーをiPadでお披露目するときに利用しました。サーバー事業者によっては動作確認用URLを提供しているところもありますが、WebアプリやCMSによるWebサイトの場合などは細部で名前解決が上手く行かないことがあり、結果不具合に繋がります。ちなみにわたしは今回の方法で問題なくお披露目会を終えることができました。DNS偽装に感謝です。

DNSCloakはいわゆるVPNアプリなのですが、GitHubにてソースコードを確認することができます。とは言え、ご利用の際はApp Storeにて、アプリのプライバシーポリシーを一読の上、同意できる方のみご利用ください。また、DNSCloakで選択するDNSサーバーも自身が信頼性を置けると判断したサーバーのみ利用するようにしてください。

6189225664305765469 https://www.storange.jp/2021/08/dnscloak.html https://www.storange.jp/2021/08/dnscloak.html iPadのhostsファイルを編集する 2021-08-08T11:16:00+09:00 https://www.storange.jp/2021/08/dnscloak.html Hideyuki Tabata 200 200 72 72