ip 命令:比 ifconfig 更强大、更灵活的网络配置工具

ifconfig vs ip:网络配置命令的差异与比较

  • 一、背景
  • 二、ip 命令:ifconfig 的替代方案
  • 三、ip 与 ifconfig 命令的比较
    • 3.1、显示所有网络接口
    • 3.2、添加或删除 IP 地址
    • 3.3、添加 MAC 地址
    • 3.4、设置其他网络接口配置
    • 3.5、启用或禁用网络接口
    • 3.6、启用或禁用 ARP 协议
  • 四、总结

一、背景

几乎所有Linux 发行版都提供了一套命令行工具来方便地配置网络,这些工具来自 net-tools 包,包含 ifconfigroutenameifiwconfigiptunnelnetstatarp 等命令。这些命令曾经是配置网络的标准工具,足以满足任何新手或专家级 Linux 用户的网络配置需求。但由于 Linux 内核的不断发展和 net-tools 包的维护问题,它们逐渐被弃用,取而代之的是功能更强大的替代方案,能够取代所有这些命令。

这个替代方案也存在了一段时间,并且比任何一个上述命令都更加强大。本文重点介绍这个替代方案,并将其与 net-tools 包中的 ifconfig 命令进行比较。

二、ip 命令:ifconfig 的替代方案

ifconfig 存在了很长时间,并且仍然被许多人用来配置、显示和控制网络接口。但现在 Linux 发行版中存在一个比它更强大的替代方案,那就是来自 iproute2util 包的 ip 命令。

虽然这个ip命令乍一看可能有点复杂,但它的功能比 ifconfig 功能更强大,可以替代所有 net-tools 包中的命令。ip 命令在网络协议栈的第二层(链路层)和第三层(IP 层)上都提供了强大的功能,并完成了 net-tools 包中所有上述命令的工作。

ifconfig 主要用于显示或修改系统接口,而 ip 命令能够完成以下任务:

  • 显示或修改接口属性。
  • 添加、删除 ARP 缓存条目,以及为主机创建新的静态 ARP 条目。
  • 显示与所有接口关联的 MAC 地址。
  • 显示和修改内核路由表。

ip 命令与 ifconfig 最主要的区别在于,后者使用 ioctl 进行网络配置,这是一种不太理想的内核交互方式。而前者利用 netlink 套接字机制来实现相同的功能,这是一种更灵活的 ioctl 替代方案,用于内核和用户空间之间的通信,使用 rtnetlink(它增加了网络环境操作能力)。

ifconfigip 命令对比表:

ifconfig (net-tools)ip (iproute2)说明
ifconfigip a, ip link显示和配置网络接口
routeip route管理路由表
arpip neigh管理 ARP 邻居表
netstatss查看网络连接状态
netstat -Mconntrack -L查看连接跟踪信息
netstat -gip maddr查看多播组成员关系
netstat -iip -s link查看网络接口统计信息
netstat -rip route查看路由表
iptunnelip tunnel管理隧道接口
tunctlip tuntap管理虚拟网络接口
brctlbridge管理桥接设备

三、ip 与 ifconfig 命令的比较

现在可以开始重点介绍 ifconfig 的功能以及它们是如何被 ip 命令有效地替代的。下面重点介绍了一些 ifconfig 命令及其使用 ip 命令的替代方案。

3.1、显示所有网络接口

这里,ipifconfig 之间的一个区别是:

  • ifconfig 只显示已启用的接口。
  • ip 命令显示所有接口,无论它们是已启用还是已禁用。

ifconfig 命令:

ifconfig

在这里插入图片描述

ip 命令:

ip a

输出:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:15:5d:c1:36:f0 brd ff:ff:ff:ff:ff:ffinet 172.28.129.124/20 brd 172.28.143.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::215:5dff:fec1:36f0/64 scope linkvalid_lft forever preferred_lft forever

3.2、添加或删除 IP 地址

例如,将 IP 地址 192.168.80.174 分配给 eth0 接口。

  • ifconfig 命令:

    ifconfig eth0 add 192.168.80.174  # 添加 IP 地址
    ifconfig eth0 del 192.168.80.174  # 删除 IP 地址
    
  • ip 命令:

    ip a add 192.168.80.174 dev eth0  # 添加 IP 地址
    ip a del 192.168.80.174 dev eth0  # 删除 IP 地址
    

3.3、添加 MAC 地址

例如:将 eth0 接口的硬件地址设置为命令中指定的地址。可以通过检查 ifconfig 命令输出中的 HWaddr 值来验证这一点。

ifconfig 添加 MAC 地址,使用 ifconfig 命令添加 MAC 地址的语法:

ifconfig eth0 hw ether 00:0c:29:33:4e:aa

ip 添加 MAC 地址,使用 ip 命令添加 MAC 地址的语法:

ip link set dev eth0 address 00:0c:29:33:4e:aa

3.4、设置其他网络接口配置

除了设置 IP 地址或硬件地址之外,还可以对接口应用其他配置,包括:

  • MTU(最大传输单元)
  • 多播标志
  • 传输队列长度
  • 监听模式
  • 启用或禁用所有多播模式

ifconfig 命令:

ifconfig eth0 mtu 2000         # 设置 MTU 值: 将 MTU 值设置为 2000
ifconfig eth0 multicast        # 启用多播
ifconfig eth0 txqueuelen 1200  # 设置传输队列长度
ifconfig eth0 promisc          # 启用混杂模式
ifconfig eth0 allmulti         # 启用所有多播

ip 命令:

ip link set dev eth0 mtu 2000         # 设置 MTU 值
ip link set dev eth0 multicast on     # 启用多播
ip link set dev eth0 txqueuelen 1200  # 设置传输队列长度
ip link set dev eth0 promisc on       # 启用混杂模式
ip link set dev eth0 allmulti on      # 启用所有多播

3.5、启用或禁用网络接口

(1)ifconfig 禁用/启用网络接口的命令:例如,禁用 eth0 接口,可以通过 ifconfig 的输出进行验证,默认情况下只显示已启用的接口。要重新启用接口,只需将 down 替换为 up

ifconfig eth0 down  # 禁用接口
ifconfig eth0 up    # 启用接口

(2)ip 禁用/启用网络接口:以下 ip 命令是 ifconfig 的替代方案,用于禁用特定接口。可以通过 ip a 命令的输出进行验证,该命令默认显示所有接口,无论是已启用还是已禁用,并突出显示其状态以及描述。要重新启用接口,只需将 down 替换为 up

ip link set eth0 down  # 禁用接口
ip link set eth0 up    # 启用接口

3.6、启用或禁用 ARP 协议

ifconfig 启用/禁用 ARP 协议:以下命令启用 ARP 协议与 eth0 接口一起使用。要禁用此选项,只需将 arp 替换为 -arp

ifconfig eth0 arp  # 启用 ARP
ifconfig eth0 -arp # 禁用 ARP

ip 启用/禁用 ARP 协议:以下命令是 ifconfigip 替代方案,用于为 eth0 接口启用 ARP。要禁用,只需将 on 替换为 off

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

四、总结

ip 命令比 ifconfig 功能更强大,更灵活,并且使用 netlink 套接字机制,比 ifconfigioctl 机制更先进。虽然 ip 命令可能看起来更复杂,但它可以完成 ifconfig 的所有功能,并且提供了更多高级功能。目前,Linux 发行版同时提供 ifconfigip 命令,可以根据自己的需要选择使用。

那么,您认为哪种命令更方便,您更喜欢使用哪种命令呢?
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

罗德、西圣、猛犸无线麦克风哪个好?罗德、西圣领夹麦克风对比测评

在当今短视频蓬勃发展的时代&#xff0c;越来越多的人投身于短视频创作的浪潮之中&#xff0c;通过镜头捕捉生活点滴&#xff0c;记录工作瞬间。而在谈及视频制作时&#xff0c;不得不提及的是视频录制工具。目前&#xff0c;随着手机影像技术的飞速发展&#xff0c;其视频录制…

实测有效:Win11一键恢复win10经典右键菜单,让Win11右键默认显示更多设置教程!

Win11一键还原win10右键菜单&#xff1f;win11右键菜单怎么改&#xff1f;怎样让Win11右键默认显示更多选项&#xff1f;今天&#xff0c;我要给你们介绍一款专为Windows 11系统设计的小巧工具&#xff0c;它能让你的右键菜单瞬间回到Win10时代&#xff0c;那种熟悉的感觉&…

b端系统项目进度巡检设备物资劳务台账等OA前端UI设计开发

b端系统项目进度巡检设备物资劳务台账等OA前端UI设计开发

C++(构造和析构)

目录 1. 构造函数 1.1 概念 1.2 构造函数的分类 1.2.1 默认构造函数 1.2.2 带参数的构造函数 1.2.3 拷贝构造函数 1.2.4 移动构造函数 2. 析构函数 2.1 概念 3. 每期一问 3.1 上期答案 1. 构造函数 1.1 概念 在C中&#xff0c;构造函数&#xff08;Constructor&am…

Sqli-labs-maste靶场的下载、配置

目录 下载 配置 配置数据库 配置网站 初始化靶场 下载 GitHub下载地址&#xff1a; 百度网盘&#xff1a;https://pan.baidu.com/s/1jBcKkLzRV8q72rx_0AcznA?pwdxrsc 提取码&#xff1a;xrsc 迅雷链接&#xff1a;https://pan.xunlei.com/s/VNzC0-XAVysQYz4HufgYYze4A…

京东笔试-校招

2022京东数据分析笔试&#xff08;0821&#xff09; 一、选择题&#xff1a;30道 1.解决数据不平衡的方法主要有&#xff08;pca&#xff1f;&#xff09; 2.等频&#xff08;等宽&#xff09;划分问题 3.参数估计&#xff1a;矩估计与极大似然估计的用法&#xff0c;问题分…

将Java程序打包为为.exe文件

将Java程序打包为为.exe文件 将Java程序打包为为.exe文件分为俩个步骤&#xff1a; 1、将Java程序打包成Jar包&#xff08;此时就可复制桌面便于使用&#xff09; 2、打包为.exe文件&#xff08;需要借助工具&#xff09; 一、打包为.exe文件 1. file -> Project Structure…

【前端基础】CSS介绍|CSS选择器|常用CSS

目录 一、CSS介绍 1.1 什么是CSS 1.2 基本语法规范 1.3 引⼊⽅式 1.4 规范 &#x1f4a1;二、CSS选择器 1. 标签选择器 2. class选择器 3. id选择器 4. 复合选择器 5. 通配符选择器 三、常用CSS 3.1 color 3.2 font-size 3.3 border 3.4 width/height 3.5 padd…

关于gitee上传成功没有绿点

今天上传完代码以后&#xff0c;打开gitee看了一下&#xff0c;但是看到昨天和今天都没有小绿点&#xff0c;仔细思考了一番&#xff0c;是仓库满了&#xff1f;不对啊&#xff0c;如果满了的话&#xff0c;上传就会失败啊&#xff0c;那这是什么问题呢&#xff1f; 原来是因为…

CSS常用形状

文章目录 一、对话框二、无限符号三、放大镜四、月牙五、加号六、叉号七、标签八、圆角三角形九、普通三角形十、五角星&#x1f1e8;&#x1f1f3;十一、平行四边形十二、六边形十三、钻石十四、长方形折角效果 一、对话框 <div class"talk-bubble"></div&…

【Python】 Python多线程管理:如何优雅地结束一个线程

基本原理 在Python中&#xff0c;线程是程序执行的并行方式之一。然而&#xff0c;管理线程&#xff0c;特别是如何结束一个线程&#xff0c;对于初学者来说可能是一个挑战。Python标准库中的threading模块提供了创建和管理线程的基本工具&#xff0c;但是并没有提供一个直接的…

【优选算法】优先级队列 {经验总结:优先级队列解决TopK问题,利用大小堆维护数据流中的中位数;相关编程题解析}

一、经验总结 优先级队列&#xff08;堆&#xff09;&#xff0c;常用于在集合中筛选最值或解决TopK问题。 提示&#xff1a;对于固定序列的TopK问题&#xff0c;最优解决方案是快速选择算法&#xff0c;时间复杂度为O(N)比堆算法O(NlogK)更优&#xff1b;而对于动态维护数据流…

Linux——PXE_FTP_EL8

PXE Kickstart &#xff08; el8 &#xff09; 使用两个网口一个用net接口用于下载服务和软件包&#xff0c;另一个为仅主机用于与其他的空主机相连 PXE(preboot execute environment) 预启动执行环境。支持工作站通过网络从远端服务器下载映像&#xff0c;并由此支持通过网络启…

git常用功能使用介绍

文章目录 GIT特殊功能使用介绍1. git log 相关1.1 查看一个文件的修改历史记录&#xff1a;git log -p filename1.1.1 查看一个文件的所有改动历史记录&#xff1a;git log --prettyoneline 文件名1.1.2 查看这个文件的某次提交的改动记录(git show 提交的hash值 文件名) 1.2 查…

Diffusers代码学习-LoRA训练

LoRA&#xff08;Low-Rank Adaptation of Large Language Models&#xff09;是一种流行的轻量级训练技术&#xff0c;它显著减少了可训练参数的数量。它的工作原理是在模型中插入少量的新权重&#xff0c;并且只训练这些权重。这使得使用LoRA进行训练的速度更快、内存高效&…

1790java网络学习平台Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java网络学习平台系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

HTML静态网页成品作业(HTML+CSS)——VIVO介绍网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

[C][数据结构][时间空间复杂度]详细讲解

目录 0.铺垫1.时间复杂度 -- 衡量算法的运行快慢1.是什么&#xff1f;2.大O的渐进表示法 2.空间复杂度 - 衡量算法所需要的额外空间3.常见复杂度对比 0.铺垫 时间是累计的空间是不累计的&#xff0c;可以重复利用 1.时间复杂度 – 衡量算法的运行快慢 1.是什么&#xff1f; …

大模型卷出新高度|暴雨AI服务器M8878助解算力之困

当今世界&#xff0c;作为新一轮科技革命和产业革命的重要驱动力&#xff0c;AI已经成为“兵家必争之地”。我国也在政府报告中首次将“人工智能”行动纳入国家战略&#xff0c;开启了以人工智能为核心的数字经济高质量发展的新时代。 当今世界&#xff0c;作为新一轮科技革命…

盘点:中国智能物流装备头部企业的“业务地盘”,谁还不为自己护食?

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 随着中国市场对智能物流装备需求的不断增长&#xff0c;各大物流装备企业纷纷加大投入&#xff0c;拓展业务&#xff0c;形成各自的重点业务行业。以下是几家主要企业在智能物流装备领…