[转帖]放弃 ifconfig,拥抱 ip 命令

放弃,ifconfig,拥抱,ip,命令 · 浏览次数 : 0

小编点评

## Ifconfig 和 ip 命令对比 | 项 | ifconfig | ip | |---|---|---| | 语法 | `ifconfig eth0` | `ip a` | | 功能 | 网络接口配置 | 网络地址设置 | | 核心概念 | 网络栈 | IP 地址空间 | | 主要操作 | 设置、删除 IP 地址、启用/关闭组播 | 获取和设置 IP 地址、网络状态等 | | 优势 | 更多功能、更简洁 | 更现代、易于学习 | | 劣势 | 某些功能可能与 ip 相同或易错 | 学习曲线可能较长 | | 适用场景 | 网络管理、服务器配置 | 平凡用户配置 |

正文

https://linux.cn/article-13089-1.html

 

开始使用现代方法配置 Linux 网络接口。

在很长一段时间内,ifconfig 命令是配置网络接口的默认方法。它为 Linux 用户提供了很好的服务,但是网络很复杂,所以配置网络的命令必须健壮。ip 命令是现代系统中新的默认网络命令,在本文中,我将向你展示如何使用它。

ip 命令工作在 OSI 网络栈 的两个层上:第二层(数据链路层)和第三层(网络 或 IP)层。它做了之前 net-tools 包的所有工作。

安装 ip

ip 命令包含在 iproute2util 包中,它可能已经在你的 Linux 发行版中安装了。如果没有,你可以从发行版的仓库中进行安装。

ifconfig 和 ip 使用对比

ip 和 ifconfig 命令都可以用来配置网络接口,但它们做事方法不同。接下来,作为对比,我将用它们来执行一些常见的任务。

查看网口和 IP 地址

如果你想查看主机的 IP 地址或网络接口信息,ifconfig (不带任何参数)命令提供了一个很好的总结。

  1. $ ifconfig
  2. eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
  3. ether bc:ee:7b:5e:7d:d8 txqueuelen 1000 (Ethernet)
  4. RX packets 0 bytes 0 (0.0 B)
  5. RX errors 0 dropped 0 overruns 0 frame 0
  6. TX packets 0 bytes 0 (0.0 B)
  7. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  8. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  9. inet 127.0.0.1 netmask 255.0.0.0
  10. inet6 ::1 prefixlen 128 scopeid 0x10<host>
  11. loop txqueuelen 1000 (Local Loopback)
  12. RX packets 41 bytes 5551 (5.4 KiB)
  13. RX errors 0 dropped 0 overruns 0 frame 0
  14. TX packets 41 bytes 5551 (5.4 KiB)
  15. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  16. wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  17. inet 10.1.1.6 netmask 255.255.255.224 broadcast 10.1.1.31
  18. inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212 prefixlen 64 scopeid 0x0<global>
  19. inet6 fe80::8eb3:4bc0:7cbb:59e8 prefixlen 64 scopeid 0x20<link>
  20. ether 08:71:90:81:1e:b5 txqueuelen 1000 (Ethernet)
  21. RX packets 569459 bytes 779147444 (743.0 MiB)
  22. RX errors 0 dropped 0 overruns 0 frame 0
  23. TX packets 302882 bytes 38131213 (36.3 MiB)
  24. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

新的 ip 命令提供了类似的结果,但命令是 ip address show,或者简写为 ip a:

  1. $ ip a
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. valid_lft forever preferred_lft forever
  6. inet6 ::1/128 scope host
  7. valid_lft forever preferred_lft forever
  8. 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
  9. link/ether bc:ee:7b:5e:7d:d8 brd ff:ff:ff:ff:ff:ff
  10. 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
  11. link/ether 08:71:90:81:1e:b5 brd ff:ff:ff:ff:ff:ff
  12. inet 10.1.1.6/27 brd 10.1.1.31 scope global dynamic wlan0
  13. valid_lft 83490sec preferred_lft 83490sec
  14. inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212/64 scope global noprefixroute dynamic
  15. valid_lft 6909sec preferred_lft 3309sec
  16. inet6 fe80::8eb3:4bc0:7cbb:59e8/64 scope link
  17. valid_lft forever preferred_lft forever

添加 IP 地址

使用 ifconfig 命令添加 IP 地址命令为:

  1. $ ifconfig eth0 add 192.9.203.21

ip 类似:

  1. $ ip address add 192.9.203.21 dev eth0

ip 中的子命令可以缩短,所以下面这个命令同样有效:

  1. $ ip addr add 192.9.203.21 dev eth0

你甚至可以更短些:

  1. $ ip a add 192.9.203.21 dev eth0

移除一个 IP 地址

添加 IP 地址与删除 IP 地址正好相反。

使用 ifconfig,命令是:

  1. $ ifconfig eth0 del 192.9.203.21

ip 命令的语法是:

  1. $ ip a del 192.9.203.21 dev eth0

启用或禁用组播

使用 ifconfig 接口来启用或禁用 组播multicast:

  1. # ifconfig eth0 multicast

对于 ip,使用 set 子命令与设备(dev)以及一个布尔值和 multicast 选项:

  1. # ip link set dev eth0 multicast on

启用或禁用网络

每个系统管理员都熟悉“先关闭,然后打开”这个技巧来解决问题。对于网络接口来说,即打开或关闭网络。

ifconfig 命令使用 up 或 down 关键字来实现:

  1. # ifconfig eth0 up

或者你可以使用一个专用命令:

  1. # ifup eth0

ip 命令使用 set 子命令将网络设置为 up 或 down 状态:

  1. # ip link set eth0 up

开启或关闭地址解析功能(ARP)

使用 ifconfig,你可以通过声明它来启用:

  1. # ifconfig eth0 arp

使用 ip,你可以将 arp 属性设置为 on 或 off

  1. # ip link set dev eth0 arp on

ip 和 ipconfig 的优缺点

ip 命令比 ifconfig 更通用,技术上也更有效,因为它使用的是 Netlink 套接字,而不是 ioctl 系统调用。

ip 命令可能看起来比 ifconfig 更详细、更复杂,但这是它拥有更多功能的一个原因。一旦你开始使用它,你会了解它的内部逻辑(例如,使用 set 而不是看起来随意混合的声明或设置)。

最后,ifconfig 已经过时了(例如,它缺乏对网络命名空间的支持),而 ip 是为现代网络而生的。尝试并学习它,使用它,你会由衷高兴的!

与[转帖]放弃 ifconfig,拥抱 ip 命令相似的内容:

[转帖]放弃 ifconfig,拥抱 ip 命令

https://linux.cn/article-13089-1.html 开始使用现代方法配置 Linux 网络接口。 在很长一段时间内,ifconfig 命令是配置网络接口的默认方法。它为 Linux 用户提供了很好的服务,但是网络很复杂,所以配置网络的命令必须健壮。ip 命令是现代系统中新的默

[转帖]放弃 ifconfig,拥抱 ip 命令

开始使用现代方法配置 Linux 网络接口。 在很长一段时间内,ifconfig命令是配置网络接口的默认方法。它为 Linux 用户提供了很好的服务,但是网络很复杂,所以配置网络的命令必须健壮。ip命令是现代系统中新的默认网络命令,在本文中,我将向你展示如何使用它。 ip命令工作在OSI 网络栈的两

[转帖]我们为什么放弃 MongoDB 和 MySQL,选择 TiDB

https://zhuanlan.zhihu.com/p/164706527 写在前面的话 技术选型是由技术方向和业务场景 trade-off 决定的,脱离业务场景来说技术选型是没有任何意义的,所以本文只是阐述了伴鱼技术团队数据库选型的过程,这并不是 MySQL、MongoDB 和 TiDB 之间直

[转帖]LSM-Tree:从入门到放弃——入门:基本概念、操作和Trade-Off分析

https://zhuanlan.zhihu.com/p/428267241 LSM-Tree,全程为日志结构合并树,有趣的是,这个数据结构实际上重点在于日志结构合并,和 tree 本身的关系并不是特别大(除了各种可能的天外飞仙式的工程优化,一般来说只有 level0 采用了平衡树的结构) LSM-

[转帖]NGINX 局限太多,Cloudflare 最终放弃它并用 Rust 自研了全新替代品

https://www.infoq.cn/news/s2fa603MsEENsCmibTYI 长期以来,NGINX 可以说是网站安全和托管服务提供商 Cloudflare 的核心,是其所使用的基础软件的一部分。 “Cloudflare 将 NGINX 用于其提供的所有 Web 服务,并在世界各地的数

[转帖]19.awk报告生成器,文本解释器

在本博客中,AWK是一个系列文章,本人会尽量以通俗易懂的方式递进的总结awk命令的相关知识点。 awk系列博文直达链接:AWK命令总结之从放弃到入门 我们先来用专业的术语描述一下awk是什么,如果你看不懂,没关系,我们会再用”大白话”解释一遍。 awk是一个报告生成器,它拥有强大的文本格式化的能力,

[转帖]并发控制- sched_yield 函数

函数说明 函数原型 #include int sched_yield(void); 12 sched_yield的作用是让出处理器,调用时会导致当前线程放弃CPU,进程管理系统会把该线程放到其对应优先级的CPU静态进程队列的尾端,然后一个新的线程会占用CPU。详细说明可以查看ma

【转帖】TCP内核参数

https://www.cnblogs.com/chia/p/7799231.html tcp_syn_retries :INTEGER默认值是5对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言

[转帖]把SSH客户端放在网页上运行?这个开源项目教你部署实现

https://zhuanlan.zhihu.com/p/420301596 有时候为了管理服务器,又不想去下载各种各样的客户端,只是想在ipad、手机上操作一下,这款SSH开源客户端工具一定适合你,运行在网页端,只要有浏览器的设备就能访问使用。 环境准备 我们的主角依然是docker,采用最方便的

[转帖]传统CMR磁盘与SMR瓦叠磁盘区别

我们放大磁片表面,将它拉直,就会发现:写磁头写入的数据(绿色区域)很宽,而读磁头仅仅需要窄窄一条就能读取(橘色区域),现阶段技术无法将写磁头做小。这也就相当于磁片上一部分区域被浪费了,而且磁道与磁道中间也会有间隔 这就是传统的磁盘,也叫作CMR磁盘 从图中就可以轻易看出,传统CMR磁盘会浪费部分磁盘