菜鸟科技网

CentOS 7 ip命令与ifconfig有何区别?

在CentOS 7系统中,网络配置是系统管理的基础操作之一,而ip命令作为iproute2包的核心工具,相比传统的ifconfig命令提供了更强大、更灵活的网络管理功能。ip命令不仅可以显示和操作路由表、网络接口、策略路由等,还支持IPv4和IPv6协议,是现代Linux系统中网络管理的首选工具,本文将详细介绍ip命令在CentOS 7中的常用语法、核心功能及实际应用场景,帮助用户全面掌握这一工具的使用方法。

CentOS 7 ip命令与ifconfig有何区别?-图1
(图片来源网络,侵删)

ip命令的基本语法与安装

ip命令的基本语法结构为ip [OPTIONS] OBJECT [COMMAND],其中OBJECT表示操作对象(如linkaddrroute等),COMMAND表示对该对象执行的具体操作(如showadddelete等)。OPTIONS是可选参数,用于控制命令的输出格式或行为。-s选项可以显示详细的统计信息,-4-6分别用于指定IPv4或IPv6操作。

在CentOS 7中,ip命令通常默认已安装,但若系统未安装,可通过以下命令安装:

sudo yum install iproute -y

安装完成后,可通过ip --help查看命令的帮助信息,或man ip查阅详细的手册页。

ip命令的核心功能与应用

网络接口管理(link对象)

网络接口是系统与外部网络通信的物理或虚拟通道,ip link命令用于查看、启用、禁用或修改接口属性。

CentOS 7 ip命令与ifconfig有何区别?-图2
(图片来源网络,侵删)
  • 查看所有接口状态

    ip link show

    输出结果中,UP表示接口已启用,DOWN表示已禁用,MTU为最大传输单元,qdisc为排队规则。

  • 启用或禁用接口

    sudo ip link set ens33 up    # 启用ens33接口
    sudo ip link set ens33 down  # 禁用ens33接口
  • 修改接口MAC地址

    CentOS 7 ip命令与ifconfig有何区别?-图3
    (图片来源网络,侵删)
    sudo ip link set ens33 address 00:11:22:33:44:55
  • 查看接口详细信息

    ip -s link show ens33

    此命令会显示接口的接收(RX)和发送(TX)字节数、错误包数等统计信息。

IP地址管理(addr对象)

ip addr命令用于配置或显示网络接口的IP地址、子网掩码、广播地址等信息。

  • 查看接口IP地址

    ip addr show

    输出中,inet后为IPv4地址,inet6后为IPv6地址,scope表示地址作用域(如global为全局地址,link为链路本地地址)。

  • 添加临时IP地址

    sudo ip addr add 192.168.1.100/24 dev ens33

    此命令添加的IP地址在系统重启后会失效,若需永久配置,需修改网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33)。

  • 删除IP地址

    sudo ip addr del 192.168.1.100/24 dev ens33
  • 启用或禁用接口的ARP协议

    sudo ip link set arp off dev ens33  # 禁用ARP
    sudo ip link set arp on dev ens33   # 启用ARP

路由管理(route对象)

路由表决定了数据包的转发路径,ip route命令用于查看、添加或删除路由条目。

  • 查看路由表

    ip route show

    输出中,default via表示默认网关,src为源地址,dev为出站接口。

  • 添加默认网关

    sudo ip route add default via 192.168.1.1 dev ens33
  • 添加静态路由

    sudo ip route add 10.0.0.0/24 via 192.168.1.254 dev ens33
  • 删除路由条目

    sudo ip route del default via 192.168.1.1 dev ens33
  • 刷新路由缓存

    sudo ip route flush cache

网络统计与诊断

ip命令还可用于网络诊断和性能监控,

  • 查看ARP缓存

    ip neigh show

    输出显示与本地网络相连的主机IP和MAC地址映射。

  • 查看多播地址

    ip maddr show
  • 查看网络命名空间

    ip netns list

    网络命名空间可实现网络资源的隔离,常用于容器技术(如Docker)。

ip命令与传统ifconfig命令的对比

相较于传统的ifconfig命令,ip命令在功能性和扩展性上具有明显优势,具体对比如下:

对比项 ip命令 ifconfig命令
支持协议 同时支持IPv4和IPv6 需分别使用ifconfigifconfig6
功能范围 支持路由、策略路由、隧道等高级功能 仅支持基本接口和IP配置
输出格式 结构化输出,便于脚本解析 输出格式固定,灵活性低
维护状态 主流Linux系统默认推荐使用 逐渐被弃用,部分发行版已移除
统计信息 通过-s选项获取详细统计 需单独使用netstatss命令

实际应用场景示例

临时修改网络配置

在需要快速测试网络环境时,可通过ip命令临时添加IP地址和路由,无需修改配置文件:

sudo ip addr add 192.168.100.50/24 dev ens33
sudo ip route add default via 192.168.100.1
ping 8.8.8.8  # 测试网络连通性

测试完成后,通过ip addr delip route del删除临时配置即可。

配置 bonding 实现网络冗余

通过ip link命令可配置网络绑定(bonding),将多个物理接口虚拟为一个逻辑接口,提高网络可靠性:

sudo ip link add bond0 type bond mode active-backup
sudo ip link set ens33 master bond0
sudo ip link set ens34 master bond0
sudo ip addr add 192.168.1.50/24 dev bond0
sudo ip link set bond0 up

使用策略路由实现多出口负载均衡

在多网关环境中,可通过ip ruleip route配置策略路由,实现基于源IP的流量转发:

sudo ip route add default via 192.168.1.1 table 1
sudo ip route add default via 192.168.2.1 table 2
sudo ip rule add from 192.168.1.100 table 1
sudo ip rule add from 192.168.1.101 table 2

相关问答FAQs

问题1:CentOS 7中如何使用ip命令永久修改网卡IP地址?
解答:在CentOS 7中,ip命令添加的IP地址为临时配置,重启后会失效,永久修改需编辑网卡配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33),添加或修改以下参数:

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes

保存后执行sudo systemctl restart network使配置生效。

问题2:ip命令中“dev”和“via”参数有什么区别?
解答:在ip route命令中,dev参数指定数据包出站的网络接口,而via参数指定下一跳网关的IP地址。ip route add 10.0.0.0/24 via 192.168.1.1 dev ens33表示目标网络为0.0.0/24的数据包需通过网关168.1.1从接口ens33转发,若未指定dev,系统会根据路由表自动选择接口;若未指定via,则表示直连路由(目标网络与接口在同一网段)。

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