同一子网内的网站可以绕过网关的透明代理
解释为什么同一子网的流量可以绕过网关的拦截规则,而访问互联网的请求却会出现在其日志中。
浏览互联网的流量会出现在网关代理的日志里,而办公局域网内的网站访问却不会。在改动 URL 过滤规则之前,先确认那次局域网请求是否真的到达了网关。
对于直连的 IPv4 目的地址,客户端可以解析目的地址的链路层地址,并在本地网段上直接发送过去。它的默认网关并不自动位于这条路径上。网关上的透明拦截规则无法重定向网关根本收不到的报文。
例如,同一网段内的两台主机可以通过一台交换机互相通信,而代理机连接在另一台交换机的端口上。仅仅处在这个局域网里,并不会让代理成为转发点。
选择预期的路径
即使目标网站位于本地,显式代理设置也可以把参与应用的请求发送给代理。同时检查绕过规则与 PAC 决策:它们可能有意为私有名称或地址选择 DIRECT。
如果确实需要拦截,网络必须真正把拦截点放在路径上;在 Linux 网关上,要区分本地报文路径与转发报文路径。在合适的设计中,用路由划分子网或者有意串联网桥可以做到这一点,但两者都会改变转发与故障行为。位于局域网其他位置的网桥并不会自动变成串联。
把应用协议的要求单独来看。即使流量已经穿过这台设备,监听端也必须支持该拦截模式。搬运报文并不等于获得解密 HTTPS 的许可,也不保证普通 SOCKS 端口就能接受它们。
记录客户端选择的路由、本地网段以及实际执行转发的设备。缺少代理日志可能是对拓扑的准确描述,而不是日志记录故障。