linuxrxpack流量很大

linuxrxpack流量很大,第1张

处理方法就是把随机器启动的一些文件全部删除,把添加的一些东西删除掉,不过 一定要重新做系统,安全要做好。按正常情况来说,当你的服务器流量跑满的时候,你的机器会很卡、远程连接会掉线或者根本连不上,所以正常流量来看,是绝对不会跑到100M的,所以这叫流量异常。

不是木马,是设置问题,下面是流量的控制方法
一、Linux 流量控制过程分二种:
1、队列控制 即 QOS, 瓶颈处的发送队列的规则控制,常见的有 SFQ PRIO
2、流量控制 即带宽控制 , 队列的排队整形, 一般为 TBF HTB
二、Linux 流量控制算法分二种:
1、无类算法 用于树叶级无分支的队列,例如:SFQ
2、分类算法 用于多分支的队列,例如:PRIO TBF HTB
三、具体实现:
1 在网卡上建立 以SFQ算法的限流
#tc qdisc add dev eth0 root handle 1: sfq
SFQ 参数有 perturb( 重新调整算法间隔 ) quantum 基本上不需要手工调整 :
handle 1: 规定算法编号 可以不用设置由系统指定
#tc qdisc sh dev eth0 显示算法
#tc qd del dev eth0 root 删除 注 : 默认 eht0 支持 TOS
2 在网卡建立以 TBF算法的限流
#tc qd add dev eth1 root handle 1: tbf rate 256kbit burst 10000 latency 50ms
速率 256kbit 突发传输 10k 最大延迟 50ms
#tc -s qd sh dev eth1 统计
#tc qd del dev eth1 root 删除
3 在网卡建立 PRIO
#tc qdisc add dev eth0 root handle 1: prio
# 此命令立即创建了类 : 1:1, 1:2, 1:3 ( 缺省三个子类 )
#tc qdisc add dev eth0 parent 1:1 handle 10: sfq
#tc qdisc add dev eth0 parent 1:2 handle 20: tbf rate 20kbit buffer 1600 limit 3000
注 : 此为 TBF 限速的另一写法 , 前文有讲解
#tc qdisc add dev eth0 parent 1:3 handle 30: sfq
4 WEB 服务器的流量控制为 5Mbps,SMTP 流量控制在 3Mbps 上 而且二者一共不得超过 6Mbps, 互相之间允许借用带宽
#tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8
#tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 6Mbit weight
06Mbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded
这部分按惯例设置了根为 1:0, 并且绑定了类 1:1 也就是说整个带宽不能超过 6Mbps
#tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate 5Mbit weight
05Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000
#tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit rate 3Mbit weight
03Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000
建立了 2 个类 注意我们如何根据带宽来调整 weight 参数的 两个类都没有配置成"bounded", 但它们都连
接到了类 1:1 上 , 而 1:1 设置了"bounded" 所以两个类的总带宽不会超过 6Mbps 别忘了 , 同一个 CBQ 下面的子
类的主号码都必须与 CBQ 自己的号码相一致 !
#tc qdisc add dev eth0 parent 1:3 handle 30: sfq
#tc qdisc add dev eth0 parent 1:4 handle 40: sfq
缺省情况下 , 两个类都有一个 FIFO 队列规定 但是我们把它换成 SFQ 队列 , 以保证每个数据流都公平对待
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid
1:3
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 25 0xffff flowid
1:4
6 过滤器过滤示例
#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1
在 10: 节点添加一个过滤规则 , 优先权 1: 凡是去往 22 口 ( 精确匹配 ) 的 IP 数据包 , 发送到频道 10:1
#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1
在 10: 节点添加一个过滤规则 , 优先权 1: 凡是来自 80 口 ( 精确匹配 ) 的 IP 数据包 , 发送到频道 10:1
#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2
在 eth0 上的 10: 节点添加一个过滤规则 , 它的优先权是 2: 凡是上二句未匹配的 IP 数据包 , 发送到频道 10:2
#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip dst 4321/32 flowid 10:1
去往 4321 的包发送到频道 10:1 其它参数同上例
#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 1234/32 flowid 10:1
来自 1234 的包发到频道 10:1
#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2
凡上二句未匹配的包送往 10:2
#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 4321/32 match
ip sport 80 0xffff flowid 10:1
可连续使用 match, 匹配来自 1234 的 80 口的数据包

这个不会有人帮你写出个完整的shell。因为每台机器的 *** 作系统都不一定吻合,不过我可以给你个自己做的参考:
1,启动你服务器的snmp服务器,编辑/etc/snmp/snmpdconf
修改里面的 com2sec notConfigUser default <你的community名字>, 有困惑,可以在网上搜索snmp服务配置。然后/etc/initd/snmpd start 启动服务。
2 安装net-snmp
yum install net-snmp
3验证你服务器snmp是否正确安装:
snmpwalk -v 2c -c <你自己设置的community> 127001
有返回信息就是正确。
4 写你shell程序,通过snmpwalk可查看各网卡端口流量,可根据下面我提供的信息你自己选择你要监控的端口。
[root@AAA snmp]# snmpwalk -v 2c -c <你自己定义community> 127001 IF-MIB::ifHCOutOctets
IF-MIB::ifHCOutOctets1 = Counter64: 2458933344
IF-MIB::ifHCOutOctets2 = Counter64: 1714076390
IF-MIB::ifHCOutOctets3 = Counter64: 0
IF-MIB::ifHCOutOctets4 = Counter64: 0
[root@AAA snmp]# snmpwalk -v 2c -c c <你自己定义community> 127001 IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets1 = Counter64: 2458940740
IF-MIB::ifHCInOctets2 = Counter64: 3011885260
IF-MIB::ifHCInOctets3 = Counter64: 0
IF-MIB::ifHCInOctets4 = Counter64: 0
实际shell赋值,可以通过snmpget命令而不是snmpwalk。比如:
[root@AAA snmp]# snmpget -v 2c -c <你自己定义community>127001 IF-MIB::ifHCOutOctets1
IF-MIB::ifHCOutOctets1 = Counter64: 2458947627
这样,你就可以通过shell,吧值赋给变量,例子如下:
[root@AAA snmp]# var=`snmpget -v 2c -c <你自己定义community> 127001 IF-MIB::ifHCOutOctets1 | awk '{print $4}'`;echo $var
2458981520
我已经提供全过程的信息给你了。具体你琢磨着去弄你的shell吧。
哈,有点头晕。。。如果只监测自己机器,楼上仁兄那个最好。采纳他吧。

在本文中我们介绍一种简单的Shell 脚本,它可以监控网络流量而且不依赖于缓慢的libpcap库。这些脚本支持Gb以上规模的高速网络接口,如果你对“汇聚型”的网络流量感兴趣的话,它们可统计每个网络接口上的流量。
脚本主要是基于sysfs虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net/<ethX>/statistics”输出。
举个例子,eth0的网口上分析报告会输出到这些文件中:
/sys/class/net/eth0/statistics/rx_packets: 收到的数据包数据
/sys/class/net/eth0/statistics/tx_packets: 传输的数据包数量
/sys/class/net/eth0/statistics/rx_bytes: 接收的字节数
/sys/class/net/eth0/statistics/tx_bytes: 传输的字节数
/sys/class/net/eth0/statistics/rx_dropped: 收包时丢弃的数据包
/sys/class/net/eth0/statistics/tx_dropped: 发包时丢弃的数据包
这些数据会根据内核数据发生变更的时候自动刷新。因此,你可以编写一系列的脚本进行分析并计算流量统计。下面就是这样的脚本(感谢 joemiller 提供)。第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。
测量网口每秒数据包:
下面的屏幕截图显示了上面的两个脚本的输出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12638721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存