IP命令

IP命令

ip命令是Linux下较新的功能强大的网络配置工具。

1 功能

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道。

2用法

Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }

ip [ -force ] -batch filename

-force:不要终止批处理模式中的错误

-b:-batch filenam,从提供的文件或标准输入中读取命令并调用它们,第一次失败将导致IP终止

3参数与选项

OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |

tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |

netns | l2tp | tcp_metrics | token }

OPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] |

-r[esolve] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link }

| -4 | -6 | -I | -D | -B | -0 | -l[oops] { maximum-addr-flush-

attempts } | -o[neline] | -rc[vbuf] [size] | -t[imestamp] |

-ts[hort] | -n[etns] name | -a[ll] }

(1)OPTIONS

是一些修改ip行为或者改变其输出的选项,所有的选项都是以-字符开头,分为长、短两种形式:

-V :-Version打印ip的版本并退出

-h:    人类可读输出

-s: -stats –statistics,输出更多的信息,如果这个选项出现两次或以上,输出的信息将更为详尽

d:输出更多的细节信息

-l:指定”IP地址刷新”逻辑将尝试的最大循环数,默认为10

-f :-family 指定要使用的协议族,协议可以是一个inetinet6bridge, ipx, dnet or link

-4: 是 -family inet的简写

-6 :是 -family inet6的简写

-0 :是 -family link 的简写

-I: 是-family ipx的简写

-o:-oneline 单行输出,“”字符替换换行符

-n-netns交换机的IP到指定的网络空间netns

-r:-resolve 使用系统名称解析来打印DNS名称而不是主机地址

-t:使用监视器选项时显示当前时间

-a-all对所有对象执行指定的命令,这取决于命令是否支持这个选项

-rc-rcvbuf (size) 设置Netlink套接字接收缓冲区的大小设置,默认为1MB

(2)OBJECT

是你要管理或者获取信息的对象

OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |

tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |

netns | l2tp | tcp_metrics | token }

具体表示的含义:

link        网络设备

address     一个设备的协议(IP或者IPV6)地址

neighbour     ARP或者NDISC缓冲区条目

route        路由表条目

rule         路由策略数据库中的规则

maddress     多播地址

mroute     多播路由缓冲区条目

monitor    监控网络消息

mrule        组播路由策略数据库中的规则

tunnel         IP上的通道

l2tp        隧道以太网(L2TPV3)

注意:所有的对象名都可以简写,例如:address可以简写为addr,甚至是a。

4 修改IP地址

(1)增加IP地址

格式: ip addr add ADDRESS/MASK dev DEVICE

root@centos7 ~]# ip addr add 192.1.1.1/24 dev ens33

(2)删除IP地址

[root@centos7 ~]# ip addr del 192.1.1.1/24 dev ens34

5 查看网络信息

[root@centos7 ~]# ip address show
[……]
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:3a:00:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.29.3/24 brd 192.168.29.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3a:82/64 scope link
valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:3a:00:8c brd ff:ff:ff:ff:ff:ff
inet 192.1.1.1/24 scope global ens34
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3a:8c/64 scope link tentative
valid_lft forever preferred_lft forever

6 路由表的添加与删除

(1)添加路由表

格式:ip rouite add TARGET via GW

TARGET为目标网络或主机,GW为网关或吓一跳。

[root@centos7 ~]# ip route add 172.16.0.0/16 via 192.168.29.1

(2)删除路由表

[root@centos7 ~]# ip route del 172.16.0.0/16

(3) 显示路由表

格式:ip route show|list

[root@centos7 ~]# ip route list
default via 192.168.29.1 dev ens33 proto static metric 100
172.16.0.0/16 via 192.168.29.1 dev ens33
192.168.29.0/24 dev ens33 proto kernel scope link src 192.168.29.3 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
[root@centos7 ~]# ip route show
default via 192.168.29.1 dev ens33 proto static metric 100
172.16.0.0/16 via 192.168.29.1 dev ens33
192.168.29.0/24 dev ens33 proto kernel scope link src 192.168.29.3 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

(4)清空路由表

格式:ip route flush [dev IFACE] [via PREFIX]

[root@centos7 ~]# ip route flush dev ens33

(5)添加网关

格式:ip route add default via GW dev IFACE

[root@centos7 ~]# ip route add default via 192.168.29.1

7 实例

(1)显示网络设备的运行状态

[root@centos7 ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
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 qlen 1000
link/ether 00:0c:29:3a:00:82 brd ff:ff:ff:ff:ff:ff

(2)显示邻居表

[root@centos7 ~]# ip neigh list
192.168.29.1 dev ens33 lladdr 00:50:56:c0:00:01 REACHABLE

(3)查看网卡信息

[root@centos7 ~]# ip -s link list ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:3a:00:82 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
704554 4943 0 0 0 0
TX: bytes packets errors dropped carrier collsns
470814 3110 0 0 0 0

(4)改变最大传输队列长度

[root@centos7 ~]# ip link set dev ens33 txqueuelen 1500

(5)设置MTU

[root@centos7 ~]# ip link set ens33 mtu 1400

显示以上设置是否生效

[root@centos7 ~]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP mode DEFAULT qlen 1500
link/ether 00:0c:29:3a:00:82 brd ff:ff:ff:ff:ff:ff

可以看到mtu 和 qlen都已经生效

(6)关闭网络设备

[root@centos7 ~]# ip link set ens38 down
[root@centos7 ~]# ip link show ens38
4: ens38: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
link/ether 00:0c:29:3a:00:96 brd ff:ff:ff:ff:ff:ff

(7)开启网络设备

[root@centos7 ~]# ip link set ens38 up
[root@centos7 ~]# ip link show ens38
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:3a:00:96 brd ff:ff:ff:ff:ff:ff

原创文章,作者:linux is not unix,如若转载,请注明出处:http://www.178linux.com/74913

(1)
linux is not unixlinux is not unix
上一篇 2017-05-07 15:56
下一篇 2017-05-07 19:44

相关推荐

  • WORD文档格式要求与linux学习规划

    WORD文档格式要求 一、封面               1、活动名称(隶书,小初号字,加粗)               2、主办单位、策划日期(宋体、3号字) 二、目录    &nbs…

    Linux干货 2013-06-20
  • 内核编译

    下载内核并解压:tar -xvf linux-4.14.9.tar.xz -C ./linux/     接下来是    make   config  。 (具体参照    《make   config  的几种类型》) 一般采用  #  make   menuconfig   的方式 是这个样子的: 此处有可能需要几个包,选择最简单的y…

    2018-01-01
  • 马哥Linux学习之Linux背景和主要发行版篇

        Linux是一种 类Unix计算机操作系统的统称,简单的说来就是Linux内核+GNU工程的各种工具和数据库。Linux包括各种Linux的发行版,其实也就是为达到不同的目的而制作(目的包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用或嵌入式)的不同版本。     Linux的由来.…

    2015-03-19
  • 17 正则表达式及作业

    17 正则表达式及作业     因为正则表达式类型较多且比较重要,因此单独拿出一篇进行陈述。 正则表达式是各种文本处理工具的基础,也是shell编程必须牢牢掌握的知识,其重要性不言而喻。 一、杂项知识整理 1、一个[:space:]包括一个tab。 2、区分好文件名通配(globing)和文件内容通配(正则表达式)。 …

    Linux干货 2016-08-05
  • Bash Shell语法之三函数简介

     Bash Shell语法之三函数简介 一、什么是Bash函数 像其他编程语言一样,Shell 也支持函数。Shell函数必须先定义后使用。函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。 二、Bash函数定义格式 [ function ] fun () {     &nb…

    Linux干货 2015-05-11
  • M20 – 1- 第三周博客(2):Linux用户、组

    一、Linux用户组详解 Linux系统中的每个用户都有一个用户组,系统能对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于和他同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就对/etc/group文件的更新。 用户组(group)就是具…

    Linux干货 2016-08-05