随着互联网的不断发展与普及,网络带宽的使用也愈加广泛。对于一些大型企业或机构而言,网络带宽的使用量也愈加巨大,其中无不缺少大流量问题的困扰。今天就来讲一下,在使用Linux平台的服务器上,如何进行网络带宽限制,以解决大流量问题。
成都创新互联是一家集网站建设,武威企业网站建设,武威品牌网站建设,网站定制,武威网站建设报价,网络营销,网络优化,武威网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
一、使用 iptables
iptables 是一款Linux内核中的防火墙工具,也是一款网络地址转换(NAT)工具。在进行网络带宽限制时,我们可以使用 iptables 来实现,其具体操作如下:
1.限制某个 IP 的更大带宽
我们可以使用 iptables 的限制功能来限制某个 IP 的更大带宽。具体操作如下:
“`
iptables -A INPUT -s 1.2.3.4 -p tcp –dport 80 -m limit –limit 50/s –limit-burst 100 -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -j DROP
“`
其中,1.2.3.4 代表 IP 地址,–dport 80 表示端口为80。–limit 50/s 表示每秒钟只允许50个连接,–limit-burst 100 表示允许突发100个连接,大家可以根据自己需求进行调整。
2.限制某个端口的更大带宽
我们也可以使用 iptables 来限制某个端口的更大带宽。具体操作如下:
“`
iptables -A OUTPUT -p tcp –sport 80 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 80 -j DROP
“`
其中,–sport 80 表示源端口为80,其他参数含义同上。
3.限制总带宽
如果我们希望限制整个服务器的带宽,可以使用 tc 来实现。首先需要安装 tc 工具:
“`
yum install tc -y
“`
安装完成后,我们可以使用如下命令来限制总带宽:
“`
tc qdisc add dev eth0 root tbf rate 1mbps burst 32kbit latency 400ms
“`
其中,eth0 代表网络接口名称,rate 1mbps 表示限制带宽为1Mbps,burst 32kbit 表示允许突发32kbit的流量,latency 400ms 表示延迟为400毫秒。
二、使用 Tc
Tc 是一款 Linux 内核功能的一部分,具有限制网络带宽的功能。tc 的设置较为复杂,但是可以更精细地进行带宽限制,对于大流量问题较为可靠。它主要基于 HTB(Hierarchical Token Bucket)算法,是目前 Linux 平台上的公认带宽控制方式。具体操作如下:
1.安装 tc 工具
安装 tc 工具的方式同 iptables 部分。
2.限制某个端口的更大带宽
需要先进行以下操作:
“`
tc qdisc add dev eth0 root handle 1: htb default 10
“`
其中,eth0 代表网络接口名称,handle 1: 表示将本规则存放在类别 1 中,default 10 表示设置默认类别为 10。然后执行以下指令:
“`
tc class add dev eth0 parent 1: classid 1:1 htb rate 256kbps ceil 256kbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 200kbps ceil 256kbps
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 80 0xffff flowid 1:10
“`
其中,rate 指限制的更大带宽速率,ceil 指更大平均带宽速率,test 80 为限制端口号,若想限制多个端口号,则使用“&&”隔开。
3.限制某个 IP 的更大带宽
我们还可以对某个 IP 进行带宽限制,具体操作如下:
“`
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip src 1.2.3.4/32 flowid 1:10
“`
其中,1.2.3.4 为限制的 IP 地址,flowid 后接的数字为上面定义的“类别编号:规则编号”。
以上是两种方法来实现在 Linux 平台上对网络带宽进行限制。可以根据自己的需求进行选择。如果只是限制某一端口的更大带宽,则可以使用 iptables;如果要更为精细的带宽控制,则可以考虑使用 tc 工具。
相关问题拓展阅读:
首先你得netem QDiscipline设置看起来没什么区别,limit太大,loss 0%和默认一样,剩下的delay 10ms都是指所有pakcat按照延迟10ms进行发送
至于你的TBF设置,用了TBF自身提供的两个途径
TBF叫做Token Bucket Filter.总体的思路就是数据包要领到Token(令牌)才能被发送,而令牌的产生速率收到rate这个参数的限制。Token是一个抽象的概念,Token的大小都是指的Token所指向的数据包的大小。
当要发送的速率低于令牌产生的速度时,所有的数据包都能领到Token,并且多余的Token会在你的Buffer里积累。积累的上限由Buffer/Burst这个参数指定。
当发送的速率等于Token产生的速度时,Token正好被完全消耗,所有雹颤的数据包都会发送,并且buffer不会积累多余的Token
当发送的速率大于Token的速率,如果Buffer里还有多余的Token,就会开始消耗Buffer的Token,同时允许数据包通过。如果buffer的Token耗尽,数据包就不被允许通过,并且进入Txqueue(发送队列)排队。如果排队的尺寸大于limit(你的之一个TBF有指定),则队列不能再增长,新到来的数据包会被drop。
明白上面的镇好概念之后你的两条命令的区别也就容易看懂了。
之一个是用的Buffer/Limit
Buffer就是瞬间可以额外提供的Token的数量。Rate限制了你的持续上传速率为1Mb/s,然后在你长时间网络流量很低时,你得Token会积累,最后你可以有Buffer这么大(1600b)的缓冲无视rate的限制(可以瞬间发送1600b,所以叫做突发)。至于后面的limit 3000,是指你当你的缓冲区(Txqueue)超过3000b时,新来的包会被Drop
第二个用的是御肆铅Burst/latency/rate组合
这里的burst和上面的buffer含义完全相同,都是能够以高于rate所限定的速度发送的数据量(4Mb,比之一个的大很多)。至于Latency,是对应limit的量。Latency规定的是数据包能在Txqueue中呆的最长的时间(你的是1S),在Txqueue中呆超过1s的包都会被Drop。所以结合你的rate来计算,latency 1s+rate 1Mbit/s 等价于 limit为1Mbit*1s=1Mb
*tc只能规整egress traffic,就是从NIC流出的流量(上传),对于下载,要用IFB将ingress(下载)模拟成egress
linux 限制带宽的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 限制带宽,Linux 网络带宽限制方法大全,快速解决大流量问题!,关于Linux网卡带宽设置的问题的信息别忘了在本站进行查找喔。
创新互联服务器托管拥有成都T3+级标准机房资源,具备完善的安防设施、三线及BGP网络接入带宽达10T,机柜接入千兆交换机,能够有效保证服务器托管业务安全、可靠、稳定、高效运行;创新互联专注于成都服务器托管租用十余年,得到成都等地区行业客户的一致认可。
分享标题:Linux网络带宽限制方法大全,快速解决大流量问题!(linux限制带宽)
网站路径:http://www.shufengxianlan.com/qtweb/news4/234754.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联