iPad에서는 탈옥없이 호스트 파일을 편집 할 수 없기 때문에 웹 트래픽을 다른 URL로 임의로 리디렉션하려면 어떻게해야합니까?
이는 개발 머신으로 리디렉션하려는 가상 호스트 구성을 사용하는 웹 사이트 개발과 같은 작업에 중요합니다.
(이 질문과 관련이 있습니다. iPad의 호스트 파일을 편집 할 수 있습니까? )
iPad에서는 탈옥없이 호스트 파일을 편집 할 수 없기 때문에 웹 트래픽을 다른 URL로 임의로 리디렉션하려면 어떻게해야합니까?
이는 개발 머신으로 리디렉션하려는 가상 호스트 구성을 사용하는 웹 사이트 개발과 같은 작업에 중요합니다.
(이 질문과 관련이 있습니다. iPad의 호스트 파일을 편집 할 수 있습니까? )
답변:
iPad의 이러한 한계를 극복하는 방법 은 호스트 파일을 편집 할 수있는 다른 시스템에서 실행중인 Squid 와 같은 HTTP 프록시 서버를 사용하는 것입니다.
iPad에서 설정-> 네트워크-> Wi-Fi-> (네트워크) 수동으로 설정할 수있는 HTTP 프록시 설정이 있습니다. 여기에 프록시 정보를 입력하십시오.
이것이 설정되면 마치 호스트 파일을 변경하는 것처럼 iPad를 조작 할 수 있습니다.
yum install squid
페도라
apt-get install squid
우분투
sudo service squid3 reload
. 또한, 이것은 내 개발 서버에 특정한 구성 문제 일 수 있습니다. 내 iPad에서 주소 확인이 제대로 작동하려면 http : //를 수동으로 입력해야합니다.
내가 발견 그냥 와이파이 설정을 수정해야 할 HTTP 프록시합니다 (에서 설명한 바와 같이 개발 컴퓨터의 IP 주소를 사용하는 아이 패드에 상기 기사 ) :
이렇게하면 가상 호스트의 URL (예 :)을 입력하여 iPad에서 웹 애플리케이션에 액세스 할 수 있습니다 local.mywebapp.com
. 쉽고 빠르지 만 Will Koehler의 솔루션과 달리 iPad에서 인터넷에 액세스 할 수 없습니다. 그러나 대부분의 경우 자체 애플리케이션을 테스트하기를 원하기 때문에 실제로 문제가되지 않습니다.
80
.
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/
개발중인 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 포트가 방화벽에 의해 차단되었습니다.)
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로 라우팅합니다. 이 방법은 한 번에 하나의 앱에서만 작동합니다. 다른 포트를 사용하여 추가 앱을 설정할 수 있다고 생각합니다. 누군가가 더 나은 해결책을 가지고 있습니까?
웹 트래픽 리디렉션을 생성 하기 위해 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 / 프록시 서버 구성을 엉망으로 만들 필요가 없다는 것입니다.
예를 들면 다음과 같습니다.
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 모두에서 작동합니다 .
해당 페이지의 지침을 사용하여 http://xip.io/ 를 사용할 수도 있습니다 . IP 주소를 입력하면 관련 로컬 IP로 리디렉션됩니다.
다음은 Mamp Pro Virtual 호스트의 교차 장치 / 컴퓨터 테스트를위한 구성이없는 방법입니다. 유일한 제한은 한 번에 하나의 도메인 만 테스트 할 수 있다는 것입니다.하지만 저에게는 개발 중일 때 괜찮습니다. 그러나 mamp에서 직접 가상 호스트간에 변경하는 것은 정말 간단합니다.
Im running mamp pro 2, mountain lion. 내 사이트 폴더에는 개별 도메인 폴더가 있습니다.
가상 호스트 'ip / port'에서 로컬 컴퓨터의 특정 IP를 선택하고 다시 시작하면 네트워크에서 로컬 호스트 컴퓨터의 IP 주소 또는 컴퓨터 이름을 볼 때이 도메인이 기본 도메인이됩니다.
테스트 목적으로 이것은 iPad를 포함하여 네트워크의 모든 장치에서 훌륭하게 작동합니다. 다른 가상 호스트를 테스트하려면 ip / port 구성을 "*"로 되 돌린 다음 다른 도메인을 컴퓨터 IP 주소에 다시 할당하고 다시 시작할 수 있습니다.
이 간단한 접근 방식의 장점은 컴퓨터의 구성을 거치지 않고도 동일한 네트워크에있을 때 개발 사이트에 직접 클라이언트에 대한 액세스를 제공 할 수 있다는 것입니다.
이것이 간단한 해결책을 찾는 다른 사람에게 도움이되기를 바랍니다.
좋은 튜토리얼 : http://egalo.com/2012/05/29/testing-mac-web-site-using-local-hostname-on-mobile-device/
다른 방법은 로컬 핫스팟을 통해 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-Point가 있습니다.
/etc/apache2/sites-available/dkr.dev.local의 개발 VM (Apache2)에서 다음을 추가해야했습니다.
<VirtualHost * : 80> ... ServerAlias <IP-of-hotspot-host> ... </ VirtualHost>
이것을 탐색하고 몇 가지 외부 링크를 살펴보면 다음 답변을 찾을 수 있습니다.
https://stackoverflow.com/a/24770097/3842985
dnsmasq라는 경량 DNS 서버에 관한 것입니다. 매우 간단하고 매우 강력하며 내부 또는 외부 DNS 서버와 함께 사용할 수 있습니다.
squid를 설치하고, Apache와 시간이 많이 걸리며 구성의 "무결성"을 위험에 빠뜨리는 기타 기술, 환경, 테스트 환경 등을 개발하는 것보다 훨씬 쉽습니다.
고려할만한 가치가 있습니다.
나는 그것을 개발과 정상적인 네트워킹을위한 일반적인 도구로 채택했습니다.
PC에서 사용자 지정 DNS 서버를 사용하면이 문제를 해결할 수 있습니다. 나는 완벽하게 사용하고 있습니다.
https://technitium.com/dns/ 에서 사용자 지정 DNS 서버를 다운로드 하십시오 . .Net 기술을 사용하여 구축되었습니다. 이 도구를 구성한 후 DNS 설정을 사용자 지정으로 변경하고 PC의 IP를 설정해야합니다. PC를 다시 시작할 때마다 IP가 변경되는 것을 방지하려면 PC에서 고정 IP를 사용하십시오.