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种方法:
- 通过各个发行和版本专用的工具来修改IP地址
- 直接修改网络接口的配置文件(路径是:/etc/sysconfig/network-scripts/,找到对应网口的配置文件,没有文件可以手动创建配置参数)
- 修改特定的文件,加入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
更多推荐
所有评论(0)