首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将所有流量转发给透明代理

将所有流量转发给透明代理
EN

Server Fault用户
提问于 2021-05-03 12:51:14
回答 1查看 1.8K关注 0票数 0

我希望将所有通信量从我的实例重定向到另一个运行透明squid代理的实例,使用IP表规则,而不更改实例的默认路由。

在后置链上完成了吗?行动是什么?SNAT?化装舞会?

有人有工作的例子吗?

我试过这个:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -p tcp -m multiport \
  --dports 80,443,2323 -j DNAT --to-destination squid-ip:3128

iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE

显然不起作用。谢谢。

EN

回答 1

Server Fault用户

发布于 2021-05-03 13:56:33

iptables不容易做到这一点;让我给您一些见解。一个透明的代理位于用户和互联网之间,并拦截正在通过它路由的所有数据包。要使其正常工作(在正常情况下),透明代理将查看源和目标地址,并执行打开连接所需的所有步骤。

现在,让我告诉您,为什么iptable对于您的需求来说不是一个很好的选择。

  • DNAT (改变目标IP)是个坏主意,因为透明的代理将不再知道数据包的目的地。
  • 在这种情况下,伪装是无用的,因为这是一个隐藏源子网的目标,而目标网络是目的地网络没有路由的(通常在家庭路由器上进行,以隐藏私有子网不受因特网影响)。
  • SNAT会更糟,因为更改源IP会导致网关向错误的ip发回回复。

您真正需要的是动态更改您所选择的流量的网关。动态路由是一个复杂的主题,我将在这里不讨论。也许你应该重新考虑改变默认的网关,这将是最简单的解决方案.或者,放置两条这样的路线:

代码语言:javascript
复制
route add -net 0.0.0.0/1 gw <squid_ip>
route add -net 128.0.0.0/1 gw <squid_ip>

这样,即使不再使用,您的默认网关仍然保持在原处。但在删除了这两条路线之后,你的默认网关又重新开始运作了.

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1062388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档