终止 TCP 连接 X 秒(邮件/postfix)

终止 TCP 连接 X 秒(邮件/postfix)

我有多个发送电子邮件的 IP。情况如下:

IP1、IP2、IP3、IP4
IP1 -> 发送邮件1、发送邮件2、发送邮件3
IP2 -> sendmail4、sendmail5、sendmail6、sendmail7、...
IP3 -> sendmail8,sendmail9,sendmail10,...
IP4…

我想在发送一封邮件后切换到下一个 IP:

IP1->sendmail1
IP2 -> sendmail2
IP3 -> sendmail3
...

我尝试编写一个脚本,该脚本将继续 grep 日志文件的最后一行并搜索“sent”,如果找到,则终止具有端口 25 的进程并强制其通过下一个 IP,但这需要重新启动 postfix。 有没有方法可以终止连接足够长的时间以切换到下一个 IP?

答案1

让 iptables 处理 nat 平衡:

sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 2 --packet 0  -j SNAT --to x.x.x.1
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 2 --packet 1  -j SNAT --to x.x.x.2

这个例子是在 2 个 IP 之间进行平衡,您可以轻松扩展它以获得更多。

sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 0  -j SNAT --to x.x.x.1
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 1  -j SNAT --to x.x.x.2
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 2  -j SNAT --to x.x.x.3
sudo iptables -t nat -I POSTROUTING -m state --state NEW -p tcp --dport 25 -o eth0 -m statistic --mode nth --every 4 --packet 3  -j SNAT --to x.x.x.4

相关内容