摘要:ip命令的全称是“Internet Protocol”,但它远不止于IP协议的管理。它是一个多功能工具,能处理从物理链路层到传输层的网络任务。ip命令的诞生源于Linux内核的网络子系统演进,早期的net-tools套件(如ifconfig、route)已逐渐
ip命令的全称是“Internet Protocol”,但它远不止于IP协议的管理。它是一个多功能工具,能处理从物理链路层到传输层的网络任务。ip命令的诞生源于Linux内核的网络子系统演进,早期的net-tools套件(如ifconfig、route)已逐渐被淘汰,取而代之的是iproute2套件。为什么选择ip?首先,它支持脚本化操作,便于自动化;其次,它提供详细的输出选项,便于调试;最后,它是大多数现代Linux发行版(如Ubuntu、CentOS、Debian)的默认工具。
安装ip命令通常无需额外操作,因为它已预装在大多数系统中。如果缺失,可以通过包管理器安装:sudo apt install iproute2(Debian系)或sudo yum install iproute(Red Hat系)。运行ip --help即可查看帮助信息,显示所有可用对象和命令。ip命令的通用语法为:
ip [ OPTIONS ] OBJECT { COMMAND | help }其中,OPTIONS如-s(统计信息)、-d(详细信息)、-4(仅IPv4)等;OBJECT是操作对象,如link、addr、route;COMMAND是具体动作,如show、add、del。接下来,我们逐一剖析主要对象,并列举丰富示例。
网络接口是数据进出的门户,ip link对象负责链路层管理,包括查看、启用/禁用接口、设置MTU(最大传输单元)等。这是ip命令最基础的应用。
显示所有网络接口命令:ip link show 或简写ip l。
lo是回环接口,eth0是以太网接口。状态UP表示启用,MTU为65536字节是标准值。
显示特定接口详情命令:ip link show dev eno1。
这会过滤输出,只显示eno1的详细信息,便于针对性检查。
启用/禁用接口启用:sudo ip link set eno1 up。
禁用:sudo ip link set eno1 down。
示例:在调试时,先禁用接口ip link set eno1 down,然后重新启用ip link set eno1 up,可重置连接。
设置MTU命令:sudo ip link set eno1 mtu 9000( Jumbo帧)。
这在高带宽网络中优化性能,但需确保硬件支持。
更改接口别名命令:sudo ip link set eno1 alias "Internet Connection"。
别名仅用于显示,不影响功能。
ip addr对象专注于网络层地址管理,支持静态/动态IP的添加、删除和查看。IPv6时代,它无缝处理双栈。
显示所有IP地址命令:ip addr show 或ip a。
/24表示子网掩码255.255.255.0,brd是广播地址。
添加IPv4地址命令:sudo ip addr add 192.168.1.101/24 dev eno1。
这为eth0添加辅助IP,便于多地址场景如虚拟主机。
添加IPv6地址命令:sudo ip addr add 2001:db8::1/64 dev eno1。
IPv6地址更长,但语法相同。注意:实际使用需全局前缀。
删除IP地址命令:sudo ip addr del 192.168.1.101/24 dev eno1。
删除后,地址立即失效,无需重启。
显示标签(label)命令:ip addr show label eno1。
过滤特定接口的地址信息。
临时设置默认路由IP结合route使用:sudo ip addr flush dev eno1 清空所有地址,然后重新添加。
路由表决定了数据包的转发路径,ip route是网络诊断的利器。
显示路由表命令:ip route show 或ip r。
default是默认网关,via指定下一跳。
添加静态路由命令:sudo ip route add 10.0.0.0/24 via 192.168.1.254 dev eno1。
这将10.0.0.0网段流量路由到特定网关。
删除路由命令:sudo ip route del 10.0.0.0/24。
精确匹配删除,避免误操作。
替换路由命令:sudo ip route replace default via 192.168.1.2。
快速切换默认网关,用于负载均衡测试。
显示缓存路由命令:ip route show cache。
查看最近解析的路由条目。
策略路由(高级)命令:sudo ip route add blackhole 0.0.0.0/0(丢弃所有流量)。
用于防火墙模拟。
这些命令让学生理解OSI模型:从链路到路由的层层递进。
来源:wljslmz一点号