脱獄不要。iPhoneでもhosts切り替えしてテストサーバを見る方法

hosts

iPhone や Androidのスマホでhostsを書き換えて未公開のサーバを閲覧したい時ってありますよね

Androidなら普通にhostsを書き換えればいいのですが、iPhoneの場合はiOSの制約があって、いろいろ難しいところですが、以下の方法なら簡単です

必要なもの
・WifiのあるLAN環境
・MacやPCなどのhosts書き換え可能なパソコン

ここではMacを例に手順を書いておきますが、OSは別になんでも大丈夫です

大まかな手順
1. Macをhosts切り替え可能な状態にする
2. Macでapacheを起動する
3. ApacheをProxyに設定する
4. 同じLANの中にいるiPhoneのProxy設定でMacのIPアドレスを指定する

なんと4ステップです!

○解説

●ステップ1
ss
MacにHOSTS という機能拡張を入れます
ダウンロードはここから
https://github.com/specialunderwear/Hosts.prefpane/downloads

使い方は簡単 左側にIPアドレス、右側にドメイン名です
テストサーバとして使いたいIPアドレスと、本番で使っているドメイン名の組み合わせですね

●ステップ2
Macに内蔵されているWebサーバを起動させます
アプリケーション >ユーティリティ >ターミナルを起動させて
$ sudo apachectl start

パスワードを聞かれるので、自分のログインパスワードを入力します
この時点で、管理権限がないとダメですし、自分用にパスワードを設定している必要があります

●ステップ3
ss-1

ここが一番面倒なのですが、1回だけやればいいので頑張りましょう
Finder >移動メニュー >フォルダへ移動 を選び
/etc/apache2 と入力

httpd.conf というファイルがあるので、ファイルメニュー >複製 を選んでコピーを作ります
(このファイルは保険です、以下では使いません)

httpd.conf をテキストエディタで開いて、「mod_proxy」を検索します
検索された行の先頭に「#」マークが ナイことを確認します
もし「#」マークがあったら、削除しておきます

一番下の行に移動して、以下をコピペします

<IfModule mod_proxy.c>
  ProxyRequests On
  ProxyVia On
  Listen 8080
  <Proxy *>
    Order deny,allow
    Deny from all
    Allow from all
  </Proxy>
</IfModule>

ちょっと危ない設定ですが、LANの中で使うだけなので問題なしです
これで、保存して、ファイルを閉じます

ターミナルに戻って
$ sudo apachectl restart

これで、Mac側の設定は終了です

●ステップ4
img_0226

iPhoneやAndroidのWIFI設定画面を出して、下の方にスクロールすると
HTTPプロキシ の設定があるので、「手動」を選んで
サーバ には ステップ3で使っていたMacのIPアドレス(Macの環境で確認。)
ss-2
ポートは 8080

これで終了です!
Mac側のHOSTSの指定通りのサイトが閲覧できれば問題なし

もとに戻したい場合は、プロキシを「オフ」にすればOK