📜  Linux 网络工具(1)

📅  最后修改于: 2023-12-03 15:17:23.533000             🧑  作者: Mango

Linux 网络工具

Linux 网络工具是程序员必备的一种工具,它们可以用于网络排查、网络诊断和网络监控。以下是一些常用的 Linux 网络工具。

1. ping

ping 工具可以用于测试网络连通性。它会发送 ICMP 报文到目标主机,如果目标主机响应,则说明网络连通。例如,ping 百度网站:

$ ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=46 time=33.4 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=46 time=27.7 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=46 time=30.0 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 27.694/30.361/33.485/2.504 ms

ping 命令会一直发送 ICMP 报文,直到用户按 Ctrl + C 终止。可以通过参数来控制它的行为,例如指定发送的次数、报文的大小等。

2. dig

dig 是一种功能强大的 DNS 查询工具,可以用于查询域名的 IP 地址、MX 记录、NS 记录等信息。例如,查询百度网站的 IP 地址:

$ dig www.baidu.com +short
220.181.38.149
220.181.38.150
3. netstat

netstat 工具可以用于查看网络连接情况、路由表、网络接口信息等。使用 netstat 命令可以列出当前所有的网络连接:

$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.2:22          192.168.0.1:56274       ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN

可以通过参数来控制 netstat 的行为,例如只显示 TCP 连接、只显示监听状态的连接等。

4. tcpdump

tcpdump 工具可以用于抓取网络数据包,并可以对数据包进行过滤、分析。例如,抓取从本机到 8.8.8.8 的 ICMP 数据包:

$ sudo tcpdump -i eth0 icmp and host 8.8.8.8 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:05:13.385330 IP 192.168.0.2 > dns.google: ICMP echo request, id 58589, seq 1, length 64
14:05:13.406080 IP dns.google > 192.168.0.2: ICMP echo reply, id 58589, seq 1, length 64
14:05:14.384510 IP 192.168.0.2 > dns.google: ICMP echo request, id 58589, seq 2, length 64
14:05:14.413842 IP dns.google > 192.168.0.2: ICMP echo reply, id 58589, seq 2, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
5. nmap

nmap 工具是一种网络扫描器,可以用于扫描目标主机的开放端口、操作系统版本等信息。例如,扫描本机开放的 TCP 端口:

$ sudo nmap -sS 127.0.0.1
Starting Nmap 7.60 ( https://nmap.org ) at 2020-11-08 14:24 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 987 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql

可以通过参数来控制 nmap 的行为,例如指定端口范围、扫描速度等。

以上是一些常用的 Linux 网络工具,它们可以帮助程序员进行网络排查、网络诊断和网络监控。