如何重定向从iPad发出的HTTP请求?

tre*_*qui 114 redirect http hosts ipad

由于在iPad上我们无法编辑主机文件(没有越狱),我们如何随意将网络流量重定向到另一个网址?

这对于诸如开发使用虚拟主机配置的网站(例如您要重定向到开发计算机)这一点非常重要.

(这与此问题有关:我可以编辑iPad的主机文件吗?)

tre*_*qui 86

解决iPad的这种限制的方法是使用HTTP代理服务器,例如在另一台机器上运行的Squid,您可以在其中编辑hosts文件.

在iPad下设置 - >网络 - > Wi-Fi - >(您的网络)有一个HTTP代理设置,可以设置为手动.在此处输入您的代理信息.

设置完成后,您就可以像操作主机文件一样操作iPad.

  • 只是为了记录我会说使用macports"sudo port install squid"安装squid非常容易 (3认同)
  • 或者在Ubuntu上的`apt-get install squid` (3认同)
  • 注意:每次在Squid服务器上编辑hosts文件时,请重新启动Squid服务以确保编辑生效.在Ubuntu上,这是`sudo service squid3 reload`.另外 - 也许这是我的开发服务器特有的配置问题 - 在我的iPad上我必须手动输入http://以便地址解析才能正常工作. (3认同)
  • 或 Fedora 上的“yum install squid” (2认同)
  • 另一种更简单的方法是使用我编写的工具:testProxy。无需配置:https://github.com/edwinm/testProxy (2认同)

Sté*_*ane 70

我发现你只需修改 iPad中的Wifi设置就可以将开发机器的IP地址用作HTTP代理(如前面提到的文章所述):

在此输入图像描述

这样,只需输入虚拟主机的URL(例如local.mywebapp.com)即可访问iPad上的Web应用程序.它简单快捷,但与Will Koehler的解决方案不同,您无法通过iPad访问互联网.但大多数时候它并不是一个真正的问题,因为你只想测试自己的应用程序.

  • 那些类似我的本地应用程序从网上的各种API中提取数据的情况怎么样? (10认同)
  • 如果您在Windows上使用Wamp或uWamp,请将端口设置为"80". (4认同)
  • 很好的答案。如果您正在使用 Webrick 测试 Rails 应用程序,只需设置开发机器的 IP 地址和端口 3000 (2认同)

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/

  • 对于我们Windows开发人员来说,Fiddler是一个很好的选择,因为大多数开发人员已经安装了它. (2认同)

小智 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端口.)


Wil*_*ler 9

我需要测试我在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.该方法一次仅适用于一个应用程序.我认为你可以使用不同的端口来设置其他应用程序.也许有人有更好的解决方案?


kop*_*per 8

也可以使用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 /代理服务器配置.

这是一个例子:

  1. 我已经像这样配置了Weblock:http://i.stack.imgur.com/c5SUh.png
  2. 打开Safari并在www.google.com中输入URL作为输入
  3. 这是我的Mac终端上的输出,用于侦听端口1234上的连接:

    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,这要归功于规则末尾的通配符*.


Lei*_*Cao 6

我是在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)


小智 5

您可以在网络上设置内部DNS服务器(如果尚不存在)并设置A记录.然后确保您的DHCP设置为返回所述DNS服务器