Da wir auf einem iPad die Hosts-Datei nicht bearbeiten können (ohne Jailbreak), wie können wir den Web-Verkehr willkürlich auf eine andere URL umleiten?
Dies ist wichtig, wenn Sie beispielsweise eine Website entwickeln, die eine Virtual Host-Konfiguration verwendet und auf eine Entwicklungsmaschine umleiten möchte.
(Dies hängt mit dieser Frage zusammen: Kann ich die Hostdatei eines iPad bearbeiten? )
yum install squid
auf Fedoraapt-get install squid
auf Ubuntusudo service squid3 reload
. Außerdem - und möglicherweise handelt es sich um ein Konfigurationsproblem, das für meinen Entwicklungsserver spezifisch ist - muss ich auf meinem iPad manuell http: // eingeben, damit die Adressauflösung ordnungsgemäß funktioniert.Ich habe festgestellt, dass Sie nur die WLAN-Einstellungen in Ihrem iPad ändern müssen, um die IP-Adresse Ihres Entwicklungscomputers als HTTP-Proxy zu verwenden (wie im oben genannten Artikel erläutert ):
Auf diese Weise reicht es aus, auf Ihrem iPad auf Ihre Webanwendung zugreifen zu können, indem Sie die URL des virtuellen Hosts eingeben (z
local.mywebapp.com
. B. ). Es ist einfach und schnell, aber im Gegensatz zu Will Koehlers Lösung können Sie vom iPad aus nicht auf das Internet zugreifen. Meistens ist dies jedoch kein wirkliches Problem, da Sie nur Ihre eigene Anwendung testen möchten.quelle
80
.Richten Sie die Hosts-Datei auf einem Computer ein, auf dem ein Proxyserver wie Fiddler oder Charles ausgeführt wird, und konfigurieren Sie das iPad so, dass dieser Computer als HTTP-Proxy verwendet wird.
Hier finden Sie Anweisungen dazu mit Fiddler: http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
Und das ist für Charles: http://www.ravelrumba.com/blog/ipad-http-debugging/
quelle
Wenn Sie bereits einen Apache- Server haben, auf dem Sie Entwickler sind, können Sie ihn problemlos als Forward-Proxy verwenden. Dies ist besonders nützlich für WordPress-Sites, die es wirklich lieben, die vollständige absolute URL zu verwenden.
Ubuntu- Beispiel unten:
Der erste Schritt besteht darin, die
/etc/hosts
Datei auf Ihrem Entwicklungsserver zu bearbeiten . Fügen Sie die lokale IP des Servers hinzu und zeigen Sie auf Ihre Site.127.0.0.1 dev.mysite.com
Diese Hosts-Datei wird von Ihrem Apache-Proxy verwendet, wenn er versucht, Anforderungen von Ihrem iPhone / iPad zu lösen. Richten wir jetzt den Apache-Teil ein ...
Möglicherweise müssen Sie zuerst einige Module installieren.
Erstellen Sie dann beispielsweise eine virtuelle Hostdatei
/etc/apache2/sites-available/my-proxy
Aktivieren Sie den vhost und starten Sie Apache neu:
Gehen Sie dann zu Einstellungen> Wi-Fi> Ihr Netzwerk und konfigurieren Sie einen "manuellen" Proxy. Geben Sie die IP Ihres Apache-Servers und den Port ein. Das ist es!
Der
<Proxy *>
Block stellt sicher, dass nur Personen in meinem lokalen Netzwerk diesen Proxy verwenden können. Wenn Sie einen Forward-Proxy verwenden, ist eine strikte Einschränkung des Zugriffs unerlässlich . Die ip2cidr- Seite ist an dieser Stelle hilfreich. (Als zusätzliche Maßnahme wird der: 8080-Port von meiner Firewall blockiert.)quelle
Ich muss Web-Apps testen, die ich auf einem iPad entwickle. Ich verwende Apache auf meinem Entwicklungscomputer, um die Webanwendungen auszuführen. Die einfachste Lösung, die ich gefunden habe, war die Verwendung von Apache mod_proxy.
Meine Entwicklungsmaschine ist in meinem Heimnetzwerk als sapphire.local sichtbar.
Die Web-App, die ich teste, wird auf dem Entwicklungscomputer unter demo.cms.dev gehostet (ich verwende POW).
Um den Proxy einzurichten, habe ich den folgenden Abschnitt zu httpd.conf hinzugefügt.
Dadurch werden eingehende Anfragen auf sapphire.local an demo.cms.dev weitergeleitet. Die Methode funktioniert jeweils nur für eine App. Ich denke, Sie könnten verschiedene Ports verwenden, um zusätzliche Apps einzurichten. Vielleicht hat jemand eine bessere Lösung?
quelle
Es ist auch möglich, die Weblock - AdBlock für iOS-App (hier für 1,99 USD erhältlich: https://itunes.apple.com/us/app/weblock/id558818638?mt=8 ) zum Erstellen von Weiterleitungen für den Webverkehr zu verwenden .
Auf diese Weise können Sie Datenverkehr, der einer bestimmten Regel entspricht, an die angegebene IP-Adresse umleiten. Dadurch wird das Hinzufügen eines Eintrags zu / etc / hosts auf Ihrem iOS-Gerät emuliert. Wenn der in Anforderungen festgelegte Hostname von der IP verarbeitet wird, an die Sie Ihren Datenverkehr leiten, können Sie damit die private API testen oder sogar den von anderen Apps oder Websites gesendeten Datenverkehr abhören. Dies funktioniert leider nur für http / https-Verbindungen.
All dies ist nur über WLAN möglich (eine der Einschränkungen von Weblock). Der Hauptvorteil besteht darin, dass Sie alles einfach von Ihrem iOS-Gerät aus konfigurieren können und sich nicht mit der DNS / Proxy-Server-Konfiguration herumschlagen müssen.
Hier ist ein Beispiel:
Weblock ist auch gut, um einige URLs mit regulären Ausdrücken selektiv umzuleiten. Sie können Abfragen nur an einen bestimmten Endpunkt umleiten, während alle anderen Abfragen an die vom DNS zurückgegebene IP-Adresse gesendet werden. Dies ermöglicht eine noch passendere Konfiguration als / etc / hosts.
Beispiel: Wenn ich eine URL-Umleitungsregel für htt *: //somedomain.com/api/login* und einige IP- Adressen und Ports erstelle , wird an dieser IP- Adresse und an diesem Port nur Datenverkehr von dieser URL angezeigt, während der gesamte andere Datenverkehr an eine bestimmte Domäne gesendet wird. com wechselt direkt zu der vom DNS zurückgegebenen IP. Beachten Sie, dass dies sowohl für / api / login als auch für / api / login funktioniert. Someparam = somevalue dank des Platzhalterzeichens * am Ende der Regel.
quelle
Ich habe es mit Squidman auf dem Mac geschafft. Es ist einfach einzurichten und zu verwenden.
Ich habe es in 5 Minuten eingerichtet, indem ich diesem Artikel gefolgt bin .
Aktualisieren
Eine andere Sache ist, wenn Sie eine Verbindung zu den Websites herstellen möchten, die auf dem Proxyserver ausgeführt werden. In meinem Fall ist es mein Mac. Sie müssen diese Zeile unter squidman-> Preferences-> Template kommentieren
quelle
Sie können einen internen DNS-Server in Ihrem Netzwerk einrichten (falls noch keiner vorhanden ist) und einen A-Eintrag einrichten. Stellen Sie dann sicher, dass Ihr DHCP so eingestellt ist, dass er den DNS-Server zurückgibt
quelle
Sie können auch http://xip.io/ verwenden. Verwenden Sie dazu die Anweisungen auf dieser Seite. Geben Sie die IP-Adresse ein und Sie werden zur entsprechenden lokalen IP weitergeleitet.
quelle
Wenn Sie eine Live-Website haben, können Sie diese verwenden:
Sie können Ihrer DNS-Konfiguration einen A-Eintrag hinzufügen: Something.IhreDomain.com, der auf Ihre lokale IP-Adresse verweist, und dann Ihrer virtuellen Hosts-Datei einen Eintrag für etwas.IhreDomain.com hinzufügen. Starten Sie Apache neu, bringen Sie Ihr iOS-Gerät in dasselbe Netzwerk und los geht's.
quelle
Hier ist eine Methode ohne Konfiguration für geräte- / computerübergreifende Tests eines virtuellen Mamp Pro-Hosts. Die einzige Einschränkung besteht darin, dass Sie jeweils nur eine Domain testen können. Für mich ist dies jedoch in Ordnung, wenn ich mich entwickle. Es ist jedoch sehr einfach, direkt in mamp zwischen virtuellen Hosts zu wechseln.
Ich laufe Mamp Pro 2, Berglöwe. Mein Site-Ordner enthält die einzelnen Domain-Ordner.
Ich habe festgestellt, dass diese Domäne zur Standarddomäne wird, wenn Sie die IP-Adresse oder den Computernamen des lokalen Host-Computers im Netzwerk anzeigen, wenn Sie die spezifische IP-Adresse des lokalen Computers unter dem virtuellen Host 'IP / Port' auswählen und neu starten.
Zu Testzwecken funktioniert dies auf allen Geräten im Netzwerk, einschließlich des iPad. Wenn Sie einen anderen virtuellen Host testen möchten, können Sie einfach die IP / Port-Konfiguration auf "*" zurücksetzen und dann der IP-Adresse des Computers eine andere Domäne zuweisen und neu starten.
Der Vorteil dieses einfachen Ansatzes besteht darin, dass Sie Clients Zugriff auf Ihre Entwicklungsstandorte gewähren können, wenn Sie sich im selben Netzwerk befinden, ohne eine Konfiguration auf ihrem Computer durchführen zu müssen.
Ich hoffe, dies hilft allen anderen, die nach einer einfachen Lösung suchen.
quelle
Interner DNS-Server ist eine der Optionen, deren Implementierung jedoch zu umständlich war. Wir haben versucht, squid als Proxyserver zu installieren, aber das hat auch nicht funktioniert, da die URL auf einen neuen Server umgeleitet wurde und diese Umleitung auch auf der Browser-URL angezeigt wurde.
Was schließlich für uns funktioniert hat, war, Fiddler auf einem der Server zu installieren und diesen Server als Proxyserver auf dem iPad zu verwenden. Fiddler hat auch eine Funktion zum Zuordnen von Subdomains zur IP-Adresse, dh ähnlich wie / etc / hosts.
quelle
Nettes Tutorial dazu: http://egalo.com/2012/05/29/testing-mac-web-site-using-local-hostname-on-mobile-device/
Eine andere Möglichkeit besteht darin, das IPad über einen lokalen Hotspot mit meinem MAC OS X zu verbinden und eine Portweiterleitung an die Entwicklungs-VM einzurichten. Um dies zu erreichen, habe ich die folgenden Schritte ausgeführt:
ssh -NL <IP-of-hotspot-host>:<source-port>:<url-to-local-vm>:80 <user-to-vm>
<IP-of-hotspot-host>:<source-port>
Wo bekomme ich 'IP-of-Hotspot-Host':
Nach dem Erstellen des Hotspots gibt es einen WLAN-Punkt in den
MAC OS X-Systemeinstellungen >> Netzwerk >> WLAN
Hinzufügen der ServerAlias:
Bei meiner Entwicklungs-VM (Apache2) in /etc/apache2/sites-available/dkr.dev.local musste ich Folgendes hinzufügen:
quelle
Wenn Sie dies und einige der externen Links untersucht haben, finden Sie möglicherweise diese Antwort:
https://stackoverflow.com/a/24770097/3842985
Es handelt sich um einen leichtgewichtigen DNS-Server namens dnsmasq. Super einfach, sehr leistungsfähig und kann in Verbindung mit Ihren internen oder externen DNS-Servern verwendet werden.
Viel einfacher als die Installation von Squid, das Herumspielen mit Apache und anderen Techniken, die zeitaufwändig sind und die "Integrität" von Konfigurationen, Entwicklungsumgebungen, Testumgebungen usw. gefährden.
Eine Überlegung wert.
Ich habe das als reguläres Werkzeug für die Entwicklung und für die normale Vernetzung übernommen.
quelle
Die Verwendung eines benutzerdefinierten DNS-Servers auf dem PC kann dieses Problem beheben. Ich benutze und arbeite perfekt.
Überprüfen Sie https://technitium.com/dns/ , um einen benutzerdefinierten DNS-Server herunterzuladen. Welches ist mit .Net-Technologie gebaut. Nach der Konfiguration dieses Tools müssen Sie die DNS-Einstellung in "Benutzerdefiniert" ändern und die IP Ihres PCs festlegen. Verwenden Sie statische IP auf dem PC, um zu vermeiden, dass die IP-Adresse bei jedem Neustart des PCs geändert wird.
quelle
Ich würde Relay Server (Teil von Afaria) ausprobieren, der den mobilen Verkehr basierend auf Profilen umleiten kann.
Update: tremoloquis Antwort scheint weniger Ärger und weitaus billiger zu sein.
quelle
Die Antworten hier sind richtig. Ein bisschen mehr Wissen: Diese funktionieren nicht mit Cert Pinning. Sie können entweder (1) ein Domain-Platzhalterzertifikat verwenden, um das Testen Ihrer dev / test / qa-Region zu unterstützen. Und / oder (2) verwenden Sie einen Reverse-Proxy-Server wie Apache, wobei Sie zu dem Ort wechseln, an den Apache die Anforderungen innerhalb Ihres Netzwerks weiterleitet. Wenn Sie jetzt mit dem SSL-Pinning-Test beginnen, sind Sie mit den physischen Geräten tot im Wasser und können nur mit Simulator (ios) und Emulator (android) validieren.
quelle