显式代理只需一块网卡
理解正向代理何时可以共享局域网,而不必成为客户端的默认网关。
私有正向代理不必物理地夹在笔记本电脑和路由器之间。它可以是同一局域网内的另一台机器,只使用一块网卡。
笔记本电脑连接代理的地址和监听端口。代理进程向网站或其父级另开一条连接。同一块网卡可以承载这两段会话,由主机的路由表选择下一跳。
client → proxy listener
proxy → existing router → destination对于明确选择了代理的应用程序,这就够了。在 Linux 上,这种普通安排不需要仅仅为了转发应用的请求而启用 IP 转发。
默认网关回答的是另一个问题
客户端的默认网关处理客户端发往其他网络的数据包。改动那项设置不会让浏览器发出 HTTP 代理请求或进行 SOCKS 协商。同样,在浏览器里填了代理,也不会让其他每个应用都经过那台机器。
一台主机可以同时承担两件事,但那样它就有两套配置要管理:代理服务,以及路由或防火墙功能。多几块网卡可能让网络隔离更容易。那是拓扑选择,而不是显式 HTTP 代理强加的前提。
这一区分也解释了一个常见的失败实验:修改代理服务器的转发规则,对经由另一台路由器走的客户端直连毫无影响。数据包从未经过那台服务器。
如果要求是强制使用,就要确定能在哪里控制替代的出站流量。单网卡的显式代理可以是有效的服务,而由单独的网关来执行网络策略。把强制执行放在数据包真正经过的地方。