大家好,我是民工哥。

众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了。但是今天我们不讨论与学习这个,来学习一个更强大的命令工具:iproute2。

别再用 ifconfig 啦!赶紧试试这个吧:iproute2 !

简介

Iproute2 是一个在 Linux 下的高级网络管理工具软件。实际上,它是通过 rtnetlink sockets 方式动态配置内核的一些小工具组成的,从 Linux2.2 内核开始,Alexey Kuznetsov 实现了通过 rtnetlink sockets 用来配置网络协议栈,它是一个现代的强大的接口。

Iproute2 之所以出现,是因为,之前一直以来,互联网上的一些不关联的网络工具都被打包进了 net-tools,随着时间的推移,很多工具都已经没有维护了。所以,才使用了新的名字 iproute2 来替代net-tools工具包。

目前iproute2工具包内的工具,它们使用方式都非常的相似,且统一开发维护,这样也便于用户灵活的运用工具包内的工具。

net-tools 和 iproute2 的对比

安装与使用

安装

centos 安装 iproute2 命令

yum install -y iproute

[root@CentOS7-1 ~]# ip -Vip utility, iproute2-ss170501
常用命令及参数介绍
ip link  #网络设备配置命令,如:启用/禁用某个网络设备,改变mtu及mac地址等
ip addr  #管理某个网络设备与协议 (IP或IPv6) 有关的地址,与ip link类似
ip addrlabe  #IPV6的地址标签,
ip route #管理路由· 如添加,删除等
ip rule  #管理路由策略数据库
ip neigh #用于neighbor/ARP表的管理
ip tunnel #隧道配置
ip maddr  #多播地址管理
ip mroute  #多播路由管理
ip monitor #状态监控
ip xfrm  #配置xfrm 

使用

查看arp缓存表

iproute2的核心命令是ip命令,下面一起来看看具体的操作。

查看网络接口信息
[root@CentOS7-1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:25:62:6f brd ff:ff:ff:ff:ff:ff

上面是查看所有的网络接口信息,也可以查看指定的接口信息:

[root@CentOS7-1 ~]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:25:62:6f brd ff:ff:ff:ff:ff:ff
配置网络接口

通过使用以下命令来打开或关闭网络接口:

ip link set ens33 up
ip link set ens33 down

还可以使用 ip link 子命令来配置网络接口的属性。比如,如果你想打开或关闭网络接口的多播标志:

ip link set ens33 multicast on
ip link set ens33 multicast off

还可以通过下面的命令来修改 MTU 和分组队列的长度:

ip link set ens33 mtu 1500
ip link set ens33 txqueuelen 1000
查看路由表

linux 系统中,可以自定义从 1-252个路由表,其中,linux系统维护了4个路由表:

0: #系统保留表
253: #defulte table 没特别指定的默认路由都放在改表
254: #main table 没指明路由表的所有路由放在该表,**默认表**
255: #locale table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

显示所有路由

[root@CentOS71 ~]# ip route
default via 192.168.1.1 dev ens33 proto static metric 100 
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100 metric 100

路由策略 ip rule

使用语法如下:

Usage: ip rule [ list | add | del ] SELECTOR ACTION 

查看规则

ip rule show

上图所显示内容的第一个字段就是优先级别(prio),数字越小,代表优先级别越高,也代表这条规则越靠前。比如:在进行对数据包条件匹配时,优先级高的就越早被匹配到。从输出的数据中可以看出,默认优先级别 0、32766 及 32767 已被占用。

所以,如果在添加规则时没有特别指定prio优先,默认就是从32766开始向下递减,也就是说从32765开始,如需指定,可以使用下面的命令:

ip rule add xxxxx  xxxx table xxxx prio 6666

添加规则,有两种方法:

  • 根据源IP地址
ip rule add from 192.168.100.10 table 10  
ip rule add from 192.168.100.0/24 table 20 
  • 根据目标IP地址
ip rule add to 192.168.100.10 table 10  
ip rule add to 192.168.100.0/24 table 20 

ip route还可以结合iptables做高级路由策略,比如给数据包打上标记等等。

这个工具包的功能十分强大,有兴趣的读者可以自行体验,也欢迎大家积极分享你在工作中所使用的好用、实用的工具、命令。

别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子的更多相关文章

  1. JS魔法堂:属性、特性,傻傻分不清楚

    一.前言 或许你和我一样都曾经被下面的代码所困扰 var el = document.getElementById('dummy'); el.hello = "test"; con ...

  2. MVP MVC MVVM 傻傻分不清

    最近MVC (Model-View-Controller) 和MVVM (Model-View-ViewModel) 在微软圈成为显学,ASP.NET MVC 和WPF 的Prism (MVVM Fr ...

  3. Java:接口和抽象类,傻傻分不清楚?

    01. 来看网络上对接口的一番解释: 接口(英文:Interface),在 Java 编程语言中是一个抽象类型,是抽象方法的集合.一个类通过继承接口的方式,从而来继承接口的抽象方法. 兄弟们,你们怎么 ...

  4. OCA,OCP,OCM傻傻分不清?

    可能大家知道OCA.OCP.OCM的关系是一个比一个难考,一个比一个含金量高,但是你知道具体的考试科目.考试方式.就业形势区别吗?不知道的话这篇通俗易懂的文章会让你一目了然. 区别一:含金量 ■OCA ...

  5. 【华为敏捷/DevOps实践】7. 敏捷,DevOps,傻傻不分清楚【华为云技术分享】

    文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 敏捷是什么?DevOps是什么?两者有什 ...

  6. 傻傻分不清之 Cookie、Session、Token、JWT

    傻傻分不清之 Cookie.Session.Token.JWT 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打 ...

  7. URI与URL傻傻分不清楚?

    前言 总所周知,缓存是解决Http1.1协议传输性能的问题中最主要的手段. 缓存既可以存在于浏览器上,也可以存在于服务器中. 而影响缓存的Http头部有很多,其中Cache-Control是比较重要的 ...

  8. 【jvm】08-垃圾回收器那么多傻傻分不清?

    [jvm]08-垃圾回收器那么多傻傻分不清? 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点 ...

  9. JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的理由!

    序言 Spring Data JPA作为Spring Data中对于关系型数据库支持的一种框架技术,属于ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度. 本文档隶属于< ...

  10. cookie、session,、token,还在傻傻分不清?

    摘要:session 和 token 本质上是没有区别的,都是对用户身份的认证机制,只是他们实现的校验机制不一样而已. 本文分享自华为云社区<Session/Cookie/Token 还傻傻分不 ...

随机推荐

  1. 运行在容器中Postgres数据库数据损坏后如何恢复?

    前言 在使用 K8S 部署 RSS 全套自托管解决方案- RssHub + Tiny Tiny Rss, 我介绍了将 RssHub + Tiny Tiny RSS 部署到 K8s 集群中的方案. 其中 ...

  2. How to install Django¶

    This document will get you up and running with Django. Install Python Being a Python Web framework, ...

  3. 在线问诊 Python、FastAPI、Neo4j — 提供咨询接口服务

    目录 构建服务层 接口路由层 PostMan 调用 采用 Fast API 搭建服务接口: https://www.cnblogs.com/vipsoft/p/17684079.html Fast A ...

  4. 基于ZXing.NET实现的二维码生成和识别客户端

    一.前言 ZXing.Net的一个可移植软件包,是一个开源的.多格式的1D/2D条形码图像处理库,最初是用Java实现的.已经过大量优化和改进,它已经被手动移植.它与.Net 2.0..Net 3.5 ...

  5. js 实现文件下载/文件导出。

    1. POST方式进行文件导出: // url 下载URL // fileName 下载文件名称 function exportFile(url, fileName) { let xhr = new ...

  6. MySQL锁:InnoDB行锁需要避免的坑

    前言 换了工作之后,接近半年没有发博客了(一直加班),emmmm.....今天好不容易有时间,记录下工作中遇到的一些问题,接下来应该重拾知识点了.因为新公司工作中MySQL库经常出现查询慢,锁等待,节 ...

  7. C/C++ extern “C“ 的问题

    声明 文章中的部分代码引用来在: https://blog.csdn.net/u012234115/article/details/43272441 场景 今天在CSDN中看到了一篇关于 extern ...

  8. TIOBE 11月榜单:Java和 C# 之间的差距缩小到0.7

    TIOBE 公布了 2023 年 11 月的编程语言排行榜. 虽然这期重点介绍的是Kotlin,本月,它的排名上升了 0.17%,从第 18 位上升到第 15 位,前进了 3 位. TIOBE的10月 ...

  9. AcWing 168. 生日蛋糕

    原题链接:AcWing 168. 生日蛋糕 设当前体积是\(v,h.r\)分别记录每层的高度和半径,由于整个蛋糕的上表面面积等于最大蛋糕的圆面积,所以枚举到最大一层的时候直接加上即可. 优化搜索顺序: ...

  10. Unity学习笔记--数据持久化之PlayerPrefs的使用

    数据持久化 PlayerPrefs相关 PlayerPrefs是Unity游戏引擎中的一个类,用于在游戏中存储和访问玩家的偏好设置和数据.它可以用来保存玩家的游戏进度.设置选项.最高分数等信息.Pla ...