诊断工具
curl
curl 命令是一个从服务器传输数据,或者向服务器传输数据的工具,支持多种协议:DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、TELNET、TFTP。curl 命令被设计成无需用户交互即可工作的。
更多信息请见 curl(1) — Linux manual page。
ubuntu:~$ curl https://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.58.0",
"X-Amzn-Trace-Id": "Root=1-629c984a-2e1c3936379071cc3f9b3fc4"
},
"origin": "121.5.122.78",
"url": "https://httpbin.org/get"
}
ubuntu:~$ curl -X POST -d 'name=hello' https://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"name": "hello"
},
"headers": {
"Accept": "*/*",
"Content-Length": "10",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "curl/7.58.0",
"X-Amzn-Trace-Id": "Root=1-629c98c0-64e567ec62638cda249d4ed5"
},
"json": null,
"origin": "121.5.122.78",
"url": "https://httpbin.org/post"
}查看 ip 信息
ss
ss 命令被用于输出 Linux 套接字的统计信息。它显示的信息与 netstat 命令类似,并且可以显示更多的 Tcp 和状态信息。
更多信息请见 ss(8) — Linux manual page。
nslookup
nslookup(Name Server Lookup)命令用来从 DNS 中查询域名对应的 ip 地址和其它 DNS 记录信息。
ping
ping 命令用来测试数据包能否通过 IP 网络发送到目标主机。
ping 命令的运行原理是向目标主机发送 ICMP 协议的 ECHO_REQUEST 数据包,等待接收响应的 ECHO_RESPONSE 数据包,然后按响应时间和成功次数估算丢包率和延时。
traceroute
traceroute 命令用来显示数据包在 IP 网络上发送到目标主机的路由信息。
更多信息请见 traceroute(8) — Linux manual page。
tcptraceroute
tcptraceroute 命令的效果等同于 traceroute -T 命令。
mtr
mtr 命令是一个将 traceroute 和 ping 功能结合在一起的网络诊断工具。
更多信息请见 MTR 官方文档。
tcpdump
tcpdump 命令会打印经过网卡的数据包。
tcpdump -i eth0 -w dump.pcapng 命令表示把经过 eth0 网卡上的数据包保存到 dump.pcapng 文件中,后续可以使用 Wireshark 打开该文件来分析记录网络数据包。
更多信息请见 tcpdump(1) — Linux manual page。
iperf3
iperf3 是一种压测 IP 网络中最大带宽的工具。
iperf3 支持调整时序、协议、缓冲区等等相关的各种参数,对于每个测试用例,它都会输出包含吞吐量 / 比特率、丢失等等参数的测试结果。
最后更新于