Linux查看当前使用的网卡以及查看某进程使用的网络带宽情况以及端口占用的情况
Linux查看当前使⽤的⽹卡以及查看某进程使⽤的⽹络带宽情况以及端⼝占⽤的情况
⼀、Linux查看当前使⽤的⽹卡
1、查看多少个⽹卡 ifconfig
2、查看当前使⽤的⽹卡 watch cat /proc/net/dev
在线使⽤的⽹卡⼀般是流量变化最⼤的⽹卡
3、⽹卡禁⽤启⽤
需要确定在线服务的⽹卡下 ,否则服务器断⽹。
(1)ifup eth1 激活eth1⽹卡
(2)ifdown eth1 关闭eth1⽹卡
(3)完全禁⽤⽹卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1onboot=NO ⼆、Linux查看某进程使⽤的⽹络带宽情况
1、说明:
(1)可能查看某个进程的带宽占⽤需要明确知道PID、进程名字、发送速度、接收速度。
(2)在Linux原⽣的软件中没有,只能外装,最符合以上的情况就只有nethogs。
(3)nethogs可以指定⽹卡,但是不能指定PID,这就是⼀个缺陷。
2、使⽤:
sudo nethogs
3、安装:
#Ubuntu:
sudo apt-get install nethogs
#CentOS:
sudo yum install nethogs
4、Nethogs介绍和使⽤
《1》、nethogs介绍
分享⼀个linux 下检测系统进程占⽤带宽情况的检查。来⾃github上的开源⼯具。
它不依赖内核中的模块。当我们的服务器⽹络异常时,可以通过运⾏nethogs程序来检测是那个程序占⽤了⼤量带宽。
节省了查找时间。
《2》、安装⽅法
1.在epel 源中可以直接yum 安装
yum install libpcap nethogs -y2.源码⽅式安装
2.1 安装c++ 环境
[root@SaltMaster ~]# yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses*
2.2 下载编译好的⼆进制⽂件
[root@SaltMaster ~]# git clone https://github.com/raboof/nethogs
Initialized empty Git repository in /root/nethogs/.git/
remote: Counting objects: 1193, done.
remote: Total 1193 (delta 0), reused 0 (delta 0), pack-reused 1193
Receiving objects: 100% (1193/1193), 1.22 MiB | 29 KiB/s, done.
Resolving deltas: 100% (789/789), done.
2.3 编译并安装
[root@SaltMaster ~]# cd nethogs/
[root@SaltMaster nethogs]# make
[root@SaltMaster nethogs]# make install
完成上⾯步骤就算安装完成了。如果编译失败的话,⼤部分是缺少编译环境。
《3》、使⽤⽅法
3.1 直接运⾏nethogs 就可以查看当前占⽤带宽的进程
3.2 我们来测试 找出eth0 上占⽤⼤量带宽的程序
nethogs ⽹卡设备
我们检测 eth0,运⾏⼀下命令
[root@SaltMaster ~]# nethogs eth0
图中第⼀⾏就是测试中的流量记录,表⽰192.168.40.250这台客户端去访问我的80 端⼝所占⽤的带宽。
在PID 那⼀列,可以使⽤ lsof -p pid 查看进程测试。
或者⽤lsof -i :端⼝号,来查看是哪些进程在占⽤。如查看80端⼝ lsof -i :80
三、查看端⼝占⽤
⽅法⼀:
lsof -i:端⼝号
⽤于查看某⼀端⼝的占⽤情况,⽐如查看8000端⼝使⽤情况,
# lsof -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
lwfs 22065 root 6u IPv4 4395053 0t0 TCP *:irdmi (LISTEN)
9009端⼝被java服务占⽤,8000端⼝已经被轻量级⽂件系统转发服务lwfs占⽤。
⽅法⼆:
使⽤netstat⼯具,查看端⼝占⽤情况和当前连接数。
netstat -tunlp |grep 端⼝号,⽤于查看指定的端⼝号的进程情况说明⼀下⼏个参数的含义:
-t (tcp) 仅显⽰tcp相关选项
-u (udp)仅显⽰udp相关选项
-n 拒绝显⽰别名,能显⽰数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显⽰建⽴相关链接的程序名
⽅法三(转载):
使⽤python脚本监测端⼝占⽤,该程序可以监测指定IP的端⼝是否被占⽤。
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4 import socket, time, thread
5 socket.setdefaulttimeout(3) #设置默认超时时间
6
7 def socket_port(ip, port):
8 """
9 输⼊IP和端⼝号,扫描判断端⼝是否占⽤
10 """
11 try:
12 if port >=65535:
13 print u'端⼝扫描结束'
14 s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
15 result=s.connect_ex((ip, port))
16 if result==0:
17 lock.acquire()
18 print ip,u':',port,u'端⼝已占⽤'
19 lock.release()
20 except:
21 print u'端⼝扫描异常'
22
23 def ip_scan(ip):
24 """
25 输⼊IP,扫描IP的0-65534端⼝情况
26 """
27 try:
28 print u'开始扫描 %s' % ip
29 start_time=time.time()
30 for i in range(0,65534):
31 thread.start_new_thread(socket_port,(ip, int(i)))
32 print u'扫描端⼝完成,总共⽤时:%.2f' %(time.time()-start_time)
33 # raw_input("Press Enter to Exit")
34 except:
35 print u'扫描ip出错'
36
37 if __name__=='__main__':
38 url=raw_input('Input the ip you want to scan: ')
39 lock=thread.allocate_lock()
40 ip_scan(url)
该程序执⾏结果如下:
# python scan_port.py
Input the ip you want to scan: 20.0.208.112
开始扫描 20.0.208.11220.0.208.112 : 111 端⼝已占⽤
20.0.208.112 : 22 端⼝已占⽤20.0.208.112 : 8000 端⼝已占⽤
20.0.208.112 : 15996 端⼝已占⽤
20.0.208.112 : 41734 端⼝已占⽤
扫描端⼝完成,总共⽤时:9.38
linux 系统资源占用 命令
- 1 - linux 系统资源占用 命令
Linux系统资源占用命令是管理Linux系统中进程的重要工具,可以帮助管理员实时监测系统资源的使用情况,包括 CPU、内存、磁盘、网络等。
以下是一些常用的 Linux 系统资源占用命令:
1. top:实时显示进程的 CPU、内存等使用情况,可以按需排序并杀死进程。
2. ps:显示正在运行的进程信息,包括进程ID、进程状态、进程占用的资源等。
3. free:显示系统内存的使用情况,包括已用内存、可用内存、缓存和交换空间等。
4. df:显示文件系统的使用情况,包括磁盘空间总量、已使用空间、可用空间和文件系统挂载点等。
5. netstat:显示网络连接状态和统计信息,包括协议、本地地址、远程地址和状态等。
6. iostat:显示系统的磁盘活动情况,包括磁盘读写速度、磁盘利用率、磁盘I/O请求等。
7. vmstat:显示系统的虚拟内存活动情况,包括内存使用情况、交换空间使用情况、CPU使用情况等。
以上命令可以帮助管理员快速定位系统中的资源瓶颈,优化系统性能,提高系统稳定性和安全性。
LINUX服务器带宽跑满、负载过高问题排查
LINUX服务器带宽跑满、负载过⾼问题排查
1、安装流量监控iftop
apt-get install iftop -y
2、查看⽹卡名称
ifconfig
3、查看端⼝占⽤情况
iftop -i ⽹卡名称 -P
4、执⾏ netstat 命令反查流量⼤的端⼝对应进程。
netstat -tunlp |grep 端⼝号最终定位出来是服务器上哪个服务产⽣⼤量流量,这时可以通过停⽌服务或使⽤iptables服务来对指定地址进⾏处理,如屏蔽 IP 地址,限速,以保证服务器带宽能够正常使⽤。
linux中查看网卡流量六种方法
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相关参数
常⽤的参数
-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
Linux终端命令系统资源占用情况查看
Linux终端命令系统资源占用情况查看
在Linux操作系统中,终端命令可以帮助我们查看系统资源的占用情况,从而更好地管理和优化系统性能。本文将介绍一些常用的Linux终端命令,用于查看系统资源占用情况。
1. top命令
top命令是一个非常常用的命令,可以实时监控系统的运行情况。通过输入top命令,我们可以查看当前系统中各个进程的资源占用情况,包括CPU、内存、Swap等。在top界面下,按下“Shift+M”可以按照内存占用情况进行排序,按下“Shift+P”可以按照CPU占用情况进行排序。
2. free命令
free命令可以查看系统的内存使用情况。通过输入free命令,我们可以获取系统的物理内存、已使用的内存、空闲的内存,以及Swap区的使用情况。命令输出中的"-/+ buffers/cache"表示已经使用的内存不仅包括实际使用的内存,还包括系统缓存的内存。
3. vmstat命令
vmstat命令可以提供关于系统虚拟内存、进程、内存、I/O等方面的统计信息。通过输入vmstat命令,我们可以实时查看系统的运行状况。命令输出中的"r"表示等待CPU时间片的进程数量,"us"表示用户级别的CPU占用率,"sy"表示内核级别的CPU占用率,"wa"表示等待I/O操作的CPU占用率。 4. iostat命令
iostat命令用于查看系统的I/O设备的使用情况。通过输入iostat命令,我们可以查看磁盘IO、虚拟内存、CPU利用率等统计信息。命令输出中的"tps"表示每秒钟的传输次数,"r/s"表示每秒钟的读操作次数,"w/s"表示每秒钟的写操作次数,"%util"表示设备的利用率。
5. df命令
df命令用于查看系统的磁盘空间使用情况。通过输入df命令,我们可以获取系统中各个磁盘分区的使用情况,包括已使用的空间、可用的空间、挂载点等信息。使用参数"-h"可以以人类可读的方式显示磁盘空间使用情况。
linux一些常用的查看资源使用命令
linux一些常用的查看资源使用命令
在Linux系统中,可以使用以下命令来查看资源的使用情况:
1. top:实时查看系统的整体运行情况,包括CPU、内存、进程等的使用情况。
2. free:查看系统内存的使用情况,包括空闲内存、已使用内存、缓存和缓冲区的使用情况。
3. df:查看文件系统的磁盘空间使用情况,包括总容量、已用空间、剩余空间和挂载点。
4. du:查看目录或文件的磁盘使用情况,可以查看目录下所有文件的大小。
5. ps:查看系统当前运行的进程,可以查看进程的PID、占用CPU和内存等信息。
6. iostat:查看系统磁盘和设备的IO使用情况,包括读写速度、IOPS等。
7. netstat:查看网络连接和网络统计信息,包括监听端口、已建立的连接等。
8. sar:查看系统性能统计数据,包括CPU使用率、内存使用率、磁盘IO等。
9. vmstat:查看系统的虚拟内存使用情况,包括交换空间、页缓存、进程等。
10. lsof:查看系统打开的文件和网络连接,可以查看进程打开的文件和端口。
以上只是常用的几个命令,实际上Linux还有很多其他命令可以查看系统资源的使用情况,可以根据具体需求选择适合的命令来使用。
Linux系统的网络流量监控和分析方法
Linux系统的网络流量监控和分析方法
随着网络的发展和应用的广泛,对于网络流量的监控和分析变得越来越重要。在Linux系统中,有许多方法可以实现对网络流量的监控和分析。本文将介绍一些常用的 Linux 系统的网络流量监控和分析方法,并分析其优缺点。
1. 使用ifconfig命令
ifconfig命令是一个非常简单且常用的命令,用于配置和显示网络接口。它可以用来监控网络接口的发送和接收数据量。通过使用ifconfig命令,可以查看网络接口的IP地址、子网掩码、网络状态等信息。然而,ifconfig命令只提供基本的网络接口信息,无法进行深入的网络流量分析。
2. 使用netstat命令
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据。使用netstat命令可以查看当前连接状态、监听端口、路由表等信息。此外,netstat命令还可以用于查看网络接口的流量统计,包括接收和发送数据包的数量。然而,与ifconfig命令类似,netstat命令只提供基本的网络流量信息,无法进行详细的流量分析。
3. 使用tcpdump命令
tcpdump命令是一个功能强大的网络抓包工具。它可以捕获网络接口上的数据包,并将其以文本形式显示出来。tcpdump命令可以根据用户定义的过滤器来捕获特定类型的数据包,如IP地址、端口号、协议类型等。通过分析捕获的数据包,可以了解网络流量的来源、目的地、传输协议等信息。但是,tcpdump命令对于非专业人士来说有一定的学习曲线,并且在大规模网络环境下处理大量数据包时,可能会影响系统性能。
4. 使用nload命令
nload命令是一个简单易用的网络流量监控工具。它能够实时显示网络接口的流量情况,包括接收和发送的数据量、网络带宽利用率等信息。nload命令提供了一个直观的图形界面,可以方便地监控网络接口的流量变化。然而,nload命令只提供基本的流量监控功能,无法进行深入的流量分析。
Linux命令行使用技巧如何使用top命令查看系统资源占用情况
Linux命令行使用技巧如何使用top命令查看系统资源占用情况
在Linux系统中,命令行是管理员和开发人员常用的工具之一。在命令行中,通过使用各种命令可以对系统进行管理和操作。其中,top命令是一款非常实用的工具,可以帮助用户实时监控系统资源占用情况。下面将介绍如何使用top命令来查看系统资源占用情况的技巧。
一、什么是top命令
top命令是Linux系统中的一个实用工具,可以实时监控系统中各个进程的资源占用情况。通过top命令,用户可以了解到CPU、内存、磁盘、网络等各方面的资源使用情况,以及各个进程的运行状态和资源消耗情况。
二、如何使用top命令
1. 打开终端
在Linux系统中,top命令需要在命令行终端中运行。因此,首先需要打开终端,可以通过点击桌面上的“终端”图标,或者使用快捷键Ctrl+Alt+T来打开终端。
2. 运行top命令
在终端中输入top命令并按下回车键即可运行top命令。运行top命令后,终端窗口将显示出系统资源占用情况的实时统计信息。
3. 查看资源占用情况 在top命令运行后,终端窗口会显示一个类似于表格的界面,其中包含了各个进程的详细信息和资源占用情况。下面是表格中的一些关键列的解释:
- PID:进程的ID号,用于唯一标识一个进程。
- USER:拥有该进程的用户。
- %CPU:该进程占用的CPU使用率。
- %MEM:该进程占用的内存使用率。
- TIME+:该进程已经运行的时间。
- COMMAND:该进程对应的命令或程序的名称。
通过观察这些列的数值,可以了解到各个进程的资源占用情况。比如,%CPU列可以告诉我们哪些进程占用了较多的CPU资源,%MEM列可以告诉我们哪些进程占用了较多的内存资源。
4. 切换排序方式
在top命令的默认情况下,进程是按照CPU使用率进行排序的。但有时候我们可能更关注哪些进程占用了较多的内存资源。此时,可以按下Shift+M键,将进程按照内存使用率进行排序。如果想要切换回按照CPU使用率进行排序,可以按下Shift+P键。
在Linux终端中进行网络流量分析和监控
在Linux终端中进行网络流量分析和监控
一、引言
网络流量分析和监控是确保网络安全和优化网络性能的关键步骤。在Linux操作系统中,我们可以利用终端工具进行网络流量的分析和监控,以便及时发现潜在的问题并采取相应的措施。本文将介绍Linux终端中常用的网络流量分析和监控工具,以及如何使用它们进行网络流量的实时监控和数据分析。
二、常用的网络流量分析和监控工具
1. tcpdump
tcpdump是一款强大的网络流量抓包工具,能够捕捉网络数据包,并将其显示在终端中。它提供了丰富的过滤选项和输出格式,可以帮助我们分析和监控网络流量。例如,我们可以使用tcpdump命令捕捉特定主机或端口的数据包,或根据协议类型进行过滤。
2. Wireshark
Wireshark是一个功能强大的网络协议分析工具,可以用于实时抓包、分析网络流量以及解析各类网络协议。它提供了直观的图形界面,方便用户查看和分析捕获的数据包。在Linux终端中,我们可以通过命令行方式使用tshark,它是Wireshark的命令行版本,能够实现类似的功能。
3. ntopng ntopng是一个基于Web的实时网络流量监控工具,通过可视化方式展示网络流量的各种统计信息。它支持多种数据源和导出选项,并提供了丰富的图表和图形化界面,便于用户直观地监控和分析网络流量。在Linux终端中,我们可以通过命令行方式启动ntopng,并通过Web浏览器访问其管理界面。
三、实时监控网络流量
1. 使用ifstat命令
ifstat是一个简单实用的命令行工具,可以用于实时监控网络接口的流量。通过在终端中执行ifstat命令,我们可以获取网络接口的实时流量数据,并显示在终端中。默认情况下,ifstat显示所有网络接口的流量情况,我们也可以使用"-i"参数指定具体的接口进行监控。
2. 使用iftop命令
iftop是一个基于终端的实时网络流量监控工具,能够以图形化方式显示网络接口的流量信息。通过执行iftop命令,我们可以实时查看网络流量的源和目的IP地址、端口以及流量的传输速度等信息。iftop还支持按照流量大小进行排序,并提供了丰富的交互式命令选项,方便用户进行操作。
Linux终端命令网络监控和流量分析
Linux终端命令网络监控和流量分析
Linux操作系统作为一种开源操作系统,广泛应用于服务器领域。在服务器管理过程中,网络监控和流量分析是至关重要的一项任务。本文将介绍一些常用的Linux终端命令,用于实现网络监控和流量分析的功能。
一、ifconfig命令
ifconfig命令用于显示和配置网络接口的信息,包括IP地址、MAC地址、子网掩码等。通过ifconfig命令,可以查看系统上的网络接口信息,如eth0、eth1等。同时,ifconfig命令还可以用来配置网络接口的参数,如设置IP地址、子网掩码等。
示例用法:
ifconfig eth0 # 显示网络接口eth0的信息
ifconfig eth0 up # 启动网络接口eth0
ifconfig eth0 down # 关闭网络接口eth0
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 设置eth0的IP地址为192.168.1.100,子网掩码为255.255.255.0
二、netstat命令
netstat命令用于显示和管理网络连接信息。通过netstat命令,可以查看系统上的网络连接状态、端口监听情况以及网络流量统计信息等。常用的netstat命令选项有: - netstat -a:显示所有的网络连接和监听状态。
- netstat -n:以数字形式显示网络地址和端口号。
- netstat -p:显示正在使用的协议。
- netstat -s:显示网络连接的统计信息。
示例用法:
netstat -an # 显示所有网络连接的状态,包括已经建立的连接和正在监听的端口
netstat -rn # 显示路由表信息
netstat -s # 显示网络连接的统计信息
三、ip命令
linux监控网络实时带宽
查看网卡信息---型号,监控网络实时带宽
1.查看网卡详细信息
1)dmesg | grep -i eth
2) ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
2.查看网络实时带宽
在linux的proc文件系统中,通过查看/proc/net/dev文件
可以得到每个网络接口的吞吐量,但是无法获得实时带宽
最近发现了一种基于ncurses库的小程序bmon,可以获得实时带宽
