在终端中添加 iptables 规则,要求限制针对端口 3306 的 TCP 连接请求不超过每分钟 15 个,超过限制的请求将被丢弃。
时间: 2024-11-27 11:09:00 浏览: 21
在终端中,你可以使用iptables来创建规则限制对3306端口的TCP连接请求。以下是一个基本的示例,创建一个chain(链路),定义规则,并使用`limit`模块来限制每分钟的连接数:
```bash
# 创建一个新的nat链(对于DNAT和MASQUERADE)
sudo iptables -t nat -N limit_conn_mysql
# 配置规则,限制来自所有源IP的每分钟3306端口的连接数为15次
sudo iptables -A POSTROUTING -o eth0 -p tcp --dport 3306 -m connlimit --connlimit-above 15 --connlimit-mask 15/1 -j LIMIT --limit-rate 1/s
# 同时,防止新连接,当达到限制时,丢弃后续连接
sudo iptables -A INPUT -p tcp --dport 3306 -m connlimit --connlimit-above 15 --connlimit-mask 15/1 -j DROP
# 清楚旧的规则以避免冲突
sudo iptables -D INPUT -p tcp --dport 3306 -j ACCEPT
# 检查并应用新的规则
sudo iptables-save > /etc/iptables/rules.v4 && sudo service iptables save
```
这里假设你的网络出口接口是`eth0`,如果有误请替换为正确的网卡名。上述命令将限制从所有来源到3306端口的TCP连接,并在每分钟内超过15次后开始丢弃进一步的连接。
阅读全文