菜鸟科技网

Linux ip命令怎么用?基本参数有哪些?

Linux系统中的ip命令是强大的网络配置工具,它替代了传统的ifconfig、route等命令,提供了更全面和灵活的网络管理功能,ip命令属于net-tools软件包,通常预装在大多数Linux发行版中,其核心功能包括网络接口的配置、路由管理、隧道设置、策略路由控制以及网络命名空间操作等,与ifconfig相比,ip命令支持更多现代网络特性,如VLAN、隧道、多路由表等,且输出信息更结构化,便于脚本处理和自动化管理。

Linux ip命令怎么用?基本参数有哪些?-图1
(图片来源网络,侵删)

ip命令的基本语法与结构

ip命令的基本语法格式为ip [OPTIONS] OBJECT {COMMAND | help},其中OBJECT表示操作对象,如link(网络接口)、addr(地址管理)、route(路由管理)等;COMMAND表示具体操作,如add、del、show等;OPTIONS则用于控制命令的输出格式或行为。ip link show用于显示所有网络接口状态,ip addr add 192.168.1.100/24 dev eth0用于为eth0接口添加IP地址。

网络接口管理(ip link)

网络接口是Linux网络通信的基础,ip link子命令用于查看、启用、禁用或修改接口属性。

  • ip link show:列出所有网络接口及其状态(如UP/DOWN、MAC地址、MTU等)。
  • ip link set eth0 up:启用eth0接口。
  • ip link set eth0 address 00:11:22:33:44:55:修改接口的MAC地址。
  • ip link add link eth0 name eth0.10 type vlan id 10:在eth0上创建VLAN子接口。

接口的MTU(最大传输单元)、队列调度策略等参数也可通过ip link调整,例如ip link set eth0 mtu 1500修改MTU值。

IP地址管理(ip addr)

ip addr子命令负责为接口配置、删除或显示IP地址,支持IPv4和IPv6,并支持多地址配置,常用操作包括:

Linux ip命令怎么用?基本参数有哪些?-图2
(图片来源网络,侵删)
  • ip addr show eth0:显示eth0接口的IP地址、子网掩码、广播地址等信息。
  • ip addr add 192.168.1.100/24 broadcast 192.168.1.255 dev eth0:为eth0添加IPv4地址,并指定广播地址。
  • ip addr add 2001:db8::1/64 dev eth0:为eth0添加IPv6地址。
  • ip addr del 192.168.1.100/24 dev eth0:删除eth0上的指定IPv4地址。

ip addr支持地址标签(label)和临时地址(temporary)配置,例如ip addr add 192.168.1.101/24 dev eth0 label eth0:1为接口添加别名地址。

路由管理(ip route)

路由表决定了数据包的转发路径,ip route子命令用于查看、添加、删除或修改路由条目,核心操作包括:

  • ip route show:显示当前路由表,包括目标网络、网关、接口、跃点数等。
  • 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 add default via 192.168.1.1:设置默认网关。
  • ip route del 192.168.2.0/24:删除指定路由条目。

路由条目支持优先级(metric)、协议类型(proto)和路由表(table)等属性,例如ip route add 10.0.0.0/24 via 192.168.1.1 table 100将路由添加到自定义路由表100中。

邻居与ARP管理(ip neigh)

邻居表(ARP表)记录了IP地址与MAC地址的映射关系,ip neigh子命令用于查看、添加或删除邻居条目:

  • ip neigh show:显示当前邻居表,包括IP、MAC、接口和状态(REACHABLE、STALE等)。
  • ip neigh add 192.168.1.50 lladdr 00:1a:2b:3c:4d:5e dev eth0:手动添加静态ARP条目。
  • ip neigh del 192.168.1.50 dev eth0:删除指定邻居条目。

网络命名空间与隧道

ip命令支持网络命名空间(netns)操作,用于实现网络隔离。

  • ip netns add ns1:创建命名空间ns1。
  • ip link set eth0 netns ns1:将eth0接口移动到ns1。
  • ip netns exec ns1 ip addr show:在ns1命名空间中执行ip命令。

ip命令还可配置隧道(如sit、gre、ipip等),例如ip tunnel add tun0 mode gre remote 192.168.1.2 local 192.168.1.1创建GRE隧道。

策略路由与规则

策略路由(policy routing)允许根据数据包的源地址、协议等属性选择不同的路由表,ip rule子命令用于管理路由规则:

  • ip rule show:显示当前路由规则,优先级(priority)和选择条件(如from、to、iif等)。
  • ip rule add from 192.168.1.0/24 table 100:添加规则,匹配源地址192.168.1.0/24的数据包使用路由表100。
  • ip rule del pref 32767:删除优先级为32767的规则。

ip命令与其他工具的对比

与传统的ifconfig和route命令相比,ip命令的优势在于:

  1. 功能全面:整合了接口、地址、路由、ARP等功能,无需切换工具。
  2. 现代特性支持:支持VLAN、隧道、多路由表、网络命名空间等高级功能。
  3. 结构化输出:默认输出更易解析,适合脚本自动化。
  4. 性能优化:在处理大量网络配置时效率更高。

以下为ifconfig与ip addr命令输出对比示例:

功能 ifconfig命令示例 ip addr命令示例
显示接口地址 ifconfig eth0 ip addr show eth0
添加IP地址 ifconfig eth0 192.168.1.100 ip addr add 192.168.1.100/24 dev eth0
启用接口 ifconfig eth0 up ip link set eth0 up

常见使用场景

  1. 服务器网络初始化:通过脚本批量配置多个接口的IP地址和路由。
  2. 容器网络配置:使用网络命名空间和VLAN为容器提供隔离的网络环境。
  3. 故障排查:通过ip link检查接口状态,ip route验证路由表,ip neigh排查ARP问题。
  4. VPN与隧道:配置GRE或IP-in-IP隧道实现跨网络通信。

相关问答FAQs

Q1: 如何使用ip命令永久修改网络配置?
A1: ip命令本身是临时生效的,永久修改需结合配置文件,在Debian/Ubuntu系统中,修改/etc/network/interfaces文件添加iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1;在RHEL/CentOS系统中,修改/etc/sysconfig/network-scripts/ifcfg-eth0文件并重启网络服务(systemctl restart network)。

Q2: ip命令和ifconfig命令在性能上有什么差异?
A2: ip命令在性能上通常优于ifconfig,尤其是在处理大量网络接口或复杂路由规则时,ip命令采用更高效的数据结构(如链表代替数组),且输出信息更精简,减少了内存和CPU的占用,ip命令支持批量操作和脚本化处理,适合大规模网络环境的管理需求。

分享:
扫描分享到社交APP
上一篇
下一篇