本文最后更新于 335 天前,其中的信息可能已经有所发展或是发生改变。
Linux系统中的ip命令是一个非常强大和灵活的网络配置工具,可以用于管理和设置网络接口、路由表、ARP表、多播、隧道、链路状态监测等功能。以下是ip命令的详细解释:
一、基本用法
ip命令的基本格式是ip [选项] 对象 命令,其中对象可以是网络接口、路由表、邻居表等。
二、常用选项
- -s或- --stats:显示对象的统计信息。
- -b或- --batch:以批处理模式执行命令。
- -o或- --oneline:以一行显示输出结果。
- -f或- --family:指定地址族,如- inet(IPv4)或- inet6(IPv6)。
- -4:仅显示IPv4信息。
- -6:仅显示IPv6信息。
三、主要功能和参数
- ip addr:显示和设置网络接口的信息。
- ip addr show或- ip a:显示所有网络接口的详细信息,包括接口名称、MAC地址、IP地址和状态等。可以通过添加接口名称来过滤显示的结果,例如- ip addr show eth0只显示- eth0接口的信息。
- ip addr add [IP地址/子网掩码] dev [网络接口]:给指定网络接口添加一个IP地址。例如,- ip addr add 192.168.1.100/24 dev eth0给- eth0接口配置- 192.168.1.100的IP地址和- 24位的子网掩码。
- ip addr del [IP地址/子网掩码] dev [网络接口]:从指定网络接口删除一个IP地址。
- ip addr add [IP地址/子网掩码] broadcast [广播地址] dev [网络接口]:为指定网络接口配置广播地址。
 
- ip link:显示和设置网络接口的状态。
- ip link show:显示所有网络接口的状态,包括接口名称、状态(UP或DOWN)、MTU值、MAC地址等信息。
- ip link set [网络接口] up:启用指定网络接口。
- ip link set [网络接口] down:禁用指定网络接口。
- ip link set dev [网络接口] address [新的MAC地址]:设置网络接口的MAC地址。
- ip link set dev [网络接口] mtu [MTU值]:设置网络接口的MTU值。
- ip link set dev [网络接口] speed [速度] duplex [双工模式]:设置网络接口的速度和双工模式。
- ip link set [网络接口] name [新名称]:修改网络接口的名称。
 
- ip route:设置和管理路由表。
- ip route show或- ip r:显示当前系统的路由表信息。
- ip route add [目标网络] via [网关IP] dev [网络接口]:添加一个路由规则。例如,- ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0添加一条到- 192.168.2.0/24网络的路由,通过网关- 192.168.1.1,使用- eth0接口。
- ip route del [目标网络]:删除指定目标网络的路由规则。通常不需要指定下一跳和接口。
- ip route add default via [网关IP] dev [网络接口]:设置默认路由,使所有未知目的地的流量都经过指定的网关。
 
- ip neigh:管理邻居表(ARP表)。
- ip neigh show或- ip n:显示当前系统的邻居表信息,即本地主机与其他主机之间的IP地址和MAC地址的对应关系。
- ip neigh add [IP地址] lladdr [MAC地址] dev [网络接口]:添加一个邻居条目。
- ip neigh del [IP地址] lladdr [MAC地址] dev [网络接口]:删除指定IP地址的邻居条目。注意,有时可以省略- lladdr [MAC地址]部分。
 
- ip maddr:管理多播组。
- ip maddr show:显示当前系统的多播组信息。
- ip maddr add [多播地址] dev [网络接口]:将指定网络接口加入一个多播组。
- ip maddr del [多播地址] dev [网络接口]:将指定网络接口从一个多播组中删除。
 
- ip tunnel:设置和管理隧道接口。
- ip tunnel add [隧道名称] mode [隧道类型] remote [远程IP] local [本地IP] dev [网络接口]:添加一个隧道接口。例如,- ip tunnel add gre0 mode gre remote 192.168.2.1 local 192.168.1.1创建一个名为- gre0的GRE隧道。
- ip tunnel del [隧道名称]:删除指定隧道接口。
 
- ip monitor:监视网络接口的状态变化。
- ip netns:配置和管理网络命名空间。
- ip netns add [命名空间名称]:创建一个新的网络命名空间。
- ip netns del [命名空间名称]:删除指定的网络命名空间。
- ip netns list:列出所有网络命名空间。
- ip netns exec [命名空间名称] [命令]:在指定的网络命名空间中执行命令。
 
四、注意事项
- 执行ip命令时,通常需要以root用户或具有相应权限的用户身份来执行。
- ip命令配置的网络接口信息通常是临时的,系统重启后会丢失。要使配置持久化,需要编辑网络配置文件(如- /etc/network/interfaces或- /etc/sysconfig/network-scripts/ifcfg-eth0,具体文件路径可能因Linux发行版而异)。
综上所述,ip命令是Linux系统中用于配置和管理网络连接和网络接口的重要工具。掌握ip命令的使用方法对于进行网络配置和故障排除非常有帮助。