我在私有端使用整个 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,并根据您的要求允许/禁止。