诊断工具
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 信息
ubuntu:~$ curl -L cip.cc
IP : 60.12.1.178
地址 : 中国 浙江 杭州
运营商 : 联通
数据二 : 浙江省杭州市 | 联通
数据三 : 中国浙江省杭州市 | 联通
URL : http://www.cip.cc/60.12.1.178
ubuntu:~$
ubuntu:~$ curl -L ipinfo.io
{
"ip": "60.12.1.178",
"city": "Hangzhou",
"region": "Zhejiang",
"country": "CN",
"loc": "30.2936,120.1614",
"org": "AS4837 CHINA UNICOM China169 Backbone",
"timezone": "Asia/Shanghai",
"readme": "https://ipinfo.io/missingauth"
}
ss
ss
命令被用于输出 Linux 套接字的统计信息。它显示的信息与 netstat
命令类似,并且可以显示更多的 Tcp 和状态信息。
更多信息请见 ss(8) — Linux manual page。
ubuntu:~$ sudo ss -lntp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=10113,fd=12),("nginx",pid=1184,fd=12))
LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=943,fd=13))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1094,fd=3))
LISTEN 0 128 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=10113,fd=11),("nginx",pid=1184,fd=11))
LISTEN 0 128 *:9100 *:* users:(("node_exporter",pid=1042,fd=3))
LISTEN 0 128 *:1200 *:* users:(("frps",pid=1071,fd=9))
LISTEN 0 128 *:8080 *:* users:(("frps",pid=1071,fd=8))
LISTEN 0 128 [::]:80 [::]:* users:(("nginx",pid=10113,fd=13),("nginx",pid=1184,fd=13))
LISTEN 0 100 *:1234 *:* users:(("java",pid=3640,fd=21))
LISTEN 0 128 *:8088 *:* users:(("node",pid=2249,fd=18))
LISTEN 0 128 *:7000 *:* users:(("frps",pid=1071,fd=3))
LISTEN 0 128 *:9508 *:* users:(("frps",pid=1071,fd=10))
nslookup
nslookup
(Name Server Lookup)命令用来从 DNS 中查询域名对应的 ip 地址和其它 DNS 记录信息。
ubuntu:~$ nslookup 3.cn
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: 3.cn
Address: 106.39.164.153
Name: 3.cn
Address: 111.13.28.27
ping
ping
命令用来测试数据包能否通过 IP 网络发送到目标主机。
ping
命令的运行原理是向目标主机发送 ICMP 协议的 ECHO_REQUEST 数据包,等待接收响应的 ECHO_RESPONSE 数据包,然后按响应时间和成功次数估算丢包率和延时。
ubuntu:~$ ping 3.cn -t 4
PING 3.cn (106.39.164.153): 56 data bytes
64 bytes from 106.39.164.153: icmp_seq=0 ttl=50 time=39.883 ms
64 bytes from 106.39.164.153: icmp_seq=1 ttl=50 time=43.923 ms
64 bytes from 106.39.164.153: icmp_seq=2 ttl=50 time=39.428 ms
64 bytes from 106.39.164.153: icmp_seq=3 ttl=50 time=47.891 ms
--- 3.cn ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 39.428/42.781/47.891/3.430 ms
traceroute
traceroute
命令用来显示数据包在 IP 网络上发送到目标主机的路由信息。
更多信息请见 traceroute(8) — Linux manual page。
tcptraceroute
tcptraceroute
命令的效果等同于 traceroute -T
命令。
mtr
mtr
命令是一个将 traceroute
和 ping
功能结合在一起的网络诊断工具。
更多信息请见 MTR 官方文档。
My traceroute [v0.95]
ubuntu (172.19.159.133) -> 121.5.122.78 (121.5.122.78)2023-07-28T16:54:42+0800
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 172.19.159.254 0.0% 14 3.4 53.7 3.4 272.2 72.9
2. (waiting for reply)
3. 60.12.1.177 0.0% 14 4.8 15.7 4.8 115.1 28.8
4. 101.68.76.73 0.0% 14 5.0 12.2 4.1 33.1 10.7
5. 124.160.233.157 64.3% 14 6.0 50.0 4.7 226.7 98.8
6. 219.158.114.145 92.3% 14 159.2 159.2 159.2 159.2 0.0
7. (waiting for reply)
8. 220.196.197.162 30.8% 14 79.5 81.5 12.5 219.5 65.4
9. (waiting for reply)
10. (waiting for reply)
11. (waiting for reply)
12. (waiting for reply)
13. 121.5.122.78 0.0% 13 81.6 84.3 15.2 358.9 86.7
tcpdump
tcpdump
命令会打印经过网卡的数据包。
tcpdump -i eth0 -w dump.pcapng
命令表示把经过 eth0
网卡上的数据包保存到 dump.pcapng
文件中,后续可以使用 Wireshark 打开该文件来分析记录网络数据包。
更多信息请见 tcpdump(1) — Linux manual page。
iperf3
iperf3
是一种压测 IP 网络中最大带宽的工具。
iperf3
支持调整时序、协议、缓冲区等等相关的各种参数,对于每个测试用例,它都会输出包含吞吐量 / 比特率、丢失等等参数的测试结果。
ubuntu:~$ iperf3 -s -p 5201 -f Mbits
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.67, port 63981
[ 5] local 192.168.0.102 port 5201 connected to 192.168.0.67 port 63982
[ 8] local 192.168.0.102 port 5201 connected to 192.168.0.67 port 63983
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 35.3 MBytes 35.3 MBytes/sec
[ 8] 0.00-1.00 sec 37.8 MBytes 37.8 MBytes/sec
[SUM] 0.00-1.00 sec 73.2 MBytes 73.2 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 1.00-2.00 sec 44.2 MBytes 44.2 MBytes/sec
[ 8] 1.00-2.00 sec 44.5 MBytes 44.5 MBytes/sec
[SUM] 1.00-2.00 sec 88.7 MBytes 88.7 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 2.00-3.00 sec 45.2 MBytes 45.2 MBytes/sec
[ 8] 2.00-3.00 sec 47.1 MBytes 47.1 MBytes/sec
[SUM] 2.00-3.00 sec 92.3 MBytes 92.3 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 3.00-3.02 sec 584 KBytes 37.4 MBytes/sec
[ 8] 3.00-3.02 sec 588 KBytes 37.7 MBytes/sec
[SUM] 3.00-3.02 sec 1.14 MBytes 75.2 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-3.02 sec 125 MBytes 41.6 MBytes/sec receiver
[ 8] 0.00-3.02 sec 130 MBytes 43.1 MBytes/sec receiver
[SUM] 0.00-3.02 sec 255 MBytes 84.7 MBytes/sec receiver
ubuntu:~$ iperf3 -c 192.168.0.102 -p 5201 -t 3 -P 2
Connecting to host 192.168.0.102, port 5201
[ 7] local 192.168.0.67 port 63982 connected to 192.168.0.102 port 5201
[ 9] local 192.168.0.67 port 63983 connected to 192.168.0.102 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd RTT
[ 7] 0.00-1.00 sec 38.2 MBytes 320 Mbits/sec 0 2.18 MBytes 57ms
[ 9] 0.00-1.00 sec 40.6 MBytes 341 Mbits/sec 0 3.00 MBytes 87ms
[SUM] 0.00-1.00 sec 78.8 MBytes 661 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 7] 1.00-2.00 sec 43.9 MBytes 368 Mbits/sec 0 2.20 MBytes 59ms
[ 9] 1.00-2.00 sec 43.9 MBytes 368 Mbits/sec 0 2.67 MBytes 63ms
[SUM] 1.00-2.00 sec 87.9 MBytes 736 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 7] 2.00-3.00 sec 45.7 MBytes 383 Mbits/sec 0 2.19 MBytes 48ms
[ 9] 2.00-3.00 sec 48.5 MBytes 408 Mbits/sec 0 2.03 MBytes 38ms
[SUM] 2.00-3.00 sec 94.2 MBytes 791 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 7] 0.00-3.00 sec 128 MBytes 357 Mbits/sec 0 sender
[ 7] 0.00-3.02 sec 125 MBytes 349 Mbits/sec receiver
[ 9] 0.00-3.00 sec 133 MBytes 372 Mbits/sec 0 sender
[ 9] 0.00-3.02 sec 130 MBytes 362 Mbits/sec receiver
[SUM] 0.00-3.00 sec 261 MBytes 729 Mbits/sec 0 sender
[SUM] 0.00-3.02 sec 255 MBytes 710 Mbits/sec receiver
iperf Done.
最后更新于