Linux命令 ifconfig ethtool ip iperf3 网络查看常用命令 查看是否丢包 网络带宽测试工具

1.ifconfig

  ifconfig是最常用的配置和查看网络接口信息的命令,可以用来临时性配置网卡的 IP地址、掩码、广播地址、网关等。

(1)常用参数以及含义

-a 显示全部的接口信息
-s 显示接口的摘要信息
-v 若接口有错误信息则为显示对应错误信息
up 启动指定网卡
down 关闭指定网卡,若要永久关闭一个网卡,还须从核心路由表中将该接口的路由信息全部删除
arp 设置指定网卡支持arp协议
-arp 设置指定网卡不支持arp协议
add 为指定网卡添加IPv6地址
del 删除指定网卡的Ipv6地址
mtu 设置网卡的最大传输单元
netmask 设置指定网卡的子网掩码
broadcast 为指定网卡设定广播地址
multicast 设置指定网卡组播标志
txqueuelen 为指定网卡设定传输缓冲区的长度
broadcast 为指定网卡设定广播地址
tunnel 建立IPv4与IPv6之间的隧道通信地址
pointopoint 与指定地址的网络设备建立直接连线,此模式具有保密功能
dstaddr 设定一个远端地址,建立点对点通信
Hw <设备类型> <硬件地址> 设置指定网卡的mac地址
promisc 设置指定网卡为混杂模式,该模式下接收所有流经该设备的数据包
[ip地址] 设置指定设备的ip地址
irq 设置指定设备的irq地址
metric<数目> 指定在计算数据包的转送次数时,所要加的数目

# 不包括down状态的网卡

ifconfig

# 图中的信息
ens1fo表示第一块网卡,UP表示该网卡开启,BROADCAST表示该网卡支持广播,RUNNING表示该网卡处于连接状态,MULTICAST表示该网卡支持组播;
mtu 1500表示该网卡最大的单元传输是1500字节;inet后表示的是该网卡连接的IPv4地址,netmask是该地址的子网掩码,broadcast是该IP的广播地址;ether表示该网卡的mac地址,txqueuelen 1000表示该网卡的传输缓冲区长度为1000字节;
RX packets 表示该网卡自激活以来接收的所有数据包的大小,RX errors表示该网卡接收的数据包中发生错误的数据包的情况;对应的TX packets和TX errors表示该网卡发送数据包的情况。

(2)常用命令

# 查看所有网卡的信息(包括down状态的网卡)

ifconfig -a

# 查看指定网卡的信息 enp4s0是网卡名字 可以通过ethtool命令查看

ifconfig enp4s0

# 启动和关闭eth1网卡

ifconfig enp4s0 up
ifconfig enp4s0 down

# 配置IP地址,子网掩码和广播地址

ifconfig enp4s0 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255

# 修改最大传输单元

ifconfig enp4s0 mtu 1600

# 同一网卡配置不同的虚拟IP

ifconfig enp4s0 :0 192.168.1.10 up

# 这里enp4s0 :0 表示基于enp4s0 网卡新建虚拟IP

(3)配置网络方式

Ifconfig命令是临时性地去修改网络配置,若需在服务器重启之后保留这些配置,有以下3种方法:

  1. 通过各个发行和版本专用的工具来修改IP地址
  2. 直接修改网络接口的配置文件(路径是:/etc/sysconfig/network-scripts/,找到对应网口的配置文件,没有文件可以手动创建配置参数)
  3. 修改特定的文件,加入ifconfig 指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig 的语名写入/etc/rc.d/rc.local中

2.ethtool

  使用ethtool命令来查看配置网卡信息

(1)安装ethtool

yum -y install ethtool net-tools

(2)常用参数

-k 查询网卡的Offload信息
-K 修改网卡的Offload信息

-c 查询网卡聚合信息
-C 修改网卡聚合信息

-l 查看网卡队列数
-L 设置网卡队列数

-g 查看网卡的rx和tx
-G 修改网卡rx和tx

(3)常用命令

# 其中N是对应网卡的编号,如eth0、eth1等等 以下测试所使用的编号统一为enp4s0

ethtool enp4s0

# 查看网卡是否起来,需要看Link detected是否为Yes

ethtool -i enp4s0

# 查看网卡队列数量,根据实际网卡队列数据量来设置队列

cat /proc/interrupts | grep enp4s0
或
ethtool -l enp4s0

打印的信息如下:

Channel parameters for enp4s0:

Pre-set maximums:
RX:        0
TX:        0
Other:        0
Combined:    16

Current hardware settings:
RX:        0
TX:        0
Other:        0
Combined:    16

Combined=16代表当前网卡会使用16个进程来处理数据

# 修改网卡队列

ethtool -L enp4s0 combined 24

# 查看网卡的ring buffer

ethtool -g enp4s0
# ring buffer 值越大丢包的可能越小,但数据延迟会增加

# 修改网卡 rx 和 tx的buffer size

ethtool -G enp4s0 rx 4096 tx 4096

# 开启LRO(Large Receive Offload)

ethtool -K enp4s0 lro on
#  在结果中:[fixed]这个代表这个参数是固定的不能修改

# 查看Offload信息

ethtool -k enp4s0

注意:由于重启之后修改会失效,您可以在 rc.local 中设置为开机自动运行修改命令,参考如下

chmod -x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

# 添加内容如下
ethtool -G eth0 rx 18000 tx 2500

(4)查看是否丢包

在生产实践中,因 Ring Buffer 写满导致丢包的情况很多。

ethtool -S enp4s0 | grep -iE "error|drop"

发送队列和接收队列 drop 的数据包数量显示在这里。并且所有 queue_drops 加起来等于 rx_fifo_errors。所以总体上能通过 rx_fifo_errors 看到 Ring Buffer 上是否有丢包。如果有的话一方面是看是否需要调整一下每个队列数据的分配,或者是否要加大 Ring Buffer 的大小。

3.ip命令

  ip是网络配置工具,用来显示或操作路由、网络设备、策略路由和隧道,它能够替代一些传统的网络管理工具,例如ifconfig、route等。用ip配置的设备信息,大部分会在设备重启后还原,如果想永久保留配置,请尽量进入配置文件修改

(1)命令格式

ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule |  monitor | xfrm | token }


OPTIONS={ 
-V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }

(2)常用参数

对象:

link     网络设备
address     设备上的协议(IP或IPv6)地址
addrlabel     协议地址选择的标签配置
neighbour     ARP或NDISC缓存条目
route     路由表条目
rule     路由策略数据库中的规则
maddress     组播地址
mroute     组播路由缓存条目
tunnel     IP隧道
xfrm     IPSec协议框架

--所有对象的名称可以用完整或缩写形式书写,例如address可以缩写成addr或只是a

选项:

-V,-Version 显示指令版本信息
-s,-stats,statistics 输出详细信息
-h,-human,-human-readable 输出人类可读的统计信息和后缀
-iec 以IEC标准单位打印人类可读速率(例如1K=1024)
-f,-family <FAMILY> 指定要使用的协议族。协议族标识可以是inet、inet6、ipx、dnet或link之一。
-4 -family inet的快捷方式
-6 -family inet6的快捷方式
-0 -family link的快捷方式
-o,-oneline 将每条记录输出到一行,用’\’字符替换换行符。
-r,-resolve 使用系统名称解析程序来打印DNS名称而不是主机地址。

(3)常用命令

ip a

4.iperf3

  iperf3是一个网络性能测试工具,用于主动测量IP网络上可达到的最大带宽的工具。它支持调整与时序,协议和缓冲区有关的各种参数。对于每个测试,它都会报告测得的吞吐量/比特率,损耗和其他参数。

github地址:https://github.com/esnet/iperf

可以直接查看git上面的说明使用

(1)安装

yum -y install iperf3

(2)常用参数

iperf3的参数需要区分服务端和客户端

服务端:
-s     表示服务器端
-p     定义端口号
-i     设置每次报告之间的时间间隔,单位为秒

客户端:
-c     表示服务器的IP地址;
-p     表示服务器的端口号;
-t     参数可以指定传输测试的持续时间,Iperf在指定的时间内,重复的发送指定长度的数据包,默认是10秒钟.
-i     设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零;
-w     设置套接字缓冲区为指定大小,对于TCP方式,此设置为TCP窗口大小,对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值.
--logfile     参数可以将输出的测试结果储存至文件中.
-J     来输出JSON格式测试结果.
-R     反向传输,缺省iperf3使用上传模式:Client负责发送数据,Server负责接收;如果需要测试下载速度,则在Client侧使用-R参数即可

(3)常用命令

启动服务端:

iperf3 -s

-----------------------------------------------------------

Server listening on 5201

-----------------------------------------------------------

启动客户端:

iperf3 -c 90.90.62.52

[ 4] local 90.90.42.152 port 44092 connected to 90.90.62.52 port 5201

[ ID] Interval Transfer Bandwidth Retr Cwnd

[ 4] 0.00-1.00 sec 114 MBytes 956 Mbits/sec 0 362 KBytes

[ 4] 1.00-2.00 sec 113 MBytes 945 Mbits/sec 0 362 KBytes

[ 4] 2.00-3.00 sec 112 MBytes 938 Mbits/sec 0 362 KBytes

[ 4] 3.00-4.00 sec 113 MBytes 945 Mbits/sec 0 362 KBytes

[ 4] 4.00-5.00 sec 112 MBytes 938 Mbits/sec 0 362 KBytes

[ 4] 5.00-6.00 sec 113 MBytes 945 Mbits/sec 0 362 KBytes

[ 4] 6.00-7.00 sec 112 MBytes 939 Mbits/sec 0 380 KBytes

[ 4] 7.00-8.00 sec 113 MBytes 945 Mbits/sec 0 380 KBytes

[ 4] 8.00-9.00 sec 112 MBytes 939 Mbits/sec 0 380 KBytes

猜你喜欢

转载自blog.csdn.net/qq_35260875/article/details/109273009