前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子

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

原创
作者头像
民工哥
发布2024-01-03 20:54:36
1980
发布2024-01-03 20:54:36
举报

大家好,我是民工哥。

众所周知,在 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 命令

代码语言:javascript
复制
yum?install?-y?iproute
图片
图片
代码语言:javascript
复制
[root@CentOS7-1?~]#?ip?-V
ip?utility,?iproute2-ss170501
常用命令及参数介绍
代码语言:javascript
复制
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命令,下面一起来看看具体的操作。

查看网络接口信息
代码语言:javascript
复制
[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

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

代码语言:javascript
复制
[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
配置网络接口

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

代码语言:javascript
复制
ip?link?set?ens33?up
ip?link?set?ens33?down

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

代码语言:javascript
复制
ip?link?set?ens33?multicast?on
ip?link?set?ens33?multicast?off

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

代码语言:javascript
复制
ip?link?set?ens33?mtu?1500
ip?link?set?ens33?txqueuelen?1000
查看路由表
图片
图片

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

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

显示所有路由

代码语言:javascript
复制
[root@CentOS7-1?~]#?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

使用语法如下:

代码语言:javascript
复制
Usage:?ip?rule?[?list?|?add?|?del?]?SELECTOR?ACTION?

查看规则

代码语言:javascript
复制
ip?rule?show
图片
图片

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

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

代码语言:javascript
复制
ip?rule?add?xxxxx??xxxx?table?xxxx?prio?6666

添加规则,有两种方法:

  • 根据源IP地址
代码语言:javascript
复制
ip?rule?add?from?192.168.100.10?table?10??
ip?rule?add?from?192.168.100.0/24?table?20?
  • 根据目标IP地址
代码语言:javascript
复制
ip?rule?add?to?192.168.100.10?table?10??
ip?rule?add?to?192.168.100.0/24?table?20?

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

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

今天的分享就到这里了,如有帮助,欢迎一键三连(点赞、点在看、转发朋友圈)支持一下!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • net-tools 和 iproute2 的对比
  • 安装与使用
    • 安装
      • 使用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com