web-dev-qa-db-ja.com

iPhone:脱獄せずに/ etc / hostsにエントリを追加する

私の開発プロセスでは、VPNの背後にあり、DNSエントリがないWebサーバーにアクセスする必要があります。私が4.xでやっていたことは、iPhoneの/ etc/hostsを編集し、それをhostsファイルに追加することでした。

現在、私は5.0ベータ版を使用しています。この目的のためだけに今のところ脱獄したくありません。

/ etc/hostsに行を追加する方法はありますか?ジェイルブレイクせずに、開発目的でのみ(最終的な配布アプリケーションはこのハックを必要としません)?他の手段を使用できますか(たとえば、アプリケーションの起動時に不明な手段で偽のDNSエントリを宣言します)?

16
Cyrille

ワイヤレスネットワークにローカルDNSサーバーをセットアップするか、動的DNSサービスを使用するか、DNSを制御するドメインにAレコードを追加することにより、実際のDNSエントリをセットアップします。

9

[〜#〜] edit [〜#〜]:小規模なライセンスを購入する場合は、 Charles Proxy 、Webデバッグプロキシツール。また、ローカルの/ etc/hostsからドメインを解決し、多くのボーナス機能を提供します(つまり、リクエスト/レスポンスを検査し、ネットワーク速度をスロットルします)。私はWWDCビデオからこのツールに出くわしただけで、製品とはまったく関係ありません。 Chris ChingのiPhoneとCharles Proxyのチュートリアル を読んで始めることをお勧めします。


Ramon's answer に追加するには、ローカルコンピューターをDNSサーバーとしてセットアップし、iPhoneがDNSサーバーとしてコンピューターをポイントするようにします。これはAndroidデバイスでも機能します

手順は、Homebrewを介したMac OSX向けです。

  1. brew install dnsmasq
    • dnsmasqは、不明なドメインに遭遇したときに元のDNSサーバーにフォールバックする軽量のDNSサーバーです
  2. address=/.your.domain.com/10.0.0.5をファイル/usr/local/etc/dnsmasq.confに追加します
    • IPアドレス10.0.0.5は、ルーターによってローカルコンピューターに割り当てられたIPアドレスです。これはNetwork Utilityから見つけることができます(派手になりたい場合は、ルーターのローカルコンピューターに静的IPを割り当てることができます)
  3. Sudo dnsmasq
    • これによりdnsmasqプロセスが開始され、DNSポートでリッスンします
  4. システム設定->ネットワーク->詳細設定-> DNSタブで、ローカルコンピューターとルーターをコンピューターのDNSサーバーとして割り当てます。
    • ローカルコンピューター(127.0.0.1)用とルーター用の2つのエントリがあります。ルーターのIPをdnsmasqに含める理由は、他の既知のDNSサーバーを通じて未知のエントリを満たします。ルータエントリがなければ、あなたはあなたに接続されているどんなデバイスでもdnsmasqはインターネットに接続する方法を知りません。
  5. IPhoneのDNSサーバーとしてローカルコンピューターのIPアドレスを設定し、[設定]-> [Wi-Fi]-> [接続されているルーターの情報アイコン]-> [DNS]に移動します。

考慮すべき事項:

  • マシンをシャットダウンすると、iPhoneはインターネットに接続できなくなります。 iPhoneのDNSサーバーをルーターのIPにリセットしてください
  • デフォルトでは、dnsmasqは/ etc/hostsを参照するため、your.domain.com127.0.0.1に指定した場合、iPhoneはyour.domain.com127.0.0.1に解決します。つまり、何にも接続しません。この動作を変更するには、dnsmasq構成の#no-hosts行のコメントを外します。

出典

18
John K. Chow

また、dnsmasq(macports/brewから入手可能)をセットアップすることもできます。これは、あらゆる種類の代替レコードを設定できるDNSフォワーダーとして機能します。

次に、iPhone/ipadでDNSmasqを実行しているボックスを指すようにDNSを設定すると、dnsmasqボックスの/ etc/hostsにあるホストが最初に返されます。見つからない場合、dnsmasqはクエリを上流のDNSに送信します。

また、SRVレコードをdnsmasq.confに追加することもできます。

srv-Host=_sip._udp.devel.foo.com,devel.foo.com,5070 

そして、他の多くの美しさ。

3
Ramon Poca

実際には、Tweakboxのサードパーティ製アプリFilzaJailedを使用して、脱獄せずにhostsファイルを変更できます。/etc/hostsに移動してクリックし、テキストエディターを使用して開きます。

0
User168