मैं iPad से किए गए HTTP अनुरोधों को कैसे पुनर्निर्देशित कर सकता हूं?


116

चूंकि एक iPad पर हम होस्ट फ़ाइल (जेलब्रेक के बिना) को संपादित नहीं कर सकते हैं, हम किसी अन्य यूआरएल पर मनमाने ढंग से वेब ट्रैफ़िक को कैसे पुनर्निर्देशित कर सकते हैं?

यह कुछ के लिए महत्वपूर्ण होगा जैसे कि एक वेबसाइट विकसित करना जो वर्चुअल होस्ट कॉन्फ़िगरेशन का उपयोग करता है जहां आप एक विकास मशीन पर पुनर्निर्देशित करना चाहते हैं।

(यह इस प्रश्न से संबंधित है: क्या मैं iPad की होस्ट फ़ाइल को संपादित कर सकता हूं? )

जवाबों:


88

IPad की इस सीमा के आसपास जाने का तरीका एक HTTP प्रॉक्सी सर्वर का उपयोग करना है, जैसे कि स्क्वीड किसी अन्य मशीन पर चल रहा है जहाँ आप होस्ट्स फ़ाइल को संपादित कर सकते हैं।

IPad अंडर सेटिंग्स में -> नेटवर्क -> वाई-फाई -> (आपका नेटवर्क) एक HTTP प्रॉक्सी सेटिंग है जिसे मैन्युअल रूप से सेट किया जा सकता है। आप यहाँ प्रॉक्सी जानकारी दर्ज करें।

एक बार यह सेट हो जाने पर आप iPad में हेरफेर करने में सक्षम होंगे जैसे कि आप मेजबानों की फाइल बदल रहे थे।


3
सिर्फ रिकॉर्ड के लिए मैं कहूंगा कि
मैक्पोर्ट्स

1
या yum install squidफ़ेडोरा पर
अभिषेक

3
या apt-get install squidउबंटू पर
जेस टेलफ़ोर्ड

3
नोट: हर बार जब आप अपने स्क्वीड सर्वर पर होस्ट्स फ़ाइल को संपादित करते हैं, तो एडिट प्रभावी होने के लिए स्क्वीड सेवा को फिर से शुरू करें। उबंटू पर sudo service squid3 reload। इसके अलावा - और शायद यह मेरे देव सर्वर के लिए विशिष्ट एक विन्यास समस्या है - मेरे iPad पर मुझे सही तरीके से काम करने के लिए पता रिज़ॉल्यूशन के लिए http: // को मैन्युअल रूप से दर्ज करना होगा।
एंडी गेसलर

1
ऐसा करने के लिए एक और आसान तरीका है, मैंने लिखा एक उपकरण के साथ: testProxy। कोई विन्यास आवश्यक नहीं: github.com/edwinm/testProxy
edwin

71

मैंने पाया कि आपको अपने आईपैड में HTTP प्रॉक्सी के रूप में (जैसा कि पूर्वोक्त लेख में बताया गया है ) आईपी ​​एड्रेस का उपयोग करने के लिए आपको अपने आईपैड में वाईफ़ाई सेटिंग्स को संशोधित करना होगा :

यहां छवि विवरण दर्ज करें

इस तरह, यह वर्चुअल होस्ट (जैसे local.mywebapp.com) के यूआरएल में प्रवेश करके अपने iPad पर अपने वेब एप्लिकेशन तक पहुंचने में सक्षम होने के लिए पर्याप्त है । यह आसान और त्वरित है, लेकिन विल कोएहलर के समाधान के विपरीत, आप हालांकि आईपैड से इंटरनेट का उपयोग नहीं कर पाएंगे। लेकिन ज्यादातर समय यह वास्तव में एक समस्या नहीं है, क्योंकि आप सिर्फ अपने स्वयं के आवेदन का परीक्षण करना चाहते हैं।


1
बहुत बढ़िया जवाब। यदि आप Webrick का उपयोग करके एक रेल ऐप का परीक्षण कर रहे हैं, तो बस अपने देव मशीन और पोर्ट 3000 का आईपी पता सेट करें
lsaffie

4
यदि आप विंडोज पर Wamp या uWamp का उपयोग कर रहे हैं, तो पोर्ट को सेट करें 80
एपोक

10
मेरे जैसे मामलों के बारे में जहां आपका स्थानीय ऐप विभिन्न एपीआई के नेट पर डेटा खींचता है?
जेरेड एटनियर

28

कंप्यूटर पर होस्ट फ़ाइल को एक प्रॉक्सी सर्वर जैसे कि फिडलर या चार्ल्स चलाने पर सेट करें, और उस कंप्यूटर को HTTP प्रॉक्सी के रूप में उपयोग करने के लिए iPad को कॉन्फ़िगर करें।

फ़िडलर के साथ ऐसा करने के निर्देश यहां दिए गए हैं: http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html

और यह चार्ल्स के लिए है: http://www.ravelrumba.com/blog/ipad-http-debugging/


विंडोज / मैक विकल्पों के लिए fleshing के लिए धन्यवाद।
२०:०

2
हमारे लिए विंडोज डेवलपर्स, फिडलर एक बेहतरीन विकल्प है, क्योंकि अधिकांश डेवलपर्स पहले से ही इसे स्थापित कर चुके हैं।
जोश मोच

11

यदि आपके पास पहले से ही एक अपाचे सर्वर है जहां आप देव कर रहे हैं, तो आप इसे आसानी से एक अग्रगामी प्रॉक्सी के रूप में उपयोग कर सकते हैं। यह वर्डप्रेस साइटों के लिए विशेष रूप से उपयोगी है, जो वास्तव में पूर्ण निरपेक्ष यूआरएल का उपयोग करना पसंद करते हैं।

नीचे दिए गए Ubuntu उदाहरण:

/etc/hostsअपने देव सर्वर में फ़ाइल को संपादित करने के लिए पहला कदम है । अपनी साइट की ओर इशारा करते हुए सर्वर के स्थानीय आईपी को जोड़ें।

127.0.0.1 dev.mysite.com

जब आपके iPhone / iPad से अनुरोधों को हल करने की कोशिश की जाती है, तो यह अपाचे प्रॉक्सी द्वारा होस्ट्स फ़ाइल का उपयोग किया जाएगा। तो आइये अब अपाचे पार्ट को सेटअप करें ...

आपको पहले कुछ मॉड्यूल स्थापित करने की आवश्यकता हो सकती है।

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>

Vhost को सक्षम करें, और Apache पुनः आरंभ करें:

sudo a2ensite my-proxy
sudo apache2ctl graceful

फिर सेटिंग्स> वाई-फाई> अपने नेटवर्क पर जाएं और "मैनुअल" प्रॉक्सी को कॉन्फ़िगर करें। अपने Apache सर्वर और पोर्ट का IP दर्ज करें। बस!

<Proxy *>ब्लॉक सुनिश्चित अपने स्थानीय नेटवर्क पर ही लोग इस प्रॉक्सी का उपयोग कर सकते हैं। यदि आप आगे वाले प्रॉक्सी का उपयोग कर रहे हैं तो सख्ती से पहुंच सीमित करना आवश्यक हैIp2cidr पेज इस बिंदु पर उपयोगी होगा। (एक अतिरिक्त उपाय के रूप में: 8080 पोर्ट मेरे फ़ायरवॉल द्वारा अवरुद्ध है।)


9

मुझे उन वेब ऐप्स को जांचने की आवश्यकता है जो मैं iPad पर विकसित कर रहा हूं। मैं वेब एप्लिकेशन चलाने के लिए अपने देव मशीन पर अपाचे का उपयोग करता हूं, इसलिए मुझे जो सबसे आसान समाधान मिला वह था अपाचे mod_proxy का उपयोग करना।

मेरी देव मशीन मेरे घरेलू नेटवर्क पर नीलमणि के रूप में दिखाई देती है।

मैं जिस वेब ऐप का परीक्षण कर रहा हूं, वह डेमो मशीन में देव मशीन पर होस्ट किया गया है (मैं 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>

यह रूट नीलमणि पर आने वाले अनुरोधों को Demo.cms.dev पर भेजता है। विधि केवल एक बार में एक ऐप के लिए काम करती है। मुझे लगता है कि आप अतिरिक्त एप्लिकेशन सेटअप करने के लिए विभिन्न पोर्ट का उपयोग कर सकते हैं। शायद किसी के पास एक बेहतर उपाय है?


इसने मुझे सही दिशा में इशारा किया। प्रारंभ में, मुझे एक त्रुटि संदेश मिला "URL के लिए कोई प्रोटोकॉल हैंडलर मान्य नहीं था"। मैंने पाया कि मुझे इसे काम करने के लिए प्रॉक्सी_मॉडल और प्रॉक्सी_हॉटप_मॉडल दोनों को लोड करना था। धन्यवाद!
हाबो

8

वेब ट्रैफ़िक रीडायरेक्ट बनाने के लिए वेबलॉक - iOS ऐप के लिए AdBlock ($ 1.99 में उपलब्ध है: https://itunes.apple.com/us/app/weblock/id558818638?mt=8 ) का उपयोग करना संभव है।

यह आपको निर्दिष्ट आईपी पते के लिए कुछ नियम से मेल खाते किसी भी ट्रैफ़िक को पुनर्निर्देशित करने की अनुमति देता है। यह आपके iOS डिवाइस पर / etc / host में एक प्रविष्टि जोड़ने का अनुकरण करेगा। यदि अनुरोधों में सेट किया गया होस्टनाम आपके द्वारा आपके ट्रैफ़िक को निर्देशित करने वाले आईपी द्वारा नियंत्रित किया जाता है, तो आप इसका उपयोग निजी एपीआई या अन्य ऐप या वेबसाइटों से भेजे गए ट्रैफ़िक को सूँघने के लिए कर सकते हैं। यह दुर्भाग्य से केवल http / https कनेक्शन के लिए काम करता है।

यह सब केवल वाई-फाई (वेबलॉक की सीमाओं में से एक) पर किया जा सकता है। वहाँ मुख्य लाभ यह है कि आप आसानी से अपने iOS डिवाइस से सब कुछ कॉन्फ़िगर कर सकते हैं और DNS / प्रॉक्सी सर्वर कॉन्फ़िगरेशन के साथ गड़बड़ करने की कोई आवश्यकता नहीं है।

यहाँ एक उदाहरण है:

  1. मैंने इस तरह से वेबलॉक कॉन्फ़िगर किया है: http://i.stack.imgur.com/c5SUh.png
  2. सफारी खोला और URL के रूप में www.google.com में टाइप किया
  3. पोर्ट 1234 पर कनेक्शन के लिए मेरे मैक पर टर्मिनल में यह आउटपुट है:
    macbook-pro-tk: ~ kpr $ nc -l -v -v 1234
    Http://www.google.com/ HTTP / 1.1 प्राप्त करें
    होस्ट: www.google.com
    स्वीकार करें: पाठ / html, आवेदन / xhtml + xml, अनुप्रयोग / xml; q = 0.9, * / *; q / =
    प्रॉक्सी-कनेक्शन: जीवित रखें
    PREF = आईडी = 7722bc3c844a7c26: टीएम = +१४०२०७३८३९: एल एम = +१४०२०७३८३९: एस = 5bSJJsM2p0HgUP7L
    उपयोगकर्ता-एजेंट: मोज़िला / 5.0 (iPhone, सीपीयू iPhone OS 7_1_1 जैसे मैक OS X) AppleWebKit / 537.51.2 (KHTML, गेको की तरह) संस्करण / 7.0 मोबाइल / 11D201 सफारी / 9537.53
    स्वीकार-भाषा: en-us
    स्वीकार-एनकोडिंग: गज़िप, अपस्फीति
    कनेक्शन: जीवित रखें

वेबलॉक नियमित रूप से कुछ यूआरएल के साथ चुनिंदा पुनर्निर्देशित करने के लिए भी अच्छा है। आप कुछ विशेष बिंदुओं पर ही प्रश्नों को पुनर्निर्देशित कर सकते हैं, जबकि अन्य सभी क्वेरीज़ DNS से ​​लौटाए गए आईपी पर जाती हैं। यह वास्तव में और भी अधिक फिटिंग कॉन्फ़िगरेशन के लिए अनुमति देता है जो / etc / होस्ट करता है।

उदाहरण: यदि मैं * * //somedomain.com/api/login* और कुछ IP और पोर्ट के लिए URL रीडायरेक्ट नियम बनाता हूं, तो मुझे इस IP और पोर्ट पर केवल URL से ट्रैफ़िक दिखाई देगा, जबकि अन्य सभी ट्रैफ़िक को स्वतंत्रता। com सीधे DNS द्वारा लौटाए गए IP पर जाएगा। ध्यान दें कि यह / एपीआई / लॉगिन और / एपीआई / लॉगिन दोनों के लिए काम करेगा ? नियम के अंत में वाइल्डकार्ड * साइन इन करने के लिए someparam = somevalue धन्यवाद।


धन्यवाद। मैंने अभी इसे खरीदा है और इसे आज़माने जा रहा हूं।
डेनिस डे

6

मैंने मैक पर स्क्वीडमैन का उपयोग करके इसे बनाया । इसे स्थापित करना और उपयोग करना आसान है।
मैंने इस लेख का अनुसरण करके इसे 5 मिनट में सेट किया ।

अपडेट करें

एक और बात यह है कि अगर आप प्रॉक्सी सर्वर पर चलने वाली वेबसाइटों से जुड़ना चाहते हैं, तो मेरे मामले में यह मेरा मैक है, आपको इस लाइन को स्क्वीडमैन में बताना होगा-> प्राथमिकताएं -> टेम्प्लेट

# protect web apps running on the proxy host from external users
# http_access deny to_localhost

5

आप अपने नेटवर्क पर एक आंतरिक DNS सर्वर सेटअप कर सकते हैं (यदि कोई पहले से मौजूद नहीं है) और A रिकॉर्ड सेटअप करें। फिर सुनिश्चित करें कि आपके डीएचसीपी ने कहा कि डीएनएस सर्वर वापस करने के लिए सेट है


3

आप http://xip.io/ का भी उपयोग कर सकते हैं उस पृष्ठ पर दिए गए निर्देशों का उपयोग करके आप आईपी पते में प्रवेश कर सकते हैं और यह आपको प्रासंगिक आईपी सर्वर पर रीडायरेक्ट करेगा।


2

यदि आपके पास एक लाइव वेबसाइट है तो आप इसके लिए उपयोग कर सकते हैं:

आप अपने DNS कॉन्फ़िगरेशन के लिए एक रिकॉर्ड जोड़ सकते हैं: something.yourdomain.com जो आपके स्थानीय आईपी पते की ओर इशारा करता है, फिर कुछ के लिए एक प्रविष्टि जोड़ें। yourourdomain.com अपनी वर्चुअल होस्ट फ़ाइल के लिए। Apache को पुनरारंभ करें, अपने iOS डिवाइस को उसी नेटवर्क पर प्राप्त करें और आप जाने के लिए अच्छे हैं।


1

यहाँ एक मम्प प्रो वर्चुअल होस्ट के क्रॉस डिवाइस / कंप्यूटर परीक्षण के लिए कोई कॉन्फ़िगरेशन विधि नहीं है। केवल सीमा आप केवल एक समय में एक डोमेन का परीक्षण कर सकते हैं, लेकिन मेरे लिए यह ठीक है जब मैं विकसित कर रहा हूं। हालांकि यह वास्तव में सरल है कि वर्चुअल होस्ट के बीच सीधे मैम्प में बदलाव किया जाए।

Im चल mamp समर्थक 2, पहाड़ शेर। मेरी साइटों के फ़ोल्डर में व्यक्तिगत डोमेन फ़ोल्डर हैं।

मैंने पाया कि यदि आप वर्चुअल होस्ट 'आईपी / पोर्ट' के तहत स्थानीय कंप्यूटर के विशिष्ट आईपी का चयन करते हैं और फिर से चालू करते हैं तो यह डोमेन नेटवर्क के पार स्थानीयहोस्ट कंप्यूटर के आईपी पते, या कंप्यूटर का नाम देखने पर डिफ़ॉल्ट डोमेन बन जाएगा।

परीक्षण के प्रयोजनों के लिए यह नेटवर्क पर सभी उपकरणों पर काम करता है, जिसमें iPad भी शामिल है। यदि आप किसी अन्य वर्चुअल होस्ट का परीक्षण करना चाहते हैं, तो आप आईपी / पोर्ट कॉन्फिगर को "*" पर लौटा सकते हैं और फिर कंप्यूटर के आईपी एड्रेस को पुनः आरंभ करने के लिए दूसरे डोमेन को फिर से असाइन कर सकते हैं।

इस सरल दृष्टिकोण का लाभ यह है कि आप ग्राहकों को सीधे अपनी विकास साइटों तक पहुंच प्रदान कर सकते हैं जब आपके नेटवर्क पर बिना किसी विन्यास के उनके मशीन पर किसी भी विन्यास के माध्यम से जाना जा सकता है।

आशा है कि यह किसी और को सरल समाधान की तलाश में मदद करता है।


1

आंतरिक DNS सर्वर विकल्प में से एक है, लेकिन यह लागू करने के लिए बहुत बोझिल था। हमने स्क्वीड को प्रॉक्सी सर्वर के रूप में स्थापित करने की कोशिश की, लेकिन यह भी काम नहीं किया क्योंकि यह URL को नए सर्वर पर पुनर्निर्देशित कर रहा था और यह पुनर्निर्देशन ब्राउज़र URL पर भी देखा गया था।

आखिरकार जो हमारे लिए काम कर रहा था, वह था कि एक सर्वर पर फिडलर को स्थापित करना और इस सर्वर का उपयोग आईपैड पर प्रॉक्सी सर्वर के रूप में करना। फ़िडलर के पास IP पते पर उप-डोमेन को मैप करने की सुविधा है, जो कि / etc / मेजबानों के समान है।


1

ऐसा करने के लिए अच्छा ट्यूटोरियल: http://egalo.com/2012/05/29/testing-mac-web-site-use-local-hostname-on-mobile-device/

एक और तरीका है कि मैं अपने मैक ओएस एक्स के साथ स्थानीय हॉटस्पॉट के माध्यम से आईपीएडी कनेक्ट करूं और विकास वीएम के लिए पोर्ट-फ़ॉरवर्डिंग स्थापित करूं। इस लक्ष्य को प्राप्त करने के लिए मैंने निम्नलिखित कदम उठाए:

  • मैक ओएस एक्स पर एक WLAN- हॉटस्पॉट लिंक बनाएं कि यह कैसे करना है
  • IPAD को हॉटस्पॉट-WLAN (IPAD >> सेटिंग्स >> WLAN पर) से कनेक्ट करें
  • ServerAlias ​​को स्थानीय विकास-वीएम में जोड़ें (विवरण नीचे)
  • ssh-portforwarding स्थापित करें
    ssh -NL <IP-of-hotspot-host>:<source-port>:<url-to-local-vm>:80 <user-to-vm>
  • int iPADs ब्राउज़र आईपी के साथ पृष्ठ खोलें
    <IP-of-hotspot-host>:<source-port>

'आईपी-ऑफ-हॉटस्पॉट-होस्ट' कहां से प्राप्त करें:

हॉटस्पॉट बनाने के बाद
मैक ओएस एक्स सिस्टम सेटिंग्स >> नेटवर्क >> डब्ल्यूएलएएन में डब्ल्यूएलएएन-पॉइंट है

ServerAlias ​​जोड़ना:

मेरे विकास में / VM (Apache2) पर /etc/apache2/sites-available/dkr.dev.local में मुझे निम्नलिखित जोड़ना था:

<VirtualHost *: 80>  
    ...  
    ServerAlias ​​<IP-of-hotspot-host>  
    ...  
</ VirtualHost>

1

यदि आप इसे खोज रहे हैं, और कुछ बाहरी लिंक, तो आपको संभवतः यह उत्तर मिल जाएगा:

https://stackoverflow.com/a/24770097/3842985

यह एक हल्के वजन वाले DNS सर्वर के बारे में है जिसे dnsmasq कहा जाता है। सुपर सरल, बहुत शक्तिशाली, और आपके आंतरिक या बाहरी DNS सर्वर के साथ संयोजन में उपयोग किया जा सकता है।

स्क्वीड स्थापित करने की तुलना में बहुत आसान है, अपाचे के साथ फ़िडलिंग, और अन्य तकनीकें जो समय लेने वाली होंगी, और कॉन्फ़िगरेशन की "अखंडता" को विकसित करने, पर्यावरण, परीक्षण वातावरण आदि का जोखिम उठाएगी।

अच्छी तरह से विचार करने लायक।

मैंने इसे विकास के लिए और सामान्य नेटवर्किंग के लिए एक नियमित उपकरण के रूप में अपनाया।


1

पीसी पर कस्टम DNS सर्वर का उपयोग करके इसे हल कर सकते हैं। मैं उपयोग कर रहा हूं और पूरी तरह से काम कर रहा हूं।

कस्टम DNS सर्वर डाउनलोड करने के लिए https://technitium.com/dns/ की जाँच करें । जो .Net तकनीक का उपयोग करके बनाया गया है। इस उपकरण को कॉन्फ़िगर करने के बाद, आपको अपने पीसी के आईपी को कस्टम और सेट करने के लिए DNS सेटिंग को बदलना होगा। पीसी को पुनरारंभ करने पर हर बार आईपी बदलने से बचने के लिए, पीसी पर स्टेटिक आईपी का उपयोग करें।


0

मैं रिले सर्वर (अफ़ारिया का हिस्सा) की कोशिश करूंगा, जो प्रोफाइल के आधार पर मोबाइल ट्रैफ़िक को फिर से निर्देशित कर सकता है।

अपडेट: ट्रापोलोक्वि का जवाब कम परेशानी और बहुत सस्ता लगता है।


0

यहाँ उत्तर सही हैं। थोड़ा और ज्ञान: ये प्रमाणित पिनिंग के साथ काम नहीं करेंगे। आप क्या कर सकते हैं या तो (1) अपने देव / परीक्षण / क्यूए क्षेत्र परीक्षण का समर्थन करने के लिए एक डोमेन वाइल्डकार्ड सर्टिफिकेट का उपयोग करें। और / या (2) अपाचे जैसे एक रिवर्स प्रॉक्सी सर्वर का उपयोग करें जिससे आप अपने नेटवर्क के अनुरोधों को अपाचे मार्गों में बदल देते हैं। अब, जब आप एसएसएल पिनिंग परीक्षण में शामिल होते हैं, तब आप भौतिक उपकरणों के साथ पानी में मृत हो जाते हैं और केवल सिम्युलेटर (आईओएस) और एमुलेटर (एंड्रॉइड) के साथ सत्यापन कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.