是的,Linux的iptables可以对特定协议进行限速
sudo iptables -A OUTPUT -t mangle -p tcp --sport 80 -m limit --limit 1/s --limit-burst 5 -j ACCEPT
sudo iptables -A OUTPUT -t mangle -p tcp --dport 80 -m limit --limit 1/s --limit-burst 5 -j ACCEPT
这里,我们为HTTP(端口80)流量设置了每秒1个数据包的限制,允许突发流量高达5个数据包。你可以根据需要调整这些值。
如果你想要对整个系统上的所有TCP流量进行限速,可以使用以下命令:
sudo iptables -A OUTPUT -t mangle -p tcp -m limit --limit 1/s --limit-burst 5 -j ACCEPT
请注意,这些限速规则仅适用于输出流量。如果你还需要对输入流量进行限速,可以创建类似的规则,但将-p tcp --sport 80
替换为-p tcp --dport 80
。
最后,为了使这些规则在系统重启后仍然生效,你需要安装iptables-persistent
软件包并保存当前的iptables规则。在Debian和Ubuntu系统上,可以使用以下命令安装:
sudo apt-get install iptables-persistent
安装完成后,运行以下命令以保存当前的iptables规则:
sudo netfilter-persistent save
在CentOS和RHEL系统上,可以使用以下命令安装:
sudo yum install iptables-services
然后,启动并启用iptables
服务:
sudo systemctl start iptables
sudo systemctl enable iptables
最后,运行以下命令以保存当前的iptables规则:
sudo service iptables save