之前写的Linux必会100个命令中,ip命令看得人比价多。那就写个更详细的分享下。

ip命令格式:

ip options object {command | help}

options包括:

-V,显示版本

-h,符合人类阅读习惯显示输出

-f,-family {inet, inet6, link} 强制使用指定的协议族

-4,指定使用的网络层协议是IPv4协议
-6,指定使用的网络层协议是IPv6协议

-B,指定使用的网络层协议是Bridge协议

-D,指定使用的网络层协议是decnet协议

-M,指定使用的网络层协议是mpls协议

-0,指定使用的网络层协议是link协议

-i,指定使用的网络层协议是ipx协议

-d,输出更详细的信息

-o,-oneline,输出信息每条记录输出一行,即使内容较多也不换行显示

-r,-resolve,显示主机时,不使用IP地址,而使用主机的域名

-l,-loops,指定“ip地址刷新”的最大循环数。如果设置为0,那么将会一直尝试,直到所哟地址被移除。

-t,-timestamp,当使用监视器选项时,输出时间戳

-a,-all,执行指定命令给所有对象(如果命令支持这个选项)

-c,-color,使用颜色输出

ip command语法:

object包括:

address:网络设备的IP(v4或者v6)地址信息

link :网络设备信息

maddress:多播地址

mourte:组播路由缓存条目

monitor:监控网络链接消息

netns:管理网络命名空间

ntable:管理邻居表缓存操作

neighbour:邻居表

route:路由表

rule:IP策略

tunnel:IP隧道

tuntap:管理tun/tap设备

COMMAND包括:

add:新增

delete:删除

show(or list):显示

set:设置参数

----------------------------------------------------------------------------------------

address是最常用的option之一

ip address help 获得帮助信息

例1:显示当前IP地址信息

ip address  或  ip addr

例2:给设备enp0s8设置ip地址
ip addr add 192.168.1.200/24 dev enp0s8

例3:给设备enp0s8移除ip地址

ip addr delete 192.168.1.200/24 dev enp0s8

link是针对设备设置的option

例子1:启动一个网络设备

ip link set enp0s8 up

如图,两块网卡设备,初始状态一个up,一个down。执行命令后,enp0s8状态改变为UP。

例子2:开启混杂模式

ip link set dev enp0s8 promisc on

例子3:设置MTU值,即设置最大传输单元

ip link set enp0s8 mtu 1000

例子4:设置mac地址

ip link set enp0s8 address a0:0a:b0:0b:c0:0c 

如图显示,mtu值和link/ether值发生了变化

例子5:添加一对虚拟网卡

ip link add  r1-inside type veth peer name r1-outside

如图,第4和第5个设备是新添加的2个虚拟网卡

route是设置路由相关信息的option

例子1:添加一个缺省网关

ip route add default via  10.0.3.254  dev enp0s8

如图,添加一个新的网关。显示路由表做简要说明如下:

路由第一部分是一个IP或者IPv6地址,也可以跟着一个斜杠和掩码长度(如:192.168.0.0/24)。如果没有掩码长度,ip命令就假定是一个单一ip 地址。

dev 是关键字,其后面是网卡的名字

via 关键字,其后面是下一跳路由器的地址。其实就是网关IP。

metric 关键字,其后面跟一个数字,定义路由的优先值。

src 关键字,其后面跟一个IP地址,在向目的发送数据包时,选择的源地址。

proto关键字,其后面是IP地址设置的方式,如:static、dhcp,比较特殊的是kernel。

例子2:删除一个缺省网关

ip route deletedefault via  10.0.3.254  dev enp0s8

rule是策略路由相关的option

基于策略的路由比传统路由在功能上更强,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径。

在linux系统中,一条路由策略rule主要包含三个信息,即rule的优先级,条件,路由表。其中rule的优先级数字越小表示优先级越高,然后是满足什么条件下由指定的路由表来进行路由。在linux系统启动时,内核会为路由策略数据库配置三条缺省的规则,即rule 0,rule 32766, rule 32767(数字是rule的优先级,0优先级最高),如下:

在linux系统中是按照rule的优先级顺序依次匹配。假设系统中只有优先级为0,32766及32767这三条规则。那么系统首先会根据规则0在本地路由表里寻找路由,如果目的地址是本网络,或是广播地址的话,在这里就可以找到匹配的路由;如果没有找到路由,就会匹配下一个不空的规则,在这里只有32766规则,那么将会在主路由表里寻找路由;如果没有找到匹配的路由,就会依据32767规则,即寻找默认路由表;如果失败,路由将失败。

有3个默认的规则,在/etc/iproute2/rt_table中存储。

255 :local 本地路由表存有本地接口地址,广播地址,已及NAT地址. local表由系统自动维护..管理员不能操作此表...。

254:main 主路由表 传统路由表,ip route若没指定表亦操作表254.一般存所有的路由..

253:default  默认路由表一般存放默认路由...

进行路由时,正是根据路由规则来进行匹配,按优先级从高到低匹配,直到找到合适的规则.所以在应用中配置默认路由是必要的..

语法如下图:

SELECTOR具体参数如下:

From — 源地址
To — 目的地址(这里是选择规则时使用,查找路由表时也使用)
Tos — IP包头的TOS(type of sevice)域
Dev — 物理接口
Fwmark — 防火墙参数
ACTION动作:

Table 指明所使用的表
Nat 透明网关
Action prohibit 丢弃该包,并发送 COMM.ADM.PROHIITED的ICMP信息
Reject 单纯丢弃该包
Unreachable丢弃该包, 并发送 NET UNREACHABLE的ICMP信息

策略路由一般手工添加路由表,路由表的添加只需编辑rt_tables文件,规定表序号,表名即可..

例子:

ip rule add from 192.168.1.112/32 [tos 0x10] table 202 pref 999 prohibit 
ip rule add to 192.168.1.2 pref 1000 table 201
ip rule add from 192.168.1.0/24 pref 1001 table 201
ip rule add [from 0/0] table test1 pref 1003

写累了,以后再补充

Linux命令详解(2)ip命令相关推荐

  1. Linux命令详解之w命令

    Linux命令详解之w命令 1.命令详解 ··· NAMEw - Show who is logged on and what they are doing. w命令就是用来展示谁在登录,以及他们在做 ...

  2. linux下载命令 scp,linux命令详解之scp命令

    作用 scp命令常用于linux之间复制文件和目录. scp是secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令. 格式 从本地复制到远程 复制文件 sc ...

  3. Linux常用命令详解 ls -l命令详解

    Linux常用命令详解 ls -l命令详解 一.ls -l命令显示效果 使用ls -l会产生长列表格式输出,包含了目录中每个文件的更多的信息. 注:蓝色或/表示目录,如果带绿色或*号表示可执行文件. ...

  4. Linux命令详解:md5sum 命令

    Linux命令详解:md5sum 命令 一.md5 算法介绍 二.md5sum 命令使用说明 三.md5sum 命令帮助 四.md5sum 命令选项.参数 语法 选项 参数 五.md5sum 命令实战 ...

  5. linux命令chgrp,Linux命令详解之–chgrp命令 | Linux大学

    摘要 Linux chgrp命令 可以用来变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可. 我们在Linux命令详解之–chown命令 | Linux大学这篇文章中,我们介绍了更改文件 ...

  6. Touch命令详解【Shell命令】

    Touch命令详解[Shell命令] 创建一个文件shell命令:touch 文件名.文件扩展名 例如:touch hello.sh //创建一个名为hello的shell脚本文件

  7. linux vsftpd用法,Linux_LINUX系统下vsftpd 命令详解,FTP命令是Internet用户使用最频 - phpStudy...

    LINUX系统下vsftpd 命令详解 FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使用FTP,都会遇到大量的FTP内部命令. 熟悉并灵活应用FTP的内 ...

  8. VCS命令详解(一):编译命令

    VCS仿真命令详解 编译时候的命令(按字母排序) A B C D E F G H I J L M N O P Q R S T U V W Y 本文中所有命令基于VCS2014版 编译时候的命令(按字母 ...

  9. Nmap命令详解及常用命令总结

    Nmap学习 文章目录 Nmap学习 0 Nmap 介绍 1 Nmap命令详解 1.1 Nmap 命令help详解(内附中文翻译) 1.2 Nmap 命令思维导图 2 Nmap 常见使用场景以及相关命 ...

  10. android route命令详解,route cmd命令详解

    在本地 IP 路由表中显示和修改条目.使用不带参数的 route 可以显示帮助.接下来是小编为大家收集的route cmd命令详解,希望能帮到大家. route cmd命令详解 语法 route [- ...

最新文章

  1. Keras框架下的保存模型和加载模型
  2. 基于倒谱法、自相关法、短时幅度差法的基音频率估计算法(MATLAB及验证)
  3. codeforces 617A-C语言解题报告
  4. 去掉Mybatis Generator生成的一堆 example
  5. Java SpringMVC
  6. 文件系统与linux相关知识点
  7. windows10下安装tensorflow(gpu版本)
  8. android post数据到php服务器,通过post方法将数据上传到服务器Android Studio
  9. jquery 提交数据
  10. linux 编写java代码
  11. Windows Server 2008 R2 成功安装 Serv-U
  12. Linux salt
  13. oracle12c安装详解,Oracle12C安装教程
  14. Clang checker类总结
  15. 企业私有云资源规划及设计
  16. js按钮触发网页提醒_js实现按钮点击事件 在页面上点击函数,查看执行效果
  17. 信息安全 SEED Lab2 Shellshock Attack
  18. C++常用 math 函数
  19. Jenkins maven自动发布配置
  20. oracle11g 企业管理器无法登陆

热门文章

  1. 什么是DDD(领域驱动设计)?
  2. smartdns 部署最佳实践
  3. 数组排序和集合排序的使用
  4. iconfont图标引入方式
  5. 全国计算机绘图师第三期工业产品,工业产品类CAD技能等级考试试题集
  6. 机器学习技法06:支持向量回归(Support Vector Regression)
  7. MD5加密不可逆的原因
  8. 微信小程序使用彩色图标(阿里巴巴矢量图标库)(炒鸡详细)
  9. 安装imageai,tensorflow
  10. SVG互动排版公众号图文『一次点击,连续播放gif』模板代码