网络实用工具
ping 测试与目标主机的连通性
显示 | 解释 |
---|---|
www.a.shifen.com (14.215.177.39) | ping目标主机的域名和IP(ping会自动将域名转换为IP) |
56(84) | 不带包头的包大小和带包头的包大小 |
icmp_seq=1 | ping序列,从1开始如果数字不是顺序递增即有丢包 |
ttl=54 | 数据包剩余生存时间, 默认Linux系统的TTL值为64或255 |
time=6.56 ms | 响应时间,数值越小,联通速度越快 |
2 packets transmitted, 2 received, 0% packet loss, time 1001ms | 发出去的包数,返回的包数,丢包率,耗费时间 |
rtt min/avg/max/mdev = 3.755/5.158/6.561/1.403 ms | 最小/平均/最大响应时间和本机硬件耗费时间 |
traceroute
tracerout 对每个节点进行 UDP 的回声等待,并侦测回复的时间,每个节点侦测3次。如果出现 * 号,代表改 node 可能设有某些防护措施,让我们发送的封包资讯被丢弃。有某些节点会出现三个不同的 ip,因为到达目的地址的路径并不唯一,因此在 traceroute 过程中的可能出现不同的下一跳。
iftop 网络流量监控
yum install iftop -y
iftop
输入 N S D
Port display:
N - toggle service resolution
S - toggle show source port
D - toggle show destination port
p - toggle port display
netstat
查看网卡的丢包记录。比如,可以在容器中执行下面的命令,查看丢包情况:
netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 100 31 0 0 0 8 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
输出中的 RX-OK、RX-ERR、RX-DRP、RX-OVR ,分别表示接收时的总包数、总错误数、进入 Ring Buffer 后因其他原因(如内存不足)导致的丢包数以及 Ring Buffer 溢出导致的丢包数。
TX-OK、TX-ERR、TX-DRP、TX-OVR 也代表类似的含义,只不过是指发送时对应的各个指标。
netstat -s 命令,就可以看到协议的收发汇总,以及错误信息了:
netstat -s
Ip:
Forwarding: 1 //开启转发
31 total packets received //总收包数
0 forwarded //转发包数
0 incoming packets discarded //接收丢包数
25 incoming packets delivered //接收的数据包数
15 requests sent out //发出的数据包数
Icmp:
0 ICMP messages received //收到的ICMP包数
0 input ICMP message failed //收到ICMP失败数
ICMP input histogram:
0 ICMP messages sent //ICMP发送数
0 ICMP messages failed //ICMP失败数
ICMP output histogram:
Tcp:
0 active connection openings //主动连接数
0 passive connection openings //被动连接数
11 failed connection attempts //失败连接尝试数
0 connection resets received //接收的连接重置数
0 connections established //建立连接数
25 segments received //已接收报文数
21 segments sent out //已发送报文数
4 segments retransmitted //重传报文数
0 bad segments received //错误报文数
0 resets sent //发出的连接重置数
Udp:
0 packets received
...
TcpExt:
11 resets received for embryonic SYN_RECV sockets //半连接重置数
0 packet headers predicted
TCPTimeouts: 7 //超时数
TCPSynRetrans: 4 //SYN重传数
...
ss
-a, --all
Display both listening and non-listening (for TCP this means established connections) sockets.
-t, --tcp
Display TCP sockets.
-u, --udp
Display UDP sockets.
-s, --summary
Print summary statistics. This option does not parse socket lists obtaining summary from various sources. It is useful
when amount of sockets is so huge that parsing /proc/net/tcp is painful.
-l, --listening
Display only listening sockets (these are omitted by default).
-p, --processes
Show process using socket.
-n, --numeric
Do not try to resolve service names.
# 显示所有tcp socket
ss -t -a
# 显示所有的UDP Socekt
ss -u -a
# 列出当前socket详细信息
ss -s
# 第二列Recv-Q为全连接队列当前使用了多少,第三列Send-Q 值是50,表示第四列的listen端口上的全连接队列最大为50
ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 *:7999 *:*
sar
sar -n DEV 2 10
Linux 4.4.239-1.el7.elrepo.x86_64 (localhost.localdomain) 12/25/2020 _x86_64_ (1 CPU)
03:32:11 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
03:32:13 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:32:13 PM eth0 32.66 0.50 6.48 0.09 0.00 0.00 0.00
IFACE: 就是网络设备的名称;
rxpck/s:每秒钟接收到的包数目
txpck/s:每秒钟发送出去的包数目
rxbyt/s:每秒钟接收到的字节数
txbyt/s:每秒钟发送出去的字节数
rxcmp/s:每秒钟接收到的压缩包数目
txcmp/s:每秒钟发送出去的压缩包数目
txmcst/s:每秒钟接收到的多播包的包数目
Nethogs - 查看进程占用带宽情况
yum install -y nethogs
# 这个命令意思是监控网卡eth0的带宽占用情况,每五秒刷新一次
nethogs eth0 -d 5
# 同时监视eth0和eth1接口,使用以下命令即可:
nethogs eth0 eth1
# 以下是NetHogs的一些交互命令(键盘快捷键)
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符
IPtraf - 网络流量监控
# 安装 iptraf-ng
yum install -y iptraf-ng
iptraf-ng -d eth0