有什麼方法可以只允許來自指定連接埠上的指定國家/地區的 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 顯然這個連結已經失效了,所以我添加了一個用於互聯網存檔。
您需要定期更新資料庫,因為有時 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
但你的答案是正確的。