怎樣在 Linux 中限制網(wǎng)絡(luò)帶寬使用
來(lái)源:易賢網(wǎng) 閱讀:1235 次 日期:2015-04-02 12:49:41
溫馨提示:易賢網(wǎng)小編為您整理了“怎樣在 Linux 中限制網(wǎng)絡(luò)帶寬使用”,方便廣大網(wǎng)友查閱!

假如你經(jīng)常在 Linux 桌面上運(yùn)行多個(gè)網(wǎng)絡(luò)應(yīng)用,或在家中讓多臺(tái)電腦共享帶寬;那么你可能想更好地控制帶寬的使用。否則,當(dāng)你使用下載器下載一個(gè)大文件時(shí),交互式 SSH 會(huì)話(huà)可能會(huì)變得緩慢以至不可用;或者當(dāng)你通過(guò) Dropbox 來(lái)同步一個(gè)大文件夾時(shí),你的室友可能會(huì)抱怨在她的電腦上,視頻流變得斷斷續(xù)續(xù)。

在本教程中,我將為你描述兩種在 Linux 中限制網(wǎng)絡(luò)流量速率的不同方法。

名單

在 Linux 中限制一個(gè)應(yīng)用的速率

限制網(wǎng)絡(luò)流量速率的一種方法是通過(guò)一個(gè)名為trickle的命令行工具。通過(guò)在程序運(yùn)行時(shí),預(yù)先加載一個(gè)速率限制 socket 庫(kù) 的方法,trickle 命令允許你改變?nèi)我庖粋€(gè)特定程序的流量。 trickle 命令有一個(gè)很好的特性是它僅在用戶(hù)空間中運(yùn)行,這意味著,你不必需要 root 權(quán)限就可以限制一個(gè)程序的帶寬使用。要能使用 trickle 程序控制程序的帶寬,這個(gè)程序就必須使用非靜態(tài)鏈接庫(kù)的套接字接口。當(dāng)你想對(duì)一個(gè)不具有內(nèi)置帶寬控制功能的程序進(jìn)行速率限制時(shí),trickle 可以幫得上忙。

在 Ubuntu,Debian 及其衍生發(fā)行版中安裝 trickle :

$ sudo apt-get install trickle

在 Fdora 或 CentOS/RHEL (帶有 EPEL 軟件倉(cāng)庫(kù)):

$ sudo yum install trickle

trickle 的基本使用方法如下。僅需簡(jiǎn)單地把 trickle 命令(及速率參數(shù))放在你想運(yùn)行的命令之前。

$ trickle -d <download-rate> -u <upload-rate> <command>

這就可以將 <command> 的下載和上傳速率限定為特定值(單位 KBytes/s)。

例如,將你的 scp 會(huì)話(huà)的最大上傳帶寬設(shè)定為 100 KB/s:

$ trickle -u 100 scp backup.tgz :

如若你想,你可以通過(guò)創(chuàng)建一個(gè)自定義啟動(dòng)器的方式,使用下面的命令為你的 Firefox 瀏覽器設(shè)定最大下載速率(例如, 300 KB/s)。

trickle -d 300 firefox %u

最后, trickle 也可以以守護(hù)進(jìn)程模式運(yùn)行,在該模式下,它將會(huì)限制所有通過(guò) trickle 啟動(dòng)且正在運(yùn)行的程序的總帶寬之和。 啟動(dòng) trickle 使其作為一個(gè)守護(hù)進(jìn)程(例如, trickled):

trickle -d 300 firefox %u

一旦 trickled 守護(hù)進(jìn)程在后臺(tái)運(yùn)行,你便可以通過(guò) trickle 命令來(lái)啟動(dòng)其他程序。假如你通過(guò) trickle 啟動(dòng)一個(gè)程序,那么這個(gè)程序的最大下載速率將是 1000 KB/s, 假如你再通過(guò) trickle 啟動(dòng)了另一個(gè)程序,則每個(gè)程序的(下載)速率極限將會(huì)被限制為 500 KB/s,等等。

在 Linux 中限制一個(gè)網(wǎng)絡(luò)接口的速率

另一種控制你的帶寬資源的方式是在每一個(gè)接口上限制帶寬。這在你與其他人分享你的網(wǎng)絡(luò)連接的上行帶寬時(shí)尤為實(shí)用。同其他一樣,Linux 有一個(gè)工具來(lái)為你做這件事。wondershaper就是干這個(gè)的。

wondershaper 實(shí)際上是一個(gè) shell 腳本,它使用 tc 來(lái)定義流量調(diào)整命令,使用 QoS 來(lái)處理特定的網(wǎng)絡(luò)接口。外發(fā)流量通過(guò)放在不同優(yōu)先級(jí)的隊(duì)列中,達(dá)到限制傳出流量速率的目的;而傳入流量通過(guò)丟包的方式來(lái)達(dá)到速率限制的目的。

事實(shí)上, wondershaper 的既定目標(biāo)不僅僅是對(duì)一個(gè)接口增加其帶寬上限;當(dāng)批量下載或上傳正在進(jìn)行時(shí),wondershaper 還試圖去保持互動(dòng)性會(huì)話(huà)如 SSH 的低延遲。同樣的,它還會(huì)控制批量上傳(例如, Dropbox 的同步)不會(huì)使得下載“窒息”,反之亦然。

在 Ubuntu Debian 及其衍生發(fā)行版中安裝 wondershaper:

trickle -d 300 firefox %u

在 Fdora 或 CentOS/RHEL (帶有 EPEL 軟件倉(cāng)庫(kù)) 中安裝 wondershaper:

trickle -d 300 firefox %u

wondershaper 的基本使用如下:

$ sudo wondershaper <interface> <download-rate> <upload-rate>

舉個(gè)例子, 將 eth0 的最大下載/上傳帶寬分別設(shè)定為 1000Kbit/s 和 500Kbit/s:

$ sudo wondershaper <interface> <download-rate> <upload-rate>

你也可以通過(guò)運(yùn)行下面的命令將速率限制進(jìn)行消除:

$ sudo wondershaper <interface> <download-rate> <upload-rate>

假如你對(duì) wondershaper 的運(yùn)行原理感興趣,你可以閱讀其 shell 腳本源文件(/sbin/wondershaper)。

總結(jié)

在本教程中,我介紹了兩種不同的方法,來(lái)達(dá)到如何在 Linux 桌面環(huán)境中,控制每個(gè)應(yīng)用或每個(gè)接口的帶寬使用的目的。 這些工具的使用都很簡(jiǎn)單,都為用戶(hù)提供了一個(gè)快速且容易的方式來(lái)調(diào)整或限制流量。 對(duì)于那些想更多地了解如何在 Linux 中進(jìn)行速率控制的讀者,請(qǐng)參考 the Linux bible.

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看技術(shù)文章
易賢網(wǎng)手機(jī)網(wǎng)站地址:怎樣在 Linux 中限制網(wǎng)絡(luò)帶寬使用
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話(huà):0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)