1. 简介
在 Linux 上查看网络连接跟踪信息对于系统管理员和网络工程师来说是非常重要的。了解当前系统上的网络连接状态和跟踪信息可以帮助我们诊断和解决网络问题,优化网络性能。
2. 使用命令行工具查看网络连接信息
2.1 使用 netstat 命令
netstat 命令是一个用于检查网络连接和路由表的强大工具。我们可以使用以下命令来查看网络连接信息:
netstat -tuan
该命令会显示所有的网络连接信息,包括本地地址、远程地址、连接状态等。
例子:
$ netstat -tuan
输出结果如下:
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.1.10:22 192.168.1.20:12345 ESTABLISHED
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:161 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
从上面的输出中可以看到当前系统上的 TCP 和 UDP 连接的详细信息,包括本地地址、远程地址和连接状态。
2.2 使用 ss 命令
ss 命令是一个更强大的工具,用于显示更详细的网络连接信息。它可以取代 netstat 命令。
ss -tuan
该命令会显示所有的 TCP 和 UDP 连接信息。
例子:
$ ss -tuan
输出结果如下:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
ESTAB 0 0 192.168.1.10:22 192.168.1.20:12345
LISTEN 0 128 :::80 :::*
从上面的输出中可以看到更详细的连接状态(如 LISTEN、ESTAB)和本地地址、远程地址。
3. 使用命令行工具跟踪网络连接信息
3.1 使用 tcpdump 命令
tcpdump 命令是一个非常强大的网络抓包工具,可以捕获和分析网络数据包。我们可以使用以下命令来跟踪特定端口的网络连接信息:
tcpdump port 80
该命令会监听所有经过端口 80 的网络数据包,并将它们显示出来。
例子:
$ tcpdump port 80
输出结果如下:
14:51:20.407337 IP 192.168.1.10.55720 > 203.0.113.1.80: Flags [S], seq 123456789, win 1024, options [mss 1460], length 0
14:51:20.407371 IP 203.0.113.1.80 > 192.168.1.10.55720: Flags [S.], seq 987654321, ack 123456790, win 1024, options [mss 1460], length 0
14:51:20.407437 IP 192.168.1.10.55720 > 203.0.113.1.80: Flags [.], ack 1, win 1024, length 0
14:51:20.407478 IP 192.168.1.10.55720 > 203.0.113.1.80: Flags [P.], seq 1:101, ack 1, win 1024, length 100
...
从上面的输出中可以看到经过端口 80 的网络数据包的详细信息。
3.2 使用 wireshark 命令
wireshark 是一个图形界面的网络抓包工具,可以方便地捕获和分析网络数据包。我们可以使用以下命令启动 wireshark:
wireshark
启动 wireshark 后,我们可以在界面上选择相应的网络接口和过滤条件,然后开始捕获、分析网络数据包。
4. 总结
通过使用上述命令行工具,我们可以方便地查看和跟踪 Linux 系统上的网络连接信息。这些工具能够帮助我们定位和解决网络问题,提高网络性能。
请注意,使用这些工具需要具有管理员权限,并且应该谨慎操作,避免对系统造成不必要的影响。