linux端口流量,查看端口流量命令

各位老铁们,大家好,今天由我来为大家分享linux端口流量,以及查看端口流量命令的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

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地址绑定,限制上网等用到的时候再去研究研究。

怎么在linux下看端口统计流量

在要统计流量的端口下配置 ip accounting out然后show ip accounting就可以看到,但是请注意该端口需要有流量。

ip accounting使用说明:

1、基于地址对的字节数量及数据包数量统计;

2、通常只支持outbound的数据包,及被ACL拒绝的数据包(支持IN和 OUT方向的ACL);

3、只统计穿越路由器的流量,源或目的是该路由器的数据包不做统计;

4、支持所有的switching path,除了Autonomous Switching;

5、可以通过SNMP来访问统计值,MIB是OLD-CISCO-IP-MIB, lipAccountingTable;

6、ip accounting还支持其他的监测方式,如基于tos,mac-address等。

扩展资料:

查看全部端口的配置:

display current-configuration

display current-configuration interface

如果要查看当前所有端口的配置,可以通过:dis cu这条命令进行查询,当然这条命令会显示所有当前生效的配置,不仅仅包含端口的配置,这条命令经常用来检查交换机的配置情况,用来排查故障,比较常用的;

如果只想查看所有端口的配置而不需要其他配置,可以使用更精确的命令:dis cu int来查看。

例如我们要检查一下一台H3C 3600交换机所有端口的配置是否正确,就可以直接使用命令:dis cu即可得到所有端口的配置信息还有其它配置信息。

linux查看网络流量命令

方法一、nload工具

查看参数帮助命令:

nload–help

-a:这个好像是全部数据的刷新时间周期,单位是秒,默认是300.

-i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

-m:不显示流量图,只显示统计数据。

-o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

-t:显示数据的刷新时间间隔,单位是毫秒,默认500。

-u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!

h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.

H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.

-U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!

Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。

如只监控eth0命令: nload eth0

方法二、iftop工具

1、iftop界面相关说明

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

中间的<==>这两个左右箭头,表示的是流量的方向。

TX:发送流量

RX:接收流量

TOTAL:总流量

Cumm:运行iftop到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s 10s 40s的平均流量

2、iftop相关参数

常用的参数《Linux就该这么学》

-i设定监测的网卡,如:# iftop-i eth1

-B以bytes为单位显示流量(默认是bits),如:# iftop-B

-n使host信息默认直接都显示IP,如:# iftop-n

-N使端口信息默认直接都显示端口号,如:# iftop-N

-F显示特定网段的进出流量,如# iftop-F 10.10.1.0/24或# iftop-F 10.10.1.0/255.255.255.0

-h(display this message),帮助,显示参数信息

-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;

-b使流量图形条默认就显示;

-f这个暂时还不太会用,过滤计算包用的;

-P使host信息及端口信息默认就都显示;

-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop-m 100M

进入iftop画面后的一些操作命令(注意大小写)

按h切换是否显示帮助;

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

按N切换显示端口号或端口服务名称;

按S切换是否显示本机的端口信息;

按D切换是否显示远端目标主机的端口信息;

按p切换是否显示端口信息;

按P切换暂停/继续显示;

按b切换是否显示平均流量图形条;

按B切换计算2秒或10秒或40秒内的平均流量;

按T切换是否显示每个连接的总流量;

按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;

按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;

按j或按k可以向上或向下滚动屏幕显示的连接记录;

按1或2或3可以根据右侧显示的三列流量数据进行排序;

按<根据左边的本机名或IP排序;

按>根据远端目标主机的主机名或IP排序;

按o切换是否固定只显示当前的连接;

按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!

按!可以使用Shell命令,这个没用过!没搞明白啥命令在这好用呢!

按q退出监控。

方法三、 ifstat

参数:

-a监测能检测到的所有网络接口的状态信息

-z隐藏流量是无的接口,例如那些接口虽然启动了但是未用的

-i指定要监测的接口,后面跟网络接口名

时间:

-T报告所有监测接口的全部带宽

-w用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽

-W如果内容比终端窗口的宽度还要宽就自动换行

-b用kbits/s显示带宽而不是kbytes/s

阅读剩余
THE END