Linux常见网络测试的总结

查看本机IP地址、MAC地址

方法:执行ifconfig或者ip addr

例:

[root@Centos ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.1  netmask 255.255.255.0  broadcast 10.0.0.255
        ether 52:54:00:59:c1:b7  txqueuelen 1000  (Ethernet)
        RX packets 25883978  bytes 7322687281 (6.8 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24178898  bytes 6035774584 (5.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3615476  bytes 2842561090 (2.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3615476  bytes 2842561090 (2.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 主机一般都有一张物理网卡eth0,还有多张虚拟网卡,比如环回地址的网卡lo。
  • inet:网卡的IP地址。
  • ether:网卡的MAC地址。
  • flags
    • UP:表示网卡已被启用。
    • BROADCAST:表示支持广播。
    • RUNNING:表示网卡已连接到网络。
    • MULTICAST:表示支持组播。
  • mtu:最大传输单元,即网卡能传输的数据包最大体积,单位为bytes。

查看端口信息、占用端口的进程

方法:执行ss -apn

例:查看所有网络端口的信息

[root@Centos ~]# ss -apn | cat    # 加上cat使显示的users不换行
State      Recv-Q Send-Q Local Address:Port    Peer Address:Port
LISTEN     0      128    127.0.0.1:34186            *:*              users:(("node",pid=15647,fd=19))
LISTEN     0      128        *:111                  *:*              users:(("systemd",pid=1,fd=51))
LISTEN     0      128        *:22                   *:*              users:(("sshd",pid=3057,fd=3))
  • Recv-Q、Send-Q:表示接收队列、发送队列中待处理的数据包数。它们最好为0,即没有包堆积。
  • 最右端的一列users表示监听每个端口的进程。

例:查看指定端口的信息

[root@Centos ~]# ss -apn | grep 8000
LISTEN     0      128         :::8000               :::*             users:(("docker-proxy",pid=18614,fd=4))

判断网络是否连通、网络延迟

方法:执行ping <host>,测试到某个主机的网络状态。

  • Linux的ping命令默认每隔一秒向目标主机发送一个ICMP报文,根据收到回复的时间间隔就可以知道通信延迟。
  • host可以是IP地址或域名,如果是域名,在执行时还会显示出域名解析后的IP地址。

例:

[root@Centos ~]# ping baidu.com
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=250 time=37.0 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=250 time=37.0 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=250 time=37.0 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=4 ttl=250 time=37.0 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 37.008/37.022/37.044/0.136 ms
  • icmp_seq:表示这是第几个ICMP报文。
  • ttl:ICMP报文剩下的生存期。
  • time:发出ICMP报文之后,隔了多久才收到回复。

例:

[root@Centos ~]# ping google.com
PING google.com (93.46.8.90) 56(84) bytes of data.

^C
  • 可见它一直尝试连接目标主机,但并没有成功。原因可能是:
    • 与目标主机的网络不通
    • 与目标主机的网络连通,但是目标主机没有开启ICMP协议
  • 考虑到第二种原因,用ping命令不能连接到目标主机时,不一定是网络不通。

判断TCP端口是否连通

方法:执行telnet <host> [port],测试连接到某个主机的TCP端口(默认是23端口)

例:

[root@Centos ~]# telnet baidu.com 80
Trying 39.156.69.79...
Connected to baidu.com.
Escape character is '^]'.
  • 可见它成功连接到目标主机的80端口。此时按 Ctrl+]Ctrl+D 即可断开连接。

例:

[root@Centos ~]# telnet 127.0.0.1 8000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
  • Connection refused说明与目标主机的网络连通,但是连接不到目标端口。原因可能是:
    • 目标主机的防火墙拦截了发向该端口的数据包,此时要在目标主机上用iptables -L检查下防火墙的规则
    • 目标主机的防火墙开通了该端口,但是目标主机上没有进程在监听该端口
  • 上方访问的目标主机是本地环回地址,不会被防火墙拦截,所以是第二种原因。

例:

[root@Centos ~]# telnet baidu.com
Trying 220.181.38.148...

^C
  • 可见它一直尝试连接目标主机的23端口,但并没有成功。原因可能是:
    • 与目标主机的网络不通
    • 端口无响应

判断能否连接到Web网站

方法:执行curl <URL>

其它测试

  • nmap可扫描某个主机有哪些端口可以连接
  • iperf可测试TCP、UDP的带宽
  • abwrkJmeter等工具可进行HTTP压力测试
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值