代理如何工作

代理如何工作

我已经设置了一个透明代理,squid监听 8080(http)8443(https),并且它可以工作。

另外,我设置了iptables来重定向请求。

iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果我设置一个显式代理来替换 squid,http 仍然可以工作,但 https 不起作用(https 代理执行 MITM,并且我信任该证书)。

我想知道使用 iptables REDIRECT 和明确设置浏览器代理之间的区别。代理处理它的方式是否有所不同?

答案1

代理如何工作

透明代理的工作原理

浏览器认为它正在与 Web 服务器对话,代理会拦截该流量并执行其需要的任何任务。

显式代理的工作原理

浏览器知道它正在与代理通信,并要求代理加载它想要加载的站点。

每种类型的优点

透明的

  • 无需在每个客户端上进行配置
  • 可供无代理设置的软件使用

显式

  • 更明显的是,流量正在受到监控
  • 可以在透明代理可能破坏的地方工作
  • 如果代理失败,更有可能给出有用的错误消息

答案2

CONNECT浏览器的对话方式不同。使用显式代理时,每当需要通过 https 进行任何操作时,它都会发出特殊动词。使用透明代理时,它将发出正常GETPOST,但绝不会发出CONNECT

在不安全的 http 中不会发生这种特殊的差异。

相关内容