自从 ifconfig
命令在 Linux 上被弃用,转而使用包含神奇工具 ip
的 iproute2
项目已经十多年了。许多在线教程资源仍然引用旧的命令行工具,如 ifconfig
、route
和 netstat
。本教程的目标是分享一些您可以使用 ip
工具轻松完成的与网络相关的简单事情。
查找您的 IP 地址
[dneary@host]$ ip addr show
[snip]
44: wlp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 5c:e0:c5:c7:f0:f1 brd ff:ff:ff:ff:ff:ff
inet 10.16.196.113/23 brd 10.16.197.255 scope global dynamic wlp4s0
valid_lft 74830sec preferred_lft 74830sec
inet6 fe80::5ee0:c5ff:fec7:f0f1/64 scope link
valid_lft forever preferred_lft forever
ip addr show
将显示有关您所有网络链路设备的大量信息。在这种情况下,我的无线以太网卡 (wlp4s0) 的 IPv4 地址(inet
字段)是 10.16.196.113/23
。/23
表示 IP 地址中的 32 位中有 23 位将被此子网中的所有 IP 地址共享。子网中的 IP 地址范围为 10.16.196.0 到 10.16.197.254
。子网的广播地址(IP 地址之后的 brd
字段)10.16.197.255
保留用于向子网上所有主机广播流量。
我们可以使用 ip addr show dev wlp4s0
来仅显示有关单个设备的信息,例如。
显示您的路由表
[dneary@host]$ ip route list
default via 10.16.197.254 dev wlp4s0 proto static metric 600
10.16.196.0/23 dev wlp4s0 proto kernel scope link src 10.16.196.113 metric 601
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
路由表是本地主机帮助网络流量确定去向的方式。它包含一组路标,将流量发送到特定的接口,以及旅程中的特定下一个航点。
如果您运行任何虚拟机或容器,这些虚拟机或容器将获得自己的 IP 地址和子网,这可能会使这些路由表非常复杂,但在单个主机中,通常有两个指令。对于本地流量,将其发送到本地以太网,网络交换机将(使用称为 ARP 的协议)确定哪个主机拥有目标 IP 地址,从而确定流量应发送到的位置。对于到互联网的流量,将其发送到本地网关节点,该节点将更好地了解如何到达目的地。
在上述情况下,第一行表示外部流量的外部网关,第二行用于本地流量,第三行保留用于主机上运行的虚拟机的虚拟桥接器,但此链接当前未激活。
监控您的网络配置
[dneary@host]$ ip monitor all
[dneary@host]$ ip -s link list wlp4s0
ip monitor
命令可用于监控路由表中的更改、网络接口上的网络寻址或本地主机上 ARP 表中的更改。当两个 VM 应该能够相互通信但不能通信时,此命令在调试与容器和网络相关的问题时特别有用。
与 all
一起使用时,ip monitor
将报告所有更改,并以 [LINK]
(网络接口更改)、[ROUTE]
(路由表更改)、[ADDR]
(IP 地址更改)或 [NEIGH]
(与马无关 - 邻居的 ARP 地址相关更改)之一作为前缀。
您还可以监控特定对象(例如,特定路由表或 IP 地址)的更改。
适用于许多命令的另一个有用选项是 ip -s
,它提供一些统计信息。添加第二个 -s
选项会添加更多统计信息。上面的 ip -s link list wlp4s0
将提供有关接收和发送的数据包的大量信息,包括丢弃的数据包数量、检测到的错误等等。
实用技巧:缩短您的命令
通常,对于 ip
工具,您只需要包含足够的字母来唯一标识您想要执行的操作。 可以使用 ip mon
代替 ip monitor
。 可以使用 ip a l
代替 ip addr list
,可以使用 ip r
代替 ip route
。 Ip link list
可以缩短为 ip l ls
。 要阅读有关可用于更改命令行为的许多选项的信息,请访问 ip manpage。
5 条评论