透明代理和显式代理有什么区别

Tot*_*tti 1 iptables transparent-proxy

我已经设置了一个透明代理,可以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
Run Code Online (Sandbox Code Playgroud)

如果我设置显式代理来替换鱿鱼,http 仍然有效,但 https 不起作用(https 代理执行 MITM,我信任证书)。

我想知道使用 iptables REDIRECT 和显式设置浏览器代理之间的区别。代理是否以某种方式处理它?

jrt*_*ell 5

代理如何工作

透明代理的工作原理

浏览器认为它正在与 Web 服务器通信,代理拦截此流量,并执行它需要的任何任务。

显式代理的工作原理

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

每种类型的好处

透明的

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

显式

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