A. linux 作路由器 的限速語句
處理信息在device eth1 INC中處理的.
前面是序號,
root對eth1有絕對控制權,並使用了htb流量控制演算法.
平均速率在500k, 允許突發10k
.. .... 200k 10
基於IP協議的優先順序被設置為16 同時被匹配了到192.168.1.5的數據包,其流量平均被限制為500k,允許突發10k
....... 同時被匹配了到192.168.1.6的數據包, 200k 10k
B. 如何做Linux路由器的限速設置
linux基本網路配置:
方法一:使用命令修改(直接即時生效,重啟失效)
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up說明:eth0是第一個網卡,其他依次為eth1,eth*192.168.0.1是給網卡配置的第一個網卡配置的ip地址netmask 255.255.255.0 配置的是子網掩碼up是表示立即激活ifconfig的更多參數說明查看相關幫助gateway:# route add default gw 192.168.30.1 eth0dns:# vi etc/resolv.confnameserver 202.131.80.1nameserver 202.131.80.5如果要重起生效,就把這些寫到起動腳本 rc.local中
方法二:修改配置文檔(需要重啟網路配置,永遠生效)
修改IP地址
手動改/etc/sysconfig/network-scripts/ifcfg-eth0文件 #第二塊網卡:vi /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth0 #物理設備名IPADDR=192.168.1.10 #IP地址NETMASK=255.255.255.0 #掩碼值NETWORK=192.168.1.0 #網路地址(可不要)BROADCAST=192.168.1.255 #廣播地址(可不要)GATEWAY=192.168.1.1#網關地址ONBOOT=yes # [yes|no](引導時是否激活設備)USERCTL=no #[yes|no](非root用戶是否可以控制該設備)BOOTPROTO=static #[none|static|bootp|dhcp](引導時不使用協議|靜態分配|BOOTP協議|DHCP協議)注:單網卡綁定兩個IPLinux的設備配置文件存放在/etc/sysconfig/network-scripts裡面,對於乙太網的第一個設備,配置文件名一般為ifcfg-eth0如果需要為第一個設備綁定多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面創建一個名為ifcfg-eth0:0的文件,內容樣例為:DEVICE="eth0:0"IPADDR="211.100.10.119" NETMASK="255.255.255.0"如果需要再綁定多一個IP地址,只需要把文件名和文件內的DEVICE中的eth0:x加一即可。LINUX最多可以支持255個IP別名。其中的DEVICE為設備的名稱,IPADDR為此設備的IP地址,NETMASK為子網掩碼,ONBOOT表示在啟動時自動啟動。
修改網關
vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=AaronGATEWAY=192.168.30.1
修改DNS
配置文件在/etc/resolv.conf下面。vi /etc/resolv.confnameserver 202.109.14.5 #主DNSnameserver 219.141.136.10 #次DNSsearch localdomain
C. 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口的數據包
D. linux下有什麼可以限制網速的軟體
專門的限速軟體,只有linux防火牆如:pfsence,不過默認的iptables防火牆也可以限速的
如以ip地址來限速
iptables -A FORWARD -m limit -d 202.96.209.6 --limit 2400/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -d 202.96.209.6 -j DROP
iptables -A FORWARD -m limit -s 202.96.209.6 --limit 2400/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -s 202.96.209.6 -j DROP
限制某網段
iptables -A FORWARD -s 192.168.100.0/24 -m limit --limit 100/s -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/24 -j DROP
以協議icmp放ddos限速
iptables -A INPUT -f -m limit --limit 150/sec --limit-burst 100 -j ACCEPT
限制ssh接入頻率
iptables -A INPUT -p tcp –dport 22 -s 10.1.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -j ratelimit
E. linux如何限制每個進程的網速
1、用 iptables 的 owner 模塊,給 --pid-owner 加上 MARK,然後 tc 里針對這個 MARK 做限速 現在的伺服器上,基本已經普及了 SMP ,更進一步的,內核已經在自動發現支持 SMP 的時候,在 iptables 里把 owner 模塊的 pid/cmd/sid 三個 match 都去掉了!現在的 owner 里只有 uid/gid 兩個。所以這條路,在生產環境上基本行不通。所以推薦下面的兩種方法:
2、使用 pipeviewer和 trickle這兩個工具。trickle 是在BSD 上誕生的項目,這個工具使用ELF 的 preloader 機制,在命令執行的時候替換掉標准庫中的 socket recv() 和 send() 部分,達到限速的效
3、cgroup ,它有 net_cls 控制器。不過和其他控制器不太一樣的是它不直接控制網路讀寫,只是給網路包打上一個標記,然後把專業的事情交給專業的 TC 去做。嗯,思路和原先的 iptable 是很類似的。
F. 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地址綁定,限制上網等用到的時候再去研究研究。
G. 想在兩台linux伺服器之間傳輸文件,文件大小1G左右,同時要求可以限制帶寬,請問有什麼好的方法
如果只是一次性的傳輸文件,推薦使用scp。
scp -l 帶寬大小(單位Kbps) 文件名 遠程用戶名@遠程IP
如將/home/user1/file拷貝到192.168.10.11上的user2主目錄下,限速125KB/s(即限1Mbps帶寬),命令為
scp -l 1000 /home/user1/file [email protected]:~/
如果是做遠程同步,就用rsync
rsync -auvzP --bwlimit=速度(KB/s) 本地文件 遠程文件