新聞中心
隨著互聯(lián)網(wǎng)的不斷發(fā)展與普及,網(wǎng)絡(luò)帶寬的使用也愈加廣泛。對(duì)于一些大型企業(yè)或機(jī)構(gòu)而言,網(wǎng)絡(luò)帶寬的使用量也愈加巨大,其中無(wú)不缺少大流量問(wèn)題的困擾。今天就來(lái)講一下,在使用Linux平臺(tái)的服務(wù)器上,如何進(jìn)行網(wǎng)絡(luò)帶寬限制,以解決大流量問(wèn)題。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),武威企業(yè)網(wǎng)站建設(shè),武威品牌網(wǎng)站建設(shè),網(wǎng)站定制,武威網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,武威網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一、使用 iptables
iptables 是一款Linux內(nèi)核中的防火墻工具,也是一款網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)工具。在進(jìn)行網(wǎng)絡(luò)帶寬限制時(shí),我們可以使用 iptables 來(lái)實(shí)現(xiàn),其具體操作如下:
1.限制某個(gè) IP 的更大帶寬
我們可以使用 iptables 的限制功能來(lái)限制某個(gè) 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個(gè)連接,–limit-burst 100 表示允許突發(fā)100個(gè)連接,大家可以根據(jù)自己需求進(jìn)行調(diào)整。
2.限制某個(gè)端口的更大帶寬
我們也可以使用 iptables 來(lái)限制某個(gè)端口的更大帶寬。具體操作如下:
“`
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,其他參數(shù)含義同上。
3.限制總帶寬
如果我們希望限制整個(gè)服務(wù)器的帶寬,可以使用 tc 來(lái)實(shí)現(xiàn)。首先需要安裝 tc 工具:
“`
yum install tc -y
“`
安裝完成后,我們可以使用如下命令來(lái)限制總帶寬:
“`
tc qdisc add dev eth0 root tbf rate 1mbps burst 32kbit latency 400ms
“`
其中,eth0 代表網(wǎng)絡(luò)接口名稱,rate 1mbps 表示限制帶寬為1Mbps,burst 32kbit 表示允許突發(fā)32kbit的流量,latency 400ms 表示延遲為400毫秒。
二、使用 Tc
Tc 是一款 Linux 內(nèi)核功能的一部分,具有限制網(wǎng)絡(luò)帶寬的功能。tc 的設(shè)置較為復(fù)雜,但是可以更精細(xì)地進(jìn)行帶寬限制,對(duì)于大流量問(wèn)題較為可靠。它主要基于 HTB(Hierarchical Token Bucket)算法,是目前 Linux 平臺(tái)上的公認(rèn)帶寬控制方式。具體操作如下:
1.安裝 tc 工具
安裝 tc 工具的方式同 iptables 部分。
2.限制某個(gè)端口的更大帶寬
需要先進(jìn)行以下操作:
“`
tc qdisc add dev eth0 root handle 1: htb default 10
“`
其中,eth0 代表網(wǎng)絡(luò)接口名稱,handle 1: 表示將本規(guī)則存放在類別 1 中,default 10 表示設(shè)置默認(rèn)類別為 10。然后執(zhí)行以下指令:
“`
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 為限制端口號(hào),若想限制多個(gè)端口號(hào),則使用“&&”隔開。
3.限制某個(gè) IP 的更大帶寬
我們還可以對(duì)某個(gè) IP 進(jìn)行帶寬限制,具體操作如下:
“`
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 后接的數(shù)字為上面定義的“類別編號(hào):規(guī)則編號(hào)”。
以上是兩種方法來(lái)實(shí)現(xiàn)在 Linux 平臺(tái)上對(duì)網(wǎng)絡(luò)帶寬進(jìn)行限制??梢愿鶕?jù)自己的需求進(jìn)行選擇。如果只是限制某一端口的更大帶寬,則可以使用 iptables;如果要更為精細(xì)的帶寬控制,則可以考慮使用 tc 工具。
相關(guān)問(wèn)題拓展閱讀:
- 關(guān)于Linux網(wǎng)卡帶寬設(shè)置的問(wèn)題
關(guān)于Linux網(wǎng)卡帶寬設(shè)置的問(wèn)題
首先你得netem QDiscipline設(shè)置看起來(lái)沒(méi)什么區(qū)別,limit太大,loss 0%和默認(rèn)一樣,剩下的delay 10ms都是指所有pakcat按照延遲10ms進(jìn)行發(fā)送
至于你的TBF設(shè)置,用了TBF自身提供的兩個(gè)途徑
TBF叫做Token Bucket Filter.總體的思路就是數(shù)據(jù)包要領(lǐng)到Token(令牌)才能被發(fā)送,而令牌的產(chǎn)生速率收到rate這個(gè)參數(shù)的限制。Token是一個(gè)抽象的概念,Token的大小都是指的Token所指向的數(shù)據(jù)包的大小。
當(dāng)要發(fā)送的速率低于令牌產(chǎn)生的速度時(shí),所有的數(shù)據(jù)包都能領(lǐng)到Token,并且多余的Token會(huì)在你的Buffer里積累。積累的上限由Buffer/Burst這個(gè)參數(shù)指定。
當(dāng)發(fā)送的速率等于Token產(chǎn)生的速度時(shí),Token正好被完全消耗,所有雹顫的數(shù)據(jù)包都會(huì)發(fā)送,并且buffer不會(huì)積累多余的Token
當(dāng)發(fā)送的速率大于Token的速率,如果Buffer里還有多余的Token,就會(huì)開始消耗Buffer的Token,同時(shí)允許數(shù)據(jù)包通過(guò)。如果buffer的Token耗盡,數(shù)據(jù)包就不被允許通過(guò),并且進(jìn)入Txqueue(發(fā)送隊(duì)列)排隊(duì)。如果排隊(duì)的尺寸大于limit(你的之一個(gè)TBF有指定),則隊(duì)列不能再增長(zhǎng),新到來(lái)的數(shù)據(jù)包會(huì)被drop。
明白上面的鎮(zhèn)好概念之后你的兩條命令的區(qū)別也就容易看懂了。
之一個(gè)是用的Buffer/Limit
Buffer就是瞬間可以額外提供的Token的數(shù)量。Rate限制了你的持續(xù)上傳速率為1Mb/s,然后在你長(zhǎng)時(shí)間網(wǎng)絡(luò)流量很低時(shí),你得Token會(huì)積累,最后你可以有Buffer這么大(1600b)的緩沖無(wú)視r(shí)ate的限制(可以瞬間發(fā)送1600b,所以叫做突發(fā))。至于后面的limit 3000,是指你當(dāng)你的緩沖區(qū)(Txqueue)超過(guò)3000b時(shí),新來(lái)的包會(huì)被Drop
第二個(gè)用的是御肆鉛Burst/latency/rate組合
這里的burst和上面的buffer含義完全相同,都是能夠以高于rate所限定的速度發(fā)送的數(shù)據(jù)量(4Mb,比之一個(gè)的大很多)。至于Latency,是對(duì)應(yīng)limit的量。Latency規(guī)定的是數(shù)據(jù)包能在Txqueue中呆的最長(zhǎng)的時(shí)間(你的是1S),在Txqueue中呆超過(guò)1s的包都會(huì)被Drop。所以結(jié)合你的rate來(lái)計(jì)算,latency 1s+rate 1Mbit/s 等價(jià)于 limit為1Mbit*1s=1Mb
*tc只能規(guī)整egress traffic,就是從NIC流出的流量(上傳),對(duì)于下載,要用IFB將ingress(下載)模擬成egress
linux 限制帶寬的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 限制帶寬,Linux 網(wǎng)絡(luò)帶寬限制方法大全,快速解決大流量問(wèn)題!,關(guān)于Linux網(wǎng)卡帶寬設(shè)置的問(wèn)題的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
文章標(biāo)題:Linux網(wǎng)絡(luò)帶寬限制方法大全,快速解決大流量問(wèn)題!(linux限制帶寬)
鏈接分享:http://m.5511xx.com/article/ccdipid.html


咨詢
建站咨詢
