iPad에서 만든 HTTP 요청을 어떻게 리디렉션 할 수 있습니까?


116

iPad에서는 탈옥없이 호스트 파일을 편집 할 수 없기 때문에 웹 트래픽을 다른 URL로 임의로 리디렉션하려면 어떻게해야합니까?

이는 개발 머신으로 리디렉션하려는 가상 호스트 구성을 사용하는 웹 사이트 개발과 같은 작업에 중요합니다.

(이 질문과 관련이 있습니다. iPad의 호스트 파일을 편집 할 수 있습니까? )

답변:


88

iPad의 이러한 한계를 극복하는 방법 은 호스트 파일을 편집 할 수있는 다른 시스템에서 실행중인 Squid 와 같은 HTTP 프록시 서버를 사용하는 것입니다.

iPad에서 설정-> 네트워크-> Wi-Fi-> (네트워크) 수동으로 설정할 수있는 HTTP 프록시 설정이 있습니다. 여기에 프록시 정보를 입력하십시오.

이것이 설정되면 마치 호스트 파일을 변경하는 것처럼 iPad를 조작 할 수 있습니다.


3
기록을 위해서 나는
macports

1
또는 yum install squid페도라
Abhishek

3
또는 apt-get install squid우분투
제스 텔 포드

3
참고 : Squid 서버에서 호스트 파일을 편집 할 때마다 Squid 서비스를 다시 시작하여 편집 내용이 적용되는지 확인하십시오. 우분투에서는 sudo service squid3 reload. 또한, 이것은 내 개발 서버에 특정한 구성 문제 일 수 있습니다. 내 iPad에서 주소 확인이 제대로 작동하려면 http : //를 수동으로 입력해야합니다.
Andy Giesler 2014-06-04

1
이 작업을 수행하는 또 다른 쉬운 방법은 내가 작성한 도구 인 testProxy를 사용하는 것입니다. 구성 필요 없음 : github.com/edwinm/testProxy
edwin

71

내가 발견 그냥 와이파이 설정을 수정해야 할 HTTP 프록시합니다 (에서 설명한 바와 같이 개발 컴퓨터의 IP 주소를 사용하는 아이 패드에 상기 기사 ) :

여기에 이미지 설명 입력

이렇게하면 가상 호스트의 URL (예 :)을 입력하여 iPad에서 웹 애플리케이션에 액세스 할 수 있습니다 local.mywebapp.com. 쉽고 빠르지 만 Will Koehler의 솔루션과 달리 iPad에서 인터넷에 액세스 할 수 없습니다. 그러나 대부분의 경우 자체 애플리케이션을 테스트하기를 원하기 때문에 실제로 문제가되지 않습니다.


1
좋은 대답입니다. 당신은이에 WEBrick를 사용하여 응용 프로그램을 레일 테스트하는 경우, 당신의 dev에 기계와 포트 3000의 IP 주소 설정
lsaffie

4
Windows에서 Wamp 또는 uWamp를 사용하는 경우 포트를 80.
Epoc 2013-09-16

10
로컬 앱이 인터넷의 다양한 API에서 데이터를 가져 오는 경우와 같은 경우는 어떻습니까?
Jared Eitnier

28

Fiddler 또는 Charles와 같은 프록시 서버를 실행하는 컴퓨터에서 호스트 파일을 설정하고 해당 컴퓨터를 HTTP 프록시로 사용하도록 iPad를 구성합니다.

다음은 Fiddler로이를 수행하는 방법에 대한 지침입니다. http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html

그리고 이것은 Charles를위한 것입니다 : http://www.ravelrumba.com/blog/ipad-http-debugging/


Windows / Mac 옵션을 구체화 해 주셔서 감사합니다.
tremoloqui 2011-08-02

2
대부분의 개발자가 이미 설치했기 때문에 Windows 개발자에게 Fiddler는 훌륭한 옵션입니다.
Josh Mouch 2011

11

개발중인 Apache 서버가 이미있는 경우 포워드 프록시로 쉽게 사용할 수 있습니다. 이것은 전체 절대 URL을 사용하는 것을 정말 좋아하는 WordPress 사이트에 특히 유용합니다.

아래 Ubuntu 예제 :

첫 번째 단계는 /etc/hosts개발 서버에서 파일 을 편집하는 것 입니다. 사이트를 가리키는 서버의 로컬 IP를 추가하십시오.

127.0.0.1 dev.mysite.com

이 호스트 파일은 iPhone / iPad의 요청을 해결하려고 할 때 Apache 프록시에서 사용됩니다. 이제 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 포트가 방화벽에 의해 차단되었습니다.)


9

iPad에서 개발중인 웹 앱을 테스트해야합니다. 내 dev 컴퓨터에서 Apache를 사용하여 웹 앱을 실행하므로 가장 쉬운 해결책은 Apache mod_proxy를 사용하는 것입니다.

내 개발 머신은 홈 네트워크에서 sapphire.local로 표시됩니다.

테스트중인 웹 앱은 demo.cms.dev (POW를 사용하고 있음)의 dev 컴퓨터에서 호스팅됩니다.

프록시를 설정하기 위해 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로 라우팅합니다. 이 방법은 한 번에 하나의 앱에서만 작동합니다. 다른 포트를 사용하여 추가 앱을 설정할 수 있다고 생각합니다. 누군가가 더 나은 해결책을 가지고 있습니까?


이것은 나를 올바른 방향으로 가리 켰습니다. 처음에는 "URL에 유효한 프로토콜 처리기가 없습니다"라는 오류 메시지가 표시되었습니다. 작동하려면 proxy_module과 proxy_http_module을 모두로드해야했습니다. 감사!
Hobo

8

웹 트래픽 리디렉션을 생성 하기 위해 Weblock-iOS 앱용 AdBlock ($ 1.99에 사용 가능 : https://itunes.apple.com/us/app/weblock/id558818638?mt=8 )을 사용할 수도 있습니다.

이를 통해 특정 규칙과 일치하는 트래픽을 지정된 IP 주소로 리디렉션 할 수 있습니다. 이것은 iOS 장치의 / etc / hosts에 항목을 추가하는 것과 같습니다. 요청에 설정된 호스트 이름이 트래픽을 전달하는 IP로 처리되는 경우이를 사용하여 비공개 API를 테스트하거나 다른 앱이나 웹 사이트에서 전송 된 트래픽을 스니핑 할 수도 있습니다. 불행히도 http / https 연결에서만 작동합니다.

이 모든 작업은 Wi-Fi 상태에서만 가능합니다 (Weblock의 제한 사항 중 하나). 주요 이점은 iOS 장치에서 모든 것을 쉽게 구성 할 수 있으며 DNS / 프록시 서버 구성을 엉망으로 만들 필요가 없다는 것입니다.

예를 들면 다음과 같습니다.

  1. 다음과 같이 Weblock을 구성했습니다. http://i.stack.imgur.com/c5SUh.png
  2. Safari를 열고 www.google.com에 URL을 입력했습니다.
  3. 이것은 포트 1234에서 연결을 수신하는 내 Mac의 터미널 출력입니다.
    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, Mac OS X와 ​​같은 CPU iPhone OS 7_1_1) AppleWebKit / 537.51.2 (Gecko와 같은 KHTML) 버전 /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의 트래픽 만 표시되고 다른 모든 트래픽은 somedomain으로 이동합니다. com은 DNS가 반환 한 IP로 직접 이동합니다. 규칙 끝에있는 와일드 카드 * 기호 덕분에 / api / login/ api / login? someparam = somevalue 모두에서 작동합니다 .


감사. 방금 구입해서 사용해 보겠습니다.
Dennis의 날

6

Mac에서 squidman 을 사용하여 만들었습니다 . 설정 및 사용이 쉽습니다. 이 기사
를 따라 5 분 만에 설정했습니다 .

최신 정보

또 다른 한 가지는 프록시 서버에서 실행되는 웹 사이트에 연결하려는 경우입니다. 제 경우에는 제 Mac 인 경우 squidman-> Preferences-> Template에서이 줄을 주석 처리해야합니다.

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

5

네트워크에 내부 DNS 서버를 설정하고 (아직없는 경우) A 레코드를 설정할 수 있습니다. 그런 다음 DHCP가 해당 DNS 서버를 반환하도록 설정되어 있는지 확인하십시오.


3

해당 페이지의 지침을 사용하여 http://xip.io/ 를 사용할 수도 있습니다 . IP 주소를 입력하면 관련 로컬 IP로 리디렉션됩니다.


2

라이브 웹 사이트가있는 경우이를 위해 사용할 수 있습니다.

DNS 구성에 A 레코드 (로컬 IP 주소를 가리키는 something.yourdomain.com)를 추가 한 다음 something.yourdomain.com 항목을 가상 호스트 파일에 추가 할 수 있습니다. Apache를 다시 시작하고 iOS 기기를 동일한 네트워크에 연결하면됩니다.


1

다음은 Mamp Pro Virtual 호스트의 교차 장치 / 컴퓨터 테스트를위한 구성이없는 방법입니다. 유일한 제한은 한 번에 하나의 도메인 만 테스트 할 수 있다는 것입니다.하지만 저에게는 개발 중일 때 괜찮습니다. 그러나 mamp에서 직접 가상 호스트간에 변경하는 것은 정말 간단합니다.

Im running mamp pro 2, mountain lion. 내 사이트 폴더에는 개별 도메인 폴더가 있습니다.

가상 호스트 'ip / port'에서 로컬 컴퓨터의 특정 IP를 선택하고 다시 시작하면 네트워크에서 로컬 호스트 컴퓨터의 IP 주소 또는 컴퓨터 이름을 볼 때이 도메인이 기본 도메인이됩니다.

테스트 목적으로 이것은 iPad를 포함하여 네트워크의 모든 장치에서 훌륭하게 작동합니다. 다른 가상 호스트를 테스트하려면 ip / port 구성을 "*"로 되 돌린 다음 다른 도메인을 컴퓨터 IP 주소에 다시 할당하고 다시 시작할 수 있습니다.

이 간단한 접근 방식의 장점은 컴퓨터의 구성을 거치지 않고도 동일한 네트워크에있을 때 개발 사이트에 직접 클라이언트에 대한 액세스를 제공 할 수 있다는 것입니다.

이것이 간단한 해결책을 찾는 다른 사람에게 도움이되기를 바랍니다.


1

내부 DNS 서버는 옵션 중 하나이지만 구현하기에는 너무 번거 롭습니다. squid를 프록시 서버로 설치하려고 시도했지만 URL을 새 서버로 리디렉션하고이 리디렉션이 브라우저 URL에서도 표시 되었기 때문에 작동하지 않았습니다.

마침내 우리를 위해 일한 것은 서버 중 하나에 Fiddler를 설치 하고이 서버를 ipad의 프록시 서버로 사용하는 것입니다. Fiddler에는 하위 도메인을 IP 주소, 즉 / etc / hosts와 유사한 것으로 매핑하는 기능도 있습니다.


1

좋은 튜토리얼 : http://egalo.com/2012/05/29/testing-mac-web-site-using-local-hostname-on-mobile-device/

다른 방법은 로컬 핫스팟을 통해 IPad를 내 MAC OS X에 연결하고 개발 VM에 대한 포트 포워딩을 설정하는 것입니다. 이를 달성하기 위해 다음 단계를 수행했습니다.

  • MAC OS X에서 WLAN- 핫스팟 링크 생성 방법
  • iPAD를 Hotspot-WLAN (iPAD >> 설정 >> WLAN)과 연결
  • 로컬 개발 VM에 ServerAlias를 추가합니다 (아래 세부 정보).
  • ssh-portforwarding 설정
    ssh -NL <IP-of-hotspot-host>:<source-port>:<url-to-local-vm>:80 <user-to-vm>
  • iPAD 브라우저에서 IP로 페이지를 엽니 다.
    <IP-of-hotspot-host>:<source-port>

'IP-of-hotspot-host'를 얻을 수있는 위치 :

핫스팟 생성 후
MAC OS X 시스템 설정 >> 네트워크 >> WLAN에 WLAN-Point가 있습니다.

ServerAlias ​​추가 :

/etc/apache2/sites-available/dkr.dev.local의 개발 VM (Apache2)에서 다음을 추가해야했습니다.

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

1

이것을 탐색하고 몇 가지 외부 링크를 살펴보면 다음 답변을 찾을 수 있습니다.

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

dnsmasq라는 경량 DNS 서버에 관한 것입니다. 매우 간단하고 매우 강력하며 내부 또는 외부 DNS 서버와 함께 사용할 수 있습니다.

squid를 설치하고, Apache와 시간이 많이 걸리며 구성의 "무결성"을 위험에 빠뜨리는 기타 기술, 환경, 테스트 환경 등을 개발하는 것보다 훨씬 쉽습니다.

고려할만한 가치가 있습니다.

나는 그것을 개발과 정상적인 네트워킹을위한 일반적인 도구로 채택했습니다.


1

PC에서 사용자 지정 DNS 서버를 사용하면이 문제를 해결할 수 있습니다. 나는 완벽하게 사용하고 있습니다.

https://technitium.com/dns/ 에서 사용자 지정 DNS 서버를 다운로드 하십시오 . .Net 기술을 사용하여 구축되었습니다. 이 도구를 구성한 후 DNS 설정을 사용자 지정으로 변경하고 PC의 IP를 설정해야합니다. PC를 다시 시작할 때마다 IP가 변경되는 것을 방지하려면 PC에서 고정 IP를 사용하십시오.


0

프로필을 기반으로 모바일 트래픽을 리디렉션 할 수있는 Relay Server (Afaria의 일부)를 사용해 보겠습니다.

업데이트 : tremoloqui의 대답은 문제가 적고 훨씬 저렴 해 보입니다.


0

여기의 답변은 정확합니다. 추가 정보 : 인증서 고정에서는 작동하지 않습니다. 할 수있는 일은 (1) 도메인 와일드 카드 인증서를 사용하여 dev / test / qa 지역 테스트를 지원하는 것입니다. 그리고 / 또는 (2) Apache와 같은 역방향 프록시 서버를 사용하여 Apache가 네트워크 내에서 요청을 라우팅하는 위치로 변경합니다. 이제 SSL Pinning 테스트에 들어가면 물리적 장치로 인해 물에 빠져 시뮬레이터 (ios) 및 에뮬레이터 (Android)로만 유효성을 검사 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.