iPadでは(脱獄せずに)hostsファイルを編集できないため、Webトラフィックを別のURLに任意にリダイレクトするにはどうすればよいですか?
これは、仮想マシン構成を使用するWebサイトの開発など、開発マシンにリダイレクトする場合に重要です。
(これはこの質問に関連しています:iPadのホストファイルを編集できますか?)
iPadでは(脱獄せずに)hostsファイルを編集できないため、Webトラフィックを別のURLに任意にリダイレクトするにはどうすればよいですか?
これは、仮想マシン構成を使用するWebサイトの開発など、開発マシンにリダイレクトする場合に重要です。
(これはこの質問に関連しています:iPadのホストファイルを編集できますか?)
回答:
iPadのこの制限を回避する方法は、SquidなどのHTTPプロキシサーバーを使用することです、ホストファイルを編集できる別のマシンで実行さことです。
iPadでは、[設定]-> [ネットワーク]-> [Wi-Fi]->(ネットワーク)の下に、手動に設定できるHTTPプロキシ設定があります。ここにプロキシ情報を入力します。
これがセットアップされると、hostsファイルを変更する場合と同じようにiPadを操作できるようになります。
yum install squid
フェドーラ
apt-get install squid
Ubuntuで
sudo service squid3 reload
です。また、これはおそらく私の開発サーバーに固有の設定の問題です-iPadでは、アドレス解決が正しく機能するように手動でhttp://を入力する必要があります。
iPadのWifi設定を変更して、開発マシンのIPアドレスをHTTPプロキシとして使用する必要があることがわかりました(前述の記事で説明されています)。
そうすれば、仮想ホストのURL(などlocal.mywebapp.com
)を入力して、iPad上のWebアプリケーションにアクセスできるようになります。簡単かつ迅速ですが、ウィルケーラーのソリューションとは異なり、iPadからインターネットにアクセスすることはできません。しかし、ほとんどの場合それは実際には問題ではありません。自分のアプリケーションをテストしたいだけだからです。
80
。
FiddlerやCharlesなどのプロキシサーバーを実行しているコンピューターでhostsファイルをセットアップし、そのコンピューターをHTTPプロキシとして使用するようにiPadを設定します。
Fiddlerでこれを行う方法の手順は次のとおりです。http: //conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
そして、これはチャールズ用です:http : //www.ravelrumba.com/blog/ipad-http-debugging/
すでに開発を行っているApacheサーバーがある場合は、フォワードプロキシとして簡単に使用できます。これは、完全な絶対URLを使用したいWordPressサイトで特に役立ちます。
Ubuntu以下の例:
最初のステップは/etc/hosts
、開発サーバーでファイルを編集することです。サイトを指すサーバーのローカルIPを追加します。
127.0.0.1 dev.mysite.com
このhostsファイルは、ApacheプロキシがiPhone / iPadからのリクエストを解決しようとするときに使用されます。それでは、Apacheの部分をセットアップしましょう...
最初にいくつかのモジュールをインストールする必要があるかもしれません。
sudo apt-get install libapache2-mod-proxy-html
sudo a2enmod proxy proxy_http proxy_html
sudo apache2ctl graceful
次に、仮想ホストファイルを作成します。 /etc/apache2/sites-available/my-proxy
Listen *:8080
<VirtualHost *:8080>
ProxyRequests On
<Proxy *>
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
</Proxy>
</VirtualHost>
仮想ホストを有効にし、Apacheを再起動します。
sudo a2ensite my-proxy
sudo apache2ctl graceful
次に、[設定]> [Wi-Fi]> [ネットワーク]に移動して、「手動」プロキシを構成します。ApacheサーバーのIPとポートを入力します。それでおしまい!
この<Proxy *>
ブロックにより、ローカルネットワーク上の人だけがこのプロキシを使用できるようになります。フォワードプロキシを使用している場合は、アクセスを厳密に制限することが不可欠です。この時点でip2cidrページが役立ちます。(追加の対策として、:8080ポートがファイアウォールによってブロックされています。)
iPadで開発しているWebアプリをテストする必要があります。開発アプリでApacheを使用してウェブアプリを実行しているので、Apache mod_proxyを使用するのが最も簡単な方法でした。
私の開発マシンは、ホームネットワークでsapphire.localとして表示されます。
テストしているWebアプリは、demo.cms.devの開発マシンでホストされています(私はPOWを使用しています)。
プロキシをセットアップするために、次のセクションをhttpd.confに追加しました。
<VirtualHost *:80>
ServerName sapphire.local
ProxyPass / http://demo.cms.dev/
ProxyPassReverse / http://demo.cms.dev/
ProxyPassReverseCookieDomain .cms.dev .sapphire.local
ProxyPreserveHost Off
</VirtualHost>
これにより、sapphire.localの着信リクエストがdemo.cms.devにルーティングされます。この方法は、一度に1つのアプリでのみ機能します。別のポートを使用して追加のアプリをセットアップできると思います。多分誰かがより良い解決策を持っていますか?
Weblock-AdBlock for iOSアプリ($ 1.99で入手可能:https ://itunes.apple.com/us/app/weblock/id558818638?mt=8 )を使用して、Webトラフィックのリダイレクトを作成することもできます。
これにより、特定のルールに一致するトラフィックを指定したIPアドレスにリダイレクトできます。これにより、iOSデバイスの/ etc / hostsへのエントリの追加がエミュレートされます。リクエストに設定されたホスト名がトラフィックの転送先のIPによって処理される場合、これを使用してプライベートAPIをテストしたり、他のアプリやウェブサイトから送信されたトラフィックを傍受したりすることもできます。残念ながら、これはhttp / https接続でのみ機能します。
これはすべて、Wi-Fi(Weblockの制限の1つ)でのみ実行できます。主な利点は、iOSデバイスからすべてを簡単に構成でき、DNS /プロキシサーバー構成をいじる必要がないことです。
次に例を示します。
macbook-pro-tk:〜kpr $ nc -l -v -v 1234 GET http://www.google.com/ HTTP / 1.1 ホスト:www.google.com 受け入れる:text / html、application / xhtml + xml、application / xml; q = 0.9、* / *; q = 0.8 プロキシ接続:キープアライブ PREF = ID = 7722bc3c844a7c26:TM = 1402073839:LM = 1402073839:S = 5bSJJsM2p0HgUP7L ユーザーエージェント:Mozilla / 5.0(iPhone; CPU iPhone OS 7_1_1 like Mac OS X)AppleWebKit / 537.51.2(KHTML、like Gecko)Version / 7.0 Mobile / 11D201 Safari / 9537.53 Accept-Language:en-us Accept-Encoding:gzip、deflate 接続:キープアライブ
Weblockは、一部のURLを正規表現で選択的にリダイレクトするのにも適しています。クエリは特定のエンドポイントにのみリダイレクトできますが、他のすべてのクエリはDNSから返されたIPに送信されます。これにより、実際には/ etc / hostsよりも適切な構成が可能になります。
例:htt *://somedomain.com/api/login*と一部のIPおよびポートのURLリダイレクトルールを作成すると、このIPとポートではこのURLからのトラフィックのみが表示され、他のドメインへのトラフィックはすべて表示されます。 comは、DNSから返されたIPに直接移動します。ルールの最後にあるワイルドカード*記号により、/ api / loginと/ api / login?someparam = somevalueの両方で機能することに注意してください。
http://xip.io/を使用することもできます。そのページの指示に従ってIPアドレスを入力すると、関連するローカルIPにリダイレクトされます。
Mamp Pro Virtualホストのクロスデバイス/コンピューターテストの構成方法はありません。唯一の制限は、一度に1つのドメインしかテストできないことですが、私が開発しているときは、これで問題ありません。ただし、mampで仮想ホスト間を直接変更するのは本当に簡単です。
Imはmamp pro 2、マウンテンライオンを実行しています。個人用サイトフォルダーには、個々のドメインフォルダーが含まれています。
ローカルホストコンピューターの特定のIPを仮想ホスト 'ip / port'の下で選択し、再起動すると、ローカルホストコンピューターのIPアドレスまたはコンピューター名をネットワーク経由で表示すると、このドメインがデフォルトドメインになります。
テスト目的の場合、これはiPadを含むネットワーク上のすべてのデバイスでうまく機能します。別の仮想ホストをテストする場合は、ip / port構成を「*」に戻し、別のドメインをコンピューターのIPアドレスに再割り当てして再起動します。
この単純なアプローチの利点は、クライアントが同じネットワーク上にある場合に、マシンの構成を経由することなく、クライアントに直接アクセスして開発サイトにアクセスできることです。
これが簡単な解決策を探している人を助けることを願っています。
内部DNSサーバーはオプションの1つですが、実装するには面倒すぎました。squidをプロキシサーバーとしてインストールしようとしましたが、URLを新しいサーバーにリダイレクトしていて、このリダイレクトがブラウザーのURLでも見られたため、これも機能しませんでした。
最終的に私たちにとってうまくいったことは、サーバーの1つにFiddlerをインストールし、このサーバーをiPadのプロキシサーバーとして使用することでした。Fiddlerには、サブドメインをIPアドレスにマップする機能もあります。たとえば、/ etc / hostsのようなものです。
そうするための素晴らしいチュートリアル:http : //egalo.com/2012/05/29/testing-mac-web-site-using-local-hostname-on-mobile-device/
もう1つの方法は、ローカルホットスポット経由でIPadをMAC OS Xに接続し、開発VMへのポート転送を確立することです。これを達成するには、次の手順を実行します。
ssh -NL <IP-of-hotspot-host>:<source-port>:<url-to-local-vm>:80 <user-to-vm>
<IP-of-hotspot-host>:<source-port>
ホットスポットを作成した後、
MAC OS Xシステム設定>>ネットワーク>> WLANにWLAN ポイントがあります
/etc/apache2/sites-available/dkr.dev.local にある私の開発VM(Apache2)で、以下を追加する必要がありました。
<VirtualHost *:80> ... ServerAlias <ホットスポットホストのIP> ... </ VirtualHost>
あなたがこれといくつかの外部リンクを探索してきたなら、おそらくこの答えを見つけるでしょう:
https://stackoverflow.com/a/24770097/3842985
これは、dnsmasqと呼ばれる軽量DNSサーバーに関するものです。非常にシンプルで非常に強力で、内部または外部のDNSサーバーと組み合わせて使用できます。
squidのインストール、Apacheの操作、および時間がかかる他の手法よりもはるかに簡単で、構成、開発環境、テスト環境などの「完全性」を危険にさらします。
検討する価値があります。
私はそれを開発と通常のネットワーキングのための通常のツールとして採用しました。
PCでカスタムDNSサーバーを使用すると、これを解決できます。私は完全に使用して作業しています。
カスタムDNSサーバーをダウンロードするには、https://technitium.com/dns/を確認してください。.Netテクノロジーを使用して構築されています。このツールを構成した後、DNS設定をカスタムに変更し、PCのIPを設定する必要があります。PCを再起動するたびにIPを変更しないようにするには、PCで静的IPを使用します。