tre*_*qui 114 redirect http hosts ipad
由于在iPad上我们无法编辑主机文件(没有越狱),我们如何随意将网络流量重定向到另一个网址?
这对于诸如开发使用虚拟主机配置的网站(例如您要重定向到开发计算机)这一点非常重要.
(这与此问题有关:我可以编辑iPad的主机文件吗?)
tre*_*qui 86
解决iPad的这种限制的方法是使用HTTP代理服务器,例如在另一台机器上运行的Squid,您可以在其中编辑hosts文件.
在iPad下设置 - >网络 - > Wi-Fi - >(您的网络)有一个HTTP代理设置,可以设置为手动.在此处输入您的代理信息.
设置完成后,您就可以像操作主机文件一样操作iPad.
Sté*_*ane 70
我发现你只需修改 iPad中的Wifi设置就可以将开发机器的IP地址用作HTTP代理(如前面提到的文章中所述):

这样,只需输入虚拟主机的URL(例如local.mywebapp.com)即可访问iPad上的Web应用程序.它简单快捷,但与Will Koehler的解决方案不同,您无法通过iPad访问互联网.但大多数时候它并不是一个真正的问题,因为你只想测试自己的应用程序.
sag*_*agi 28
在运行代理服务器(如Fiddler或Charles)的计算机上设置hosts文件,并将iPad配置为将该计算机用作HTTP代理.
以下是如何使用Fiddler执行此操作的说明:http: //conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
这是给查尔斯的:http: //www.ravelrumba.com/blog/ipad-http-debugging/
小智 10
如果您已经在使用Apache服务器,那么您可以轻松地将其用作转发代理.这对WordPress网站特别有用,它们非常喜欢使用完整的绝对URL.
Ubuntu示例如下:
第一步是编辑/etc/hostsdev服务器中的文件.添加服务器的本地IP,指向您的站点.
127.0.0.1 dev.mysite.com
当Apache代理尝试解析来自iPhone/iPad的请求时,将使用此hosts文件.那么现在让我们设置Apache部分......
您可能需要先安装一些模块.
sudo apt-get install libapache2-mod-proxy-html
sudo a2enmod proxy proxy_http proxy_html
sudo apache2ctl graceful
Run Code Online (Sandbox Code Playgroud)
然后创建一个虚拟主机文件 /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>
Run Code Online (Sandbox Code Playgroud)
启用vhost,然后重新启动Apache:
sudo a2ensite my-proxy
sudo apache2ctl graceful
Run Code Online (Sandbox Code Playgroud)
然后转到设置> Wi-Fi>您的网络并配置"手动"代理.输入Apache服务器的IP和端口.而已!
该<Proxy *>块确保只有本地网络上的人才能使用此代理.严格限制访问是必不可少的,如果你使用的是正向代理.该ip2cidr页面将在这一点很有帮助.(作为额外措施,我的防火墙阻止了:8080端口.)
我需要测试我在iPad上开发的网络应用程序.我在我的开发机器上使用Apache来运行Web应用程序,所以我找到的最简单的解决方案是使用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>
Run Code Online (Sandbox Code Playgroud)
这会将sapphire.local上的传入请求路由到demo.cms.dev.该方法一次仅适用于一个应用程序.我认为你可以使用不同的端口来设置其他应用程序.也许有人有更好的解决方案?
也可以使用Weblock - AdBlock for iOS应用程序(此处的价格为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
Host: www.google.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Proxy-Connection: keep-alive
PREF=ID=7722bc3c844a7c26:TM=1402073839:LM=1402073839:S=5bSJJsM2p0HgUP7L
User-Agent: 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
Connection: keep-alive
Weblock也可以选择性地使用正则表达式重定向某些URL.您可以仅将查询重定向到某个端点,而所有其他查询都会转到从DNS返回的IP.这实际上允许/ etc/hosts进行更合适的配置.
示例:如果我为htt*://somedomain.com/api/login*和某些IP和端口创建了URL重定向规则,我将仅在此IP和端口上看到来自此URL的流量,而对于某些域,我将只看到所有其他流量. com将直接转到DNS返回的IP.请注意,它适用于/ api/login和/ api/login?someparam = somevalue,这要归功于规则末尾的通配符*.
我是在Mac上使用squidman制作的.它易于设置和使用.
我按照这篇文章在5分钟内完成了设置.
更新
另一件事是如果你想连接到代理服务器上运行的网站,在我的情况下它是我的Mac,你需要在squidman-> Preferences-> Template中评论这一行
# protect web apps running on the proxy host from external users
# http_access deny to_localhost
Run Code Online (Sandbox Code Playgroud)