當前位置:首頁 » 操作系統 » linux限制流量

linux限制流量

發布時間: 2022-02-14 08:24:07

『壹』 linux流量監控的幾個方法

看你用哪個linux系統啊,建議你用專業的linux系統,比如WFilter NGF系統,基於Linux,專門做上網行為管理和流控技術。流量監控只是其中的小功能。

『貳』 linux伺服器要怎樣針對IP流量限制

不是木馬,是設置問題,下面是流量的控制方法一、Linux流量控制過程分二種:1、隊列控制即QOS,瓶頸處的發送隊列的規則控制,常見的有SFQPRIO2、流量控制即帶寬控制,隊列的排隊整形,一般為TBFHTB二、Linux流量控制演算法分二種:1、無類演算法用於樹葉級無分支的隊列,例如:SFQ2、分類演算法用於多分支的隊列,例如:PRIOTBFHTB三、具體實現:1.在網卡上建立以SFQ演算法的限流#tcqdiscadddeveth0roothandle1:sfqSFQ參數有perturb(重新調整演算法間隔)quantum基本上不需要手工調整:handle1:規定演算法編號..可以不用設置由系統指定..#tcqdiscshdeveth0顯示演算法#tcqddeldeveth0root刪除注:默認eht0支持TOS2.在網卡建立以TBF演算法的限流#tcqdadddeveth1roothandle1:速率256kbit突發傳輸10k最大延遲50ms#tc-sqdshdeveth1統計#tcqddeldeveth1root刪除3.在網卡建立PRIO#tcqdiscadddeveth0roothandle1:prio#此命令立即創建了類:1:1,1:2,1:3(預設三個子類)#tcqdiscadddeveth0parent1:1handle10:sfq#tcqdiscadddeveth0parent1:2handle20:注:此為TBF限速的另一寫法,前文有講解.#tcqdiscadddeveth0parent1:3handle30:sfq4.WEB伺服器的流量控制為5Mbps,SMTP流量控制在3Mbps上.而且二者一共不得超過6Mbps,互相之間允許借用帶寬#tcqdiscadddeveth0roothandle1:#tcclassadddeveth0parent1:0classid1:.這部分按慣例設置了根為1:0,並且綁定了類1:1.也就是說整個帶寬不能超過6Mbps.#tcclassadddeveth0parent1:1classid1:.#tcclassadddeveth0parent1:1classid1:.建立了2個類.注意我們如何根據帶寬來調整weight參數的.兩個類都沒有配置成"bounded",但它們都連接到了類1:1上,而1:1設置了"bounded".所以兩個類的總帶寬不會超過6Mbps.別忘了,同一個CBQ下面的子類的主號碼都必須與CBQ自己的號碼相一致!#tcqdiscadddeveth0parent1:3handle30:sfq#tcqdiscadddeveth0parent1:4handle40:sfq預設情況下,兩個類都有一個FIFO隊列規定.但是我們把它換成SFQ隊列,以保證每個數據流都公平對待.#tcfilteradddeveth0parent1::3#tcfilteradddeveth0parent1::46.過濾器過濾示例#::1在10:節點添加一個過濾規則,優先權1:凡是去往22口(精確匹配)的IP數據包,發送到頻道10:1..#::1在10:節點添加一個過濾規則,優先權1:凡是來自80口(精確匹配)的IP數據包,發送到頻道10:1..#:prio2flowid10:2在eth0上的10:節點添加一個過濾規則,它的優先權是2:凡是上二句未匹配的IP數據包,發送到頻道10:2..#tcfilteradddeveth0parent10:.3.2.1/32flowid10:1去往4.3.2.1的包發送到頻道10:1其它參數同上例#tcfilteradddeveth0parent10:.2.3.4/32flowid10:1來自1.2.3.4的包發到頻道10:1#:prio2flowid10:2凡上二句未匹配的包送往10:2#tcfilteradddeveth0parent10:.3.2.1/:1可連續使用match,匹配來自1.2.3.4的80口的數據包

『叄』 如何在Linux上按國別阻止網路流量

LINUX似乎只有摩托羅拉在堅持做!只要是MOTO的智能手機絕大部分都採用這一系統(當然除了Z8、Z10等少數採用賽班的UIQ平台)。V8、E8、E2是採用這一系統中比較不錯的機型。最大特點是刷機刷不死,反應較快。缺點是軟體資源不如其它系統多。

『肆』 linux 怎樣限制ddoc 流量攻擊

檢查日誌寫一個自動防禦shell吧。這個是很管用的
但是市面上的什麼防止ddos的攻擊, 不是那麼有用的啊
這個還是要根據實際情況來弄的奧
能否看看wo的網名呢?這種問題能幫助搞定一下的啊

『伍』 linux流量限制

linux下可用tc來做流量控制,只不過比較麻煩。網路一下,網上很多的。

『陸』 linux系統,實現網路流量控制

這些通過linux內核級防火牆iptables可以輕松實現,限制p2p軟體可能需要在iptables上加裝layer7模塊

推薦看一下Michael Rash著陳健譯的那本《Linux防火牆》,系統地講了iptables的使用

『柒』 聽說用Linux系統可以控制流量

用ulimit 這個命令。
ulimit:顯示(或設置)用戶可以使用的資源的限制(limit),這限制分為軟限制(當前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程序在運行過程中使用的系統資源不超過相應的軟限制,任何的超越都導致進程的終止。
ulimited 不限制用戶可以使用的資源,但本設置對可打開的最大文件數(max open files)
和可同時運行的最大進程數(max user processes)無效
-a 列出所有當前資源極限
-c 設置core文件的最大值.單位:blocks
-d 設置一個進程的數據段的最大值.單位:kbytes
-f Shell 創建文件的文件大小的最大值,單位:blocks
-h 指定設置某個給定資源的硬極限。如果用戶擁有 root 用戶許可權,可以增大硬極限。任何用戶均可減少硬極限
-l 可以鎖住的物理內存的最大值
-m 可以使用的常駐內存的最大值,單位:kbytes
-n 每個進程可以同時打開的最大文件數
-p 設置管道的最大值,單位為block,1block=512bytes
-s 指定堆棧的最大值:單位:kbytes
-S 指定為給定的資源設置軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 標志均未指定,極限適用於以上二者
-t 指定每個進程所使用的秒數,單位:seconds
-u 可以運行的最大並發進程數
-v Shell可使用的最大的虛擬內存,單位:kbytes
eg: ulimit -c 1000(可以先通過ulimit -c 查看原來的值)

『捌』 linux系統中如何限制網路流量

限制網路流量速率的一種方法是通過一個名為trickle的命令行工具。通過在程序運行時,預先載入一個速率限制 socket 庫 的方法,trickle 命令允許你改變任意一個特定程序的流量。 trickle 命令有一個很好的特性是它僅在用戶空間中運行,這意味著,你不必需要 root 許可權就可以限制一個程序的帶寬使用。要能使用 trickle 程序控製程序的帶寬,這個程序就必須使用非靜態鏈接庫的套接字介面。
將你的 scp 會話的最大上傳帶寬設定為 100 KB/s:

$ trickle -u 100 scp backup.tgz alice@remote_host.com:

另一種控制你的帶寬資源的方式是在每一個介面上限制帶寬。這在你與其他人分享你的網路連接的上行帶寬時尤為實用。同其他一樣,Linux 有一個工具來為你做這件事。wondershaper就是干這個的。

wondershaper 實際上是一個 shell 腳本,它使用 tc 來定義流量調整命令,使用 QoS 來處理特定的網路介面。外發流量通過放在不同優先順序的隊列中,達到限制傳出流量速率的目的;而傳入流量通過丟包的方式來達到速率限制的目的。
舉個例子, 將 eth0 的最大下載/上傳帶寬分別設定為 1000Kbit/s 和 500Kbit/s:

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

『玖』 如何在linux上按國別阻止網路流量

作為一名維護生產環境Linux伺服器的系統管理員,在有些情況下,你需要根據地理位置,有選擇性地阻止或允許網路流量。比如說,你遇到了拒絕服務攻擊,這些攻擊主要源自在某一個國家注冊的IP地址。在其他情況下,出於安全方面的原因,你又想要阻止外國來歷不明SSH登錄請求;或者貴公司對在線視頻擁有發行權,因而只可以分發給某些國家;或者由於地域限制方面的公司政策,你需要防止本地主機將文檔上傳到非美國遠程雲存儲系統。

所有這些場景都需要能夠安裝一個防火牆,可以按國別對流量進行過濾。有幾種方法可以做到這一點。舉例說,你可以使用TCP包裝器(TCP wrapper),針對個別應用程序(比如SSH、NFS和httpd)設置有條件的阻止。其缺點是,你想要保護的那個應用程序在開發當初必須支持TCP包裝器。此外,TCP包裝器並非普遍出現在不同的平台上(比如說,Arch Linux已停止對TCP包裝器的支持)。另一種辦法就是,利用基於國家的GeoIP信息來設置ipset,然後將它運用於iptables規則。後一種方法更有希望,因為基於iptables的過濾與應用程序無關,而且易於設置。
我在本教程中將介紹另一種基於iptables的GeoIP過濾機制,這種機制實施了xtables-addons。有些讀者對它還不熟悉,所以有必要先介紹一下,xtables-addons是一套面向netfilter/iptables的擴展。xtables-addons內含了一個名為xt_geoip的模塊,該模塊擴展了netfilter/iptables的功能,可以根據來源/目的地國家,過濾、NAT或管理數據包。如果你想使用xt_geoip,不需要重新編譯內核或iptables,只需要構建xtables-addons模塊,並使用當前的內核構建環境(/lib/moles/`uname -r`/build)。也不需要重啟。一旦你構建並安裝好了xtables-addons,xt_geoip立即就可以與iptables結合使用。
至於xt_geoip和ipset之間的區別,官方來源(http://xtables-addons.sourceforge.net/geoip.php)提到,xt_geoip在內存佔用空間方面少於ipset。不過在匹配速度方面,基於散列的ipset可能具有優勢。
在本教程其餘部分,我會演示如何使用iptables/xt_geoip,根據來源/目的地國家,阻止網路流量。
將Xtables-addons安裝到Linux上
下面介紹如何編譯xtables-addons,並將它安裝到不同的Linux平台上。
想構建xtables-addons,你就需要先安裝幾個依賴程序包。
·將依賴程序包安裝到Debian、Ubuntu或Linux Mint上
$ sudo apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config
·將依賴程序包安裝到CentOS、RHEL或Fedora上
CentOS/RHEL 6需要先安裝EPEL軟體庫(面向perl-Text-CSV_XS)。
$ sudo yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS
編譯和安裝Xtables-addons
從官方網站(http://xtables-addons.sourceforge.net)下載最新的xtables-addons源代碼,然後構建/安裝它,如下所示。
$wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons
-2.10.tar.xz
$ tar xf xtables-addons-2.10.tar.xz
$ cd xtables-addons-2.10
$ ./configure
$ make
$ sudo make install
請注意:如果是默認情況下已啟用SELinux的基於紅帽的系統(CentOS、RHEL、Fedora),有必要調整SELinux策略,如下所示。要不然,SELinux會阻止iptables裝入xt_geoip模塊。
$ sudo chcon -vR --user=system_u /lib/moles/$(uname -r)/extra/*.ko
$ sudo chcon -vR --type=lib_t /lib64/xtables/*.so
為Xtables-addons安裝GeoIP資料庫
下一步是安裝GeoIP資料庫,xt_geoip將用到該資料庫,用於IP與國別映射。很方便的是,xtables-addons源程序包隨帶兩個幫助腳本,可分別用來從MaxMind下載GeoIP資料庫,並將它轉換成xt_geoip可識別的二進制格式。這些腳本位於源程序包裡面的geoip文件夾下面。按照下列說明,即可構建GeoIP資料庫,並將它安裝到你系統上。
$ cd geoip
$ ./xt_geoip_dl
$ ./xt_geoip_build GeoIPCountryWhois.csv
$ sudo mkdir -p /usr/share/xt_geoip
$ sudo cp -r {BE,LE} /usr/share/xt_geoip
據MaxMind聲稱,其GeoIP資料庫的准確性達到99.8%,資料庫更每月都更新。為了確保本地安裝的GeoIP資料庫內容最新,你就需要設置每月執行的計劃任務,以便每月更新一次本地GeoIP資料庫。
阻止來自或發往某個國家的網路流量
一旦xt_geoip模塊和GeoIP資料庫都已安裝好,你就可以立即使用iptables命令中的geoip匹配選項。
$ sudo iptables -m geoip --src-cc country[,country...] --dst-cc country[,country...]
你想要阻止的國家使用兩個字母ISO3166代碼來指定,比如說US(美國)、CN(中國)、IN(印度)和FR(法國)。
比如說,如果你想阻止來自葉門(YE)和尚比亞(ZM)的入站流量,下面這個iptables命令就能實現。
$ sudo iptables -I INPUT -m geoip --src-cc YE,ZM -j DROP
如果你想阻止發往中國(CN)的出站流量,只要運行下面這個命令。
$ sudo iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
匹配條件也可以被「抵消」,只要將「!」放在「--src-cc」或「--dst-cc」的前面。比如說:
如果你想在伺服器上阻止所有非美國的入站流量,可以運行這個命令:
$ sudo iptables -I INPUT -m geoip ! --src-cc US -j DROP

針對Firewall-cmd用戶
像CentOS/RHEL 7或Fedora這一些發行版已將iptables換成firewalld,作為默認防火牆伺服器。在這類系統上,你同樣可以利用xt_geoip,使用firewall-cmd阻止流量。上面三個例子可以用firewall-cmd來改寫,如下所示。
$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc YE,ZM -j DROP
$ sudo firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc CN -j DROP
$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc US -j DROP
結束語
我在本教程中介紹了iptables/xt_geoip,這是一種簡單方法,可以根據來源/目的地國家,對網路數據包進行過濾。如果需要的話,可以將這件有用的武器部署到你的防火牆系統中。最後提醒一句,我應該提到:基於GeoIP的流量過濾並不是在你伺服器上阻止某些國家的萬無一失的方法。GeoIP資料庫天生就不準確/不完整,如果使用VPN、Tor或任何受到危及的中繼主機,就很容易欺騙來源/目的地國家。基於地域的過濾甚至會阻止本不該被禁止的合法流量。明白這個局限性後,再決定將它部署到你的生產環境中也不遲。

『拾』 linux中如何控制埠流量

配置網卡
建立一台虛擬機,並安裝完成後以橋接的方式在虛擬機上面添加兩張網卡。分別為eth0和eth1。
eth0: a.b.c.d(外網的上網地址)
eth1: 172.16.44.1(做為內網的網關)

Tip
原先我使用eth0:0的這種虛擬網卡的形式去配置一直不成功,後來使用雙網卡的時候一直忘了把eth0:0這張虛擬網卡刪掉導致了限速配置一直不成功,浪費了大把的青蔥。
配置iptables nat
#開啟ip_forward
echo "1">/proc/sys/net/ipv4/ip_forward

#清除原來的防火牆規則
iptables -F
iptables -t nat -F
iptables -t mangle -F

#添加nat轉發
iptables -t nat -A POSTROUTING -s 172.16.44.0/24 -o eth0 -j MASQUERADE

通過執行上面的代碼後,區域網內的電腦就可以上網了。
埠轉發
由於我的內網還掛了網站,所以要開啟80埠的轉發。
iptables -t nat -I PREROUTING -p tcp -d a.b.c.d --dport 80 -j DNAT --to 172.16.44.210:80
iptables -t nat -I POSTROUTING -p tcp -d 172.16.44.210 --dport 80 -j SNAT --to 172.16.44.1

這條命令指定外網地址a.b.c.d的80埠轉發到172.16.44.210:80上。由於是雙網卡,所以需要做一下迴路。
下載限速
下載限速要在eth1上面做,判斷數據包的目的地址來做限制。tc包括三部分:隊列、類、過濾器。我使用了htb方式去限制速度,也可以使用cbq,但cbq配置比較復雜一點,而且據說性能沒htb好。
#刪除原來的tc規則隊列
tc qdisc del dev eth1 root
#添加tc規則隊列
tc qdisc add dev eth1 root handle 10: htb default 256
#生成根類
tc class add dev eth1 parent 10: classid 10:1 htb rate 100mbit ceil 100mbit
#支類列表用於限制速度
#這里的rate指的是保證帶寬,ceil是最大帶寬。
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 400kbps ceil 400kbps prio 1

#添加支類規則隊列
#採用sfq偽隨機隊列,並且10秒重置一次散列函數。
tc qdisc add dev eth1 parent 10:10 handle 101: sfq perturb 10

#建立網路包過濾器,設置fw。
tc filter add dev eth1 parent 10: protocol ip prio 10 handle 1 fw classid 10:10
#在iptables裡面設定mark值,與上面的handle值對應。
iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j MARK --set-mark 1

通過上面的代碼就可以限制172.16.44.130這台機子的下載速度到400kbps。
Tip
經過實際測試這里的kbps實際上就是KB/S每秒千位元組。另一個單位是kbit,這個才是每秒千比特。這里的172.16.44.130也可以寫成一個網段,比如:172.16.44.0/24
上傳限速
上傳限速的原理其實跟下載的差不多,只不過限制的網卡不同,要在eth0上過濾來源地址去限制。
#刪除原來的tc規則隊列
tc qdisc del dev eth0 root

#添加tc規則隊列
tc qdisc add dev eth0 root handle 20: htb default 256

#生成根類
tc class add dev eth0 parent 20: classid 20:1 htb rate 100mbit ceil 100mbit

#支類列表用於限制速度
tc class add dev eth0 parent 20:1 classid 20:10 htb rate 40kbps ceil 40kbps prio 1

#添加支類規則隊列
tc qdisc add dev eth0 parent 20:10 handle 201: sfq perturb 10

#建立網路包過濾器
tc filter add dev eth0 parent 20: protocol ip prio 100 handle 2 fw classid 20:10
iptables -t mangle -A PREROUTING -s 172.16.44.130 -j MARK --set-mark 2

Tip
跟下載不同的是POSTROUTING要改成PREROUTING,-d改成-s。
觀察連接數
通過iptables的nat連接可以通過下面的代碼查看。至於統計連接數可以寫代碼實現,也可以利用awk,grep等工具。反正裡面的內容就是文本,處理起來也比較簡單。
cat /proc/net/ip_conntrack

寫在結尾
到此上網、埠轉發和流量限制都已經實現。下次再考慮配置個dhcp server和dnsmasq。至於一些路由器其它諸如mac地址綁定,限制上網等用到的時候再去研究研究。

熱點內容
網路編程論壇 發布:2024-12-29 09:57:04 瀏覽:730
服務密碼需要什麼證件 發布:2024-12-29 09:42:10 瀏覽:225
pc輔助存儲器構造 發布:2024-12-29 09:24:40 瀏覽:236
hadooplinux安裝 發布:2024-12-29 09:23:20 瀏覽:824
數控編程思維 發布:2024-12-29 09:21:45 瀏覽:306
php時間區 發布:2024-12-29 09:20:05 瀏覽:928
我的世界如何做出一個好的伺服器 發布:2024-12-29 09:18:45 瀏覽:943
哪裡買安卓二手機好 發布:2024-12-29 09:06:09 瀏覽:533
助威戰艦如何配置船長 發布:2024-12-29 09:05:37 瀏覽:736
如何觸發安卓小游戲 發布:2024-12-29 09:00:24 瀏覽:955