
在Linux服务器的日常运维中,网络性能和连接性是非常重要的监控指标。如何检测服务器与其他主机之间的网络连接、了解链路的健康状况以及传输速率,都是运维人员必备的技能。本文将介绍10个常用的Linux命令,它们帮助你测试连接性、诊断网络问题和测试网络传输速率。
1. ping — 测试网络连接
`ping` 命令是最基础的网络连接测试工具,通过向目标主机发送ICMP回显请求报文,并等待返回的响应来判断网络是否畅通。
使用方法:
ping <目标主机地址>
例如,要测试与A5数据官网的连接:
ping www.a5idc.com
参数说明:
- `-c <次数>`:指定发送多少次请求。例如:`ping -c 4 www.baidu.com` 会发送4次请求。
- `-i <间隔>`:设置发送请求的间隔时间。例如:`ping -i 2 www.baidu.com` 表示每隔2秒发送一次请求。
- `-t <TTL>`:设置TTL值(生存时间),这个参数可以用来调试网络路由。
输出示例:
64 bytes from 39.156.66.10: icmp_seq=1 ttl=50 time=25.4 ms
`ping` 命令的输出中,`time` 表示往返时延,`ttl` 表示跳数。
2. traceroute — 路由追踪
`traceroute` 命令用于显示从源主机到目标主机经过的路由路径和每一跳的响应时间,可以帮助我们诊断网络路径中的瓶颈。
安装:
在一些Linux发行版中,`traceroute` 可能需要安装:
sudo apt install traceroute # Ubuntu/Debian
sudo yum install traceroute # CentOS/RHEL
使用方法:
traceroute <目标主机地址>
例如:
traceroute www.a5idc.com
输出示例:
1 <10.0.0.1> (10.0.0.1) 0.349 ms 0.412 ms 0.402 ms
2 <202.96.134.133> (202.96.134.133) 1.232 ms 1.247 ms 1.229 ms
3 <202.96.159.145> (202.96.159.145) 1.789 ms 1.830 ms 1.810 ms
3. mtr — 实时网络诊断
`mtr` 是结合了 `ping` 和 `traceroute` 的功能,并提供实时的网络连通性和性能统计。它可以持续监控目标的网络连接状态。
安装:
sudo apt install mtr # Ubuntu/Debian
sudo yum install mtr # CentOS/RHEL
使用方法:
mtr <目标主机地址>
例如:
mtr www.a5idc.com
输出示例:
HOST: localhost Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.0.0.1 0.0% 10 0.2 0.2 0.1 0.4 0.0
2.|-- 202.96.134.133 0.0% 10 1.5 1.6 1.4 1.9 0.1
3.|-- 202.96.159.145 0.0% 10 1.8 1.9 1.7 2.0 0.1
4. ncat — 网络连接测试与传输
`ncat` 是一个多功能的网络工具,广泛用于测试端口的开放、进行TCP/UDP连接和调试网络服务。它是 `netcat` 工具的增强版,支持更多功能。
安装:
sudo apt install ncat # Ubuntu/Debian
sudo yum install nmap # CentOS/RHEL (ncat随nmap一起安装)
使用方法:
启动一个监听端口:
ncat -l <端口号>
从另一台机器连接到该端口:
ncat <目标主机地址> <端口号>
例如:
ncat -l 12345
5. speedtest-cli — 测试带宽和网络速率
`speedtest-cli` 是一个用于测试当前网络带宽的命令行工具,基于 Speedtest.net 提供的服务。
sudo apt install speedtest-cli # Ubuntu/Debian
sudo yum install speedtest-cli # CentOS/RHEL
使用方法:
speedtest-cli
输出示例:
Retrieving speedtest.net configuration...
Testing from China Telecom (203.0.113.1)...
Hosted by China Telecom (Beijing) [10.50 km]: 35.143 ms
Ping: 35.143 ms
Download: 50.32 Mbit/s
Upload: 10.21 Mbit/s
6. fast — 快速网络速度测试
`fast` 是由Netflix推出的一个非常简便的网络速度测试工具,通过简单的命令即可获取当前的网络下载速度。
安装:
sudo apt install fast # Ubuntu/Debian
sudo yum install fast # CentOS/RHEL
使用方法:
fast
输出示例:
Testing from your provider...
Download: 98.65 Mbps
7. nethogs — 网络带宽监控
`nethogs` 是一个实时显示每个进程的网络带宽消耗的工具,适用于调试和监控服务器网络的使用情况。
安装:
sudo apt install nethogs # Ubuntu/Debian
sudo yum install nethogs # CentOS/RHEL
使用方法:
sudo nethogs
它将显示每个进程的网络流量,以及发送和接收的字节数。
输出示例:
PID User Program sent received
1234 root apache2 56 KB 1024 KB
5678 user firefox 234 KB 5678 KB
8. ss — 查看Socket连接状态
`ss` 是一个非常强大的工具,用于查看服务器上的网络连接,替代了传统的 `netstat` 命令,速度更快。
使用方法:
ss -tuln
参数说明:
- `-t`:显示TCP连接
- `-u`:显示UDP连接
- `-l`:显示监听中的端口
- `-n`:显示数字格式的IP地址与端口
输出示例:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
9. iftop — 实时网络流量监控
`iftop` 是一个用于实时显示网络接口流量的工具,可以展示每个连接的传输速率。
安装:
sudo apt install iftop # Ubuntu/Debian
sudo yum install iftop # CentOS/RHEL
使用方法:
sudo iftop
它将显示接口的实时带宽使用情况,按流量大小排序。
输出示例:
1.23.45.67 500.0 kB 200.0 kB 0.00 kB 10.5% 22:23:45
10. ethtool — 查看和调整网卡信息
`ethtool` 不仅可以用于查看网卡的基本信息,还可以调整网卡参数,如网卡的速度、双工模式、自适应等。
查看网卡信息
sudo ethtool eth0
常见的关键参数:
- Speed:网卡速率(如 `1000Mb/s`)
- Duplex:全双工(`Full`)或半双工(`Half`)
- Auto-negotiation:是否开启自动协商
强制修改网卡速率
如果网卡连接异常,可以尝试强制设定速率:
sudo ethtool -s eth0 speed 100 duplex full autoneg off
此命令将 `eth0` 端口的速率设置为 `100Mbps`,采用全双工模式,并关闭自动协商功能。
查看网卡驱动信息
sudo ethtool -i eth0
可以获取网卡的驱动版本、固件版本等。
查看网卡统计信息
sudo ethtool -S eth0
此命令会返回详细的网卡流量统计数据,如接收和发送的数据包数量、丢包情况等。
在Linux服务器的日常运维和故障排查中,网络连接性和传输速率的检测是非常重要的。本文介绍的10个Linux命令,各有其独特的用途:
- ping :测试主机连通性和网络时延
- traceroute:跟踪数据包路径,查找网络瓶颈
- mtr :结合 `ping` 和 `traceroute` 进行实时监控
- ncat:测试端口连通性,进行数据传输
- speedtest-cli: 测试带宽速度(基于Speedtest)
- fast: 快速测速(Netflix提供)
- nethogs: 按进程查看网络流量消耗
- ss : 替代 `netstat`,查看当前网络连接
- iftop: 监控服务器实时带宽流量
- ethtool ; 查看和调整网卡配置
不同的命令适用于不同的场景:
- 如果想检查服务器的网络是否可达,使用 `ping` 或 `traceroute`。
- 如果需要实时监测流量和带宽消耗,使用 `iftop` 或 `nethogs`。
- 如果服务器访问外网速度慢,可以用 `speedtest-cli` 或 `fast` 进行测速。
- 如果怀疑网卡问题,可以用 `ethtool` 查看网卡状态并调整参数。
希望这篇教程对你有所帮助,欢迎在Linux服务器运维中实践这些命令.











