代理操作方式

优质
小牛编辑
127浏览
2023-12-01

一、操作方式

  • 常规(默认)
  • 透明
  • 反向代理
  • 上游代理
  • Socks代理 现在,您应该选择哪一个?使用此流程图:

mitmproxy代理

二、常规代理

Mitmproxy的常规模式是最简单,最容易设置的。

  • 启动mitmproxy
  • 通过显式设置HTTP代理,将客户端配置为使用mitmproxy。缺省情况下,mitmproxy侦听端口8080
  • 快速检查:您应该已经可以通过代理访问未加密的HTTP站点。
  • 打开mitm.it并为您的设备安装证书。

不幸的是,某些应用程序绕过了系统HTTP代理设置-Android应用程序是一个常见的示例。在这些情况下,您需要使用mitmproxy的透明模式。 如果您要代理外部设备,则您的网络可能看起来像这样:

方括号表示源IP地址和目标IP地址。您的客户端显式连接到mitmproxy,而mitmproxy显式连接到目标服务器。

Mitmproxy常规代理

三、透明代理

在透明模式下,无需任何客户端配置即可将流量定向到网络层的代理中。这使得透明代理非常适合您无法更改客户端行为的情况。在下图中,在路由器和Internet之间插入了运行mitmproxy的计算机:

mitmproxy透明代理

方括号表示源IP地址和目标IP地址。圆括号标记了以太网/数据链路层上的下一跳。这种区别很重要:当数据包到达mitmproxy机器时,仍必须将其寻址到目标服务器。这意味着在流量到达mitmproxy之前不应该应用网络地址转换,因为这会删除目标信息,从而使mitmproxy无法确定真实的目的地。

mitmproxy模式透明错误

1、常用配置

有多种方法可以配置网络以实现透明代理。我们将看两种常见的情况:

  • 配置客户端以使用自定义网关/路由器/“next hop”
  • 在路由器上实现自定义路由
  • 在大多数情况下,建议使用第一个选项,因为它易于使用。
(a)自定义网关

一种简单地将流量发送到具有目标IP的mitmproxy机器的方法是,简单地将mitmproxy框配置为默认网关的客户端。

mitmproxy自定义网关

在这种情况下,我们将:

  • 将代理计算机配置为透明模式。您可以在透明部分中找到说明。
  • 配置客户端以使用代理计算机的IP作为默认网关。
  • 快速检查:至此,您应该已经可以通过代理访问未加密的HTTP站点。
  • 打开 mitm.it 并为您的设备安装证书。

通过在DHCP上将设置提供给客户端,可以自动在客户端上设置自定义网关。这样就可以建立一个拦截网络,在该网络中自动代理所有客户端,从而节省时间和精力。

对透明模式进行故障排除

错误的透明模式配置是常见的错误来源。如果它不适合您,请尝试以下操作:

打开mitmproxy的事件日志-您是否看到clientconnect消息?如果不是,则数据包未到达代理。一个常见的原因是ICMP重定向的发生,这意味着您的计算机通过直接与路由器联系来告诉客户端有一种更快的Internet途径(请参阅透明部分以了解如何禁用它们)。如有疑问, Wireshark可以帮助您查看是否有东西到达您的计算机。 确保尚未在客户端上显式配置HTTP代理。在透明模式下不需要。 重新检查透明部分中的说明。你错过了什么吗? 如果您遇到其他应在此处列出的陷阱,请告诉我们!

(b)自定义路由

在某些情况下,您可能需要更精细地控制哪些流量到达mitmproxy实例,而哪些流量没有。例如,您可以选择仅将流量转移到某些主机到透明代理中。有很多方法可以完成此操作,并且很多方法都取决于您使用的路由器或数据包筛选器。在大多数情况下,配置如下所示:

四、反向代理

mitmproxy通常与使用代理访问Internet的客户端一起使用。使用反向代理模式,可以使用mitmproxy充当普通的HTTP服务器:

mitmproxy反向代理

有各种用例:

1、主机头

在反向代理模式下,mitmproxy会自动重写Host标头以匹配上游服务器。这使mitmproxy可以轻松连接到开放Web上的现有端点(例如mitmproxy --mode reverse:https://example.com)。您可以使用该keep_host_header选项禁用此行为

但是,请记住,mitmproxy不会重写返回的文档或HTTP重定向中的绝对URL。这意味着,如果您在返回的网页中单击“ http://example.com ”的链接,则将绕过mitmproxy直接进入该URL。

解决此问题的一种可能方法是修改操作系统的主机文件,以便“ example.com”解析为代理的IP,然后直接转到example.com来访问代理。确保您的代理仍然可以解析原始IP,或在mitmproxy中指定IP。

注意事项:互动使用 反向代理模式通常不足以在其他URL上创建交互式网站的副本。提供给客户端的HTML保持不变-用户单击非相对URL(或下载非相对图像资源)后,流量不再通过mitmproxy。

上游代理

如果要通过在其他代理设备之前添加mitmproxy来链接代理,则可以使用mitmproxy的上游模式。在上游模式下,所有请求都会无条件转移到您选择的上游代理中。

mitmproxy上游代理

mitmproxy在上游代理模式下支持显式HTTP和显式HTTPS。从理论上讲,您可以连续链接多个mitmproxy实例,但这在实践中没有任何意义(即在我们的测试范围之外)。

Socks代理

在这种模式下,mitmproxy充当SOCKS5代理。