在Linux系统中,可以使用多种命令来查看网络情况,以下是一些常用的命令及功能说明:
查看网络接口信息
ifconfig
- 功能:用于显示或配置网络接口,能查看网络接口的IP地址、子网掩码、广播地址、MAC地址等信息,还能启用或禁用网络接口。在较新的系统中,推荐使用
ip
命令替代,但ifconfig
仍然被广泛使用。 - 示例:在终端中直接输入
ifconfig
,会列出所有活动的网络接口信息,类似下面这样:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe0e:6c64 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:0e:6c:64 txqueuelen 1000 (Ethernet) RX packets 1024 bytes 1048576 (1.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 512 bytes 524288 (512.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ip addr
(或ip address
)
- 功能:查看网络接口的IP地址配置、MAC地址等信息,还可以进行网络接口相关的配置,如添加、删除IP地址等。相比
ifconfig
,ip
命令更符合现代Linux网络管理理念。 - 示例:输入
ip addr
,输出内容类似:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:0e:6c:64 brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0 valid_lft 86358sec preferred_lft 86358sec inet6 fe80::20c:29ff:fe0e:6c64/64 scope link valid_lft forever preferred_lft forever
查看网络连接状态
netstat
- 功能:用于显示网络连接、路由表和网络接口等信息,能查看当前系统中所有的网络连接,包括TCP、UDP连接,还能看到连接的状态(如ESTABLISHED、LISTEN等)、本地和远程地址及端口等。不过,在较新的系统中逐渐被
ss
命令替代。 - 示例:
netstat -an
:以数字形式显示所有的网络连接,包括监听和已建立的连接。netstat -tuln
:查看TCP和UDP的监听端口,t
表示TCP,u
表示UDP,l
表示监听状态,n
表示以数字形式显示。ss
- 功能:是新一代查看网络连接状态的工具,相比
netstat
,它更高效,能获取更详细的网络连接信息,同样可以查看TCP、UDP连接状态,以及socket统计信息等。 - 示例:
ss -an
:以数字形式显示所有的网络连接。ss -tuln
:查看监听的TCP和UDP端口。
查看路由表
route
- 功能:用于查看和操作Linux内核的路由表,可以查看系统当前的路由信息,包括默认网关、目标网络、子网掩码等。
- 示例:输入
route -n
,以数字形式显示路由表信息,类似如下:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
ip route
- 功能:用于查看和管理Linux系统的路由表,功能强大且更符合现代Linux网络管理的习惯,可以添加、删除、修改路由条目等。
- 示例:输入
ip route show
,显示当前路由表信息。
测试网络连通性
ping
- 功能:通过发送ICMP(Internet Control Message Protocol)回声请求数据包,测试目标主机是否可达,还能获取往返时间(RTT)等信息,用于判断网络连接是否正常。
- 示例:
ping 8.8.8.8
,测试本机到Google的DNS服务器(8.8.8.8)的网络连通性。traceroute
(在某些系统中是tracepath
) - 功能:用于追踪数据包从源主机到目标主机所经过的路由节点,能显示每个节点的IP地址和响应时间,帮助判断网络链路中的故障点或延迟较大的节点。
- 示例:
traceroute www.example.com
,追踪到www.example.com
所经过的路由。
查看网络带宽使用情况
iftop
- 功能:实时监控网络接口的带宽使用情况,以直观的界面显示各个连接的传输速率、连接的源IP和目标IP等信息,方便管理员了解网络带宽的占用情况。
- 示例:直接在终端输入
iftop
,选择要监控的网络接口(如果有多个),即可查看该接口的带宽使用实时信息。iperf
(服务端和客户端模式) - 功能:是一个用于测量网络带宽的工具,通过在服务端和客户端之间建立连接并传输数据,精确测量网络的最大吞吐量、延迟等性能指标 。
- 示例:
- 服务端:在服务端机器上运行
iperf -s
,启动iperf服务端监听。 - 客户端:在客户端机器上运行
iperf -c <server_ip>
,连接到服务端并进行带宽测试,<server_ip>
是服务端的IP地址。
- 服务端:在服务端机器上运行