将 ip Masquerade 限制在特定的 ip 范围内

将 ip Masquerade 限制在特定的 ip 范围内

我在私有端使用整个 10.0.0.0/8 子网。

我想允许子网的某个部分(例如 10.0.0.2 - 10.0.31.254)通过 Linux 路由器访问互联网,但不允许网络的其余部分(10.0.32.1 - 10.255.255.254)访问互联网

我已经尝试过 iptables -t nat -A POSTROUTING -s 10.0.0.0/19 -o eth0 -j MASQUERADE 10.0.0.0/19 是 10.0.0.2 - 10.0.31.254 但这样所有工作站都无法访问网络

我知道整个 10.0.0.0/8 有 16,777,214 个 IP 地址,但我有我的理由

谢谢

答案1

我通过这个问题找到了答案如何使用 IPTABLES 允许一定范围的 IP?

它是:

iptables -t nat -A POSTROUTING -m iprange --src-range (起始 ip)-(结束 ip) -o eth0 -j MASQUERADE

例如:iptables -t nat -A POSTROUTING -m iprange --src-range 10.0.0.2-10.0.31.255 -o eth0 -j MASQUERADE

答案2

ubuntu 22.04 上的语法略有不同,但对我有用

sudo iptables -t nat -A POSTROUTING -s <network eg 192.168.0.0/16> -o <interface eg ens160> -j MASQUERADE

答案3

Squid 是支持 HTTP、HTTPS、FTP 等的 Web 缓存代理。

  http://www.squid-cache.org/

您可以在 squid 中编写 ACL,并根据您的要求允许/禁止。

相关内容