通过iptables设置SS端口限速

下午无事,研究了下IPTABLES对端口进行限速。一次成功!

原理:

每秒对特定端口进行速度控制,比如每秒超过10个的数据包直接DROP,从而限制特定端口的速度

语句案例:

  • 这条语句是对转发到1.1.1.1的数据进行限制
    iptables -A FORWARD -m limit -d 1.1.1.1 --limit 30/s --limit-burst 10 -j ACCEPT
  • 这条语句是删除到1.1.1.1的转发,也就删除了端口限速
    iptables -A FORWARD -d 1.1.1.1 -j DROP

 

首先当然是vi /etc/sysctl.conf文件,修改net.ipv4.ip_forward=0一行,改0改为1

然后service iptables stop

接着输入上面的语句,意思是对转发去1.1.1.1的的数据包,每秒超过30个的数据包(1个数据包是1.5KB,所以这里的速度大约是每秒45KB)进行丢弃,后面burst 10的意思应该是另外每秒最多给到10个包的突发。

service iptables save之后service iptables restart就可以了

 

NOTE:此方法仅实测成功用于端口转发的案例,单纯端口限速该语句并不能作用。

 

编写:Tami

转载请注明本地址

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*