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) 本地文件 远程文件