有几个命令可以帮助你在 Linux 系统上看到网络状况,这些包括 ip、ethtool、traceroute、tcptraceroute 和 tcpdump。
ifconfig 和 netstat 命令当然非常有用,但还有很多其它命令能帮你查看 Linux 系统上的网络状况。本文探索了一些检查网络连接的非常简便的命令。
ip 命令
ip 命令显示了许多与你使用 ifconfig 命令时的一样信息。其中一些信息以不同的格式呈现,比如显示 192.168.0.6/24,而不是 inet addr:192.168.0.6 Bcast:192.168.0.255,尽管 ifconfig 更适合数据包计数,但 ip 命令有许多有用的选项。
首先,ip a 命令可以列出所有网络接口的信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN groupdefault qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet127.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 pfifo_fast state UP groupdefault qlen 1000 link/ether 00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff inet192.168.0.6/24 brd 192.168.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::21e:4fff:fec8:43fc/64 scope link valid_lft forever preferred_lft forever
如果你只想看到简单的网络接口列表,你可以用 grep 限制它的输出。
1 2 3 4 5 6
$ ip a | grep inet inet127.0.0.1/8 scope host lo inet6 ::1/128 scope host inet192.168.0.6/24 brd 192.168.0.255 scope global eth0 inet6 fe80::21e:4fff:fec8:43fc/64 scope link
使用如下面的命令,你可以看到你的默认路由:
1 2 3 4
$ ip route show default via 192.168.0.1 dev eth0 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.6
$ tcpdump -D 1.eth0[Up, Running] 2.any (Pseudo-device that captures on all interfaces) [Up, Running] 3.lo[Up, Running, Loopback] 4.nflog (Linux netfilter log (NFLOG) interface) 5.nfqueue (Linux netfilter queue (NFQUEUE) interface) 6.usbmon1 (USB bus number 1) 7.usbmon2 (USB bus number 2) 8.usbmon3 (USB bus number 3) 9.usbmon4 (USB bus number 4) 10.usbmon5 (USB bus number 5) 11.usbmon6 (USB bus number 6) 12.usbmon7 (USB bus number 7)