IPTables - 根据国家/地区重定向流量

IPTables - 根据国家/地区重定向流量

有没有什么方法可以仅允许来自指定国家/地区的指定端口上的 TCP 流量,而其余流量使用 iptables 重定向到另一个 IP /端口?

答案1

您需要设置并更新 geoip 数据库才能使其正常工作。

iptables -I INPUT -m geoip -p tcp --dport ### --src-cc CN -j ACCEPT
iptables -A PREROUTING -m geoip -p tcp --dport ###  --src-cc ! CN -j DNAT --to-destination 1.1.1.1:333

将 1.1.1.1 替换为您的 IP,将 333 替换为您想要的任何端口。

以下教程可以帮助您: http://xmodulo.com/block-network-traffic-by-country-linux.html 显然这个链接已经失效了,所以我添加了一个用于互联网档案。

https://web.archive.org/web/20190410142529/http://xmodulo.com/block-network-traffic-by-country-linux.html

您需要定期更新数据库,因为有时 IP 地址会更改所有者和国家。

答案2

正确的语法是:

iptables -I INPUT -m geoip -p tcp --dport xxx --src-cc CN -j ACCEPT
iptables -A PREROUTING -p tcp --dport xxx --src-cc ! CZ,SK -j DNAT --to-destination 1.1.1.1:333

但你的答案是正确的。

相关内容