zoukankan      html  css  js  c++  java
  • ip

    ip 功能说明: 网络配置工具
    ip命令是iproute软件包中的一个强大的网络配置工具,用于显示或管理Linux系统的路由、网络设备、策略路由和隧道。
    CentOS7开始推广ip命令,用于替代传统的ifconfig和route命令
     
    语法格式:
    ip [选项]  [网络对象]  [操作命令]
    
    参数选项
    -s          输出更详细的信息,为了显示更详细的信息,可重复使用此选项
    -r          显示主机时,不使用IP地址,而是使用主机的域名
    网络对象    指定要管理的网络对象,支持的网络对象如下:
                link        网络设备
                address     设备的协议地址(IP地址)
                addrlabel   协议地基标签管理
                neighbour   arp或ndisc缓存表
                roue        路由表
                rule        策略路由表
                maddress    多播地址
                mroute      多播路由缓存表
                tunnel      IP隧道
                xfrm        IPsec协议框架
    
    这里有一个有趣的用法,比如 ip address 可以简写为 ip addr 或者最简化 ip a,它们的效果是一样的,其他对象也是如此
    
    操作命令    对指定的网络对象完成的具体操作。通常,每一个具体操作的命令后面又有一组相关的命令选项。
                不同的操作对象所支持的操作命令也不同。下面按照操作的网络对象给出所支持的常见操作命令。 
            link         对象支持的操作命令:set(修改设备属性)、show(显示设备属性);
            address      对象支持的操作命令:add(添加协议地址)、del(测除协议地址)、flush(清除协议地址)、show(查看协议地址);
            addrlabel    对象支持的操作命令:add、del、list、flush;
            neighbour    对象支持的操作命令:add、change、replace、delete、show、flush;
            route        对象支持的操作命令:add,change、replace、delete、show、flush、get;
            rule         对象支持的操作命今:add、delete、flush、show;
            maddress     对象支持的操作命令:show、add、delete;
            mroute       对象支持的操作命令:show;
            tunnel       对象支持的操作命令:add、change、delete,prl、show;
            xfrm         对象支持的操作命令:state、policy、monitor。
    
    说明:
    1)show命令用于显示指定设备的信息,加果后面不接设备名,剩会显示所有设备的信息。例如ip a和ip a show的结果是一样的。
    2)操作命令也可以简写,比如ip a show 可以简写为ip a s
    
    
    范例:显示网络设备属性
    [root@cs6 ~]# ip link show dev eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:8c:6a:0e brd ff:ff:ff:ff:ff:ff
    
    [root@cs6 ~]# ip -s link show dev eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:8c:6a:0e brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast   
        0          0        0       0       0       0       
        TX: bytes  packets  errors  dropped carrier collsns 
        828        12       0       0       0       0       
    [root@cs6 ~]# ip -s -s link show dev eth1  # 使用两个s显示更详细的属性
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:8c:6a:0e brd ff:ff:ff:ff:ff:ff
        RX: bytes  packets  errors  dropped overrun mcast   
        0          0        0       0       0       0       
        RX errors: length   crc     frame   fifo    missed
                   0        0       0       0       0       
        TX: bytes  packets  errors  dropped carrier collsns 
        828        12       0       0       0       0       
        TX errors: aborted  fifo   window heartbeat
                   0        0       0       0       
     
    
    范例:关闭和激活设备
    [root@cs6 ~]# ip link show dev eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:8c:6a:0e brd ff:ff:ff:ff:ff:ff
    [root@cs6 ~]# ip link set eth1 down
    [root@cs6 ~]# ip link show dev eth1
    3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:0c:29:8c:6a:0e brd ff:ff:ff:ff:ff:ff
    
     
    
    范例:修改MAC地址
    [root@cs6 ~]# ip link show dev eth1
    3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:0c:29:8c:6a:0e brd ff:ff:ff:ff:ff:ff
    [root@cs6 ~]# ip link set eth1 address 0:0c:29:13:10:11  #<=修改MAC地址
    [root@cs6 ~]# ip link show dev eth1
    3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
    
     
     
    范例:查看网卡信息
    [root@cs6 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:8c:6a:04 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.100/24 brd 10.0.0.255 scope global eth0
        inet6 fe80::20c:29ff:fe8c:6a04/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.100/24 brd 172.16.1.255 scope global eth1
    [root@cs6 ~]# ip link
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:8c:6a:04 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
    
     
    
    
    范例:添加或删除IP地址
    [root@cs6 ~]# ip a show eth1 
    3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.100/24 brd 172.16.1.255 scope global eth1
    [root@cs6 ~]# ip link set eth1 up
    [root@cs6 ~]# ip link show dev eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
    
    [root@cs6 ~]# ip a add 172.16.1.13/24 dev eth1
    # 可以添加多个IP地址,这种称为辅助IP,前面ifconfig 命令创建的为别名称IP.现在采用的高可用软件诶heartbeat 、keepalive都采用了辅助IP
    [root@cs6 ~]# ip a show eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.100/24 brd 172.16.1.255 scope global eth1
        inet 172.16.1.13/24 scope global secondary eth1
        inet6 fe80::20c:29ff:fe13:1011/64 scope link 
           valid_lft forever preferred_lft forever
    
    [root@cs6 ~]# ip a del 172.16.1.100/24 dev eth1 # 删除主IP
    [root@cs6 ~]# ip a show eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::20c:29ff:fe13:1011/64 scope link 
           valid_lft forever preferred_lft forever
    #IP地址全部被删除
    
    [root@cs6 ~]# ip a add 172.16.1.100/24 dev eth1
    [root@cs6 ~]# ip a add 172.16.1.13/24 dev eth1
    [root@cs6 ~]# ip a del 172.16.1.13/24 dev eth1
    [root@cs6 ~]# ip a show eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.100/24 scope global eth1
        inet6 fe80::20c:29ff:fe13:1011/64 scope link 
           valid_lft forever preferred_lft forever
    
    说明:
    删除网卡的主IP地址,同时会删除该网卡的所有IP地址。
    删除网卡的辅助IP地址,不会影响该网卡的其他IP地址。
    
     
    
    范例:使用ip命令创建别名IP
    [root@cs6 ~]# ip a show eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.100/24 scope global eth1
        inet6 fe80::20c:29ff:fe13:1011/64 scope link 
           valid_lft forever preferred_lft forever
    使用label选项创建别名IP
    [root@cs6 ~]# ip a add 10.0.0.29/32 dev eth1 label eth1:1
    [root@cs6 ~]# ip a show eth1
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:13:10:11 brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.100/24 scope global eth1
        inet 10.0.0.29/32 scope global eth1:1
        inet6 fe80::20c:29ff:fe13:1011/64 scope link 
           valid_lft forever preferred_lft forever
    [root@cs6 ~]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:8C:6A:04  
              inet addr:10.0.0.100  Bcast:10.0.0.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:2876 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1835 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:266051 (259.8 KiB)  TX bytes:198053 (193.4 KiB)
    
    eth1      Link encap:Ethernet  HWaddr 00:0C:29:13:10:11  
              inet addr:172.16.1.100  Bcast:0.0.0.0  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe13:1011/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 b)  TX bytes:1296 (1.2 KiB)
    
    eth1:1    Link encap:Ethernet  HWaddr 00:0C:29:13:10:11  
              inet addr:10.0.0.29  Bcast:0.0.0.0  Mask:255.255.255.255
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
    
    备注:使用ifconfig命令创建的别名IP,ip命令能够查询到;
    相反,通过ip命今创建的辅助IP,ifconfig命令则查询不了,除非使用ip命令的label功能创建别名IP。
    
    
    
    范例:查看路由表
    [root@cs6 ~]# ip route
    10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.100 
    172.16.1.0/24 dev eth1  proto kernel  scope link  src 172.16.1.100 
    169.254.0.0/16 dev eth0  scope link  metric 1002 
    default via 10.0.0.2 dev eth0 
    
    [root@cs6 ~]# ip route|column -t
    10.0.0.0/24     dev  eth0      proto  kernel  scope   link  src  10.0.0.100
    172.16.1.0/24   dev  eth1      proto  kernel  scope   link  src  172.16.1.100
    169.254.0.0/16  dev  eth0      scope  link    metric  1002
    default         via  10.0.0.2  dev    eth0
    #<==使用column命令格式化,选项-t,默认根据空格分隔判断输入行的到数来创建一个表。
    
    [root@cs6 ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
    172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0
    
    添加静态路由
    [root@cs6 ~]# ip route add 10.1.0.0/24 via 10.0.0.253 dev eth0
    [root@cs6 ~]# ip route |column -t
    10.0.0.0/24     dev  eth0        proto  kernel  scope   link  src  10.0.0.100
    172.16.1.0/24   dev  eth1        proto  kernel  scope   link  src  172.16.1.100
    10.1.0.0/24     via  10.0.0.253  dev    eth0
    169.254.0.0/16  dev  eth0        scope  link    metric  1002
    default         via  10.0.0.2    dev    eth0 
    
    
    
    范例:查看ARP缓存
    [root@cs6 ~]# ip neighbour
    10.0.0.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
    10.0.0.2 dev eth0 lladdr 00:50:56:f4:fb:52 STALE
    10.0.0.99 dev eth0  FAILED
    
    
    
    范例:添加或删除静态ARP项
    [root@cs6 ~]# ip neighbour add 192.168.1.100 lladdr 00:50:56:f4:fb:55 dev eth0
    [root@cs6 ~]# ip neighbour
    192.168.1.100 dev eth0 lladdr 00:50:56:f4:fb:55 PERMANENT
    10.0.0.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
    10.0.0.99 dev eth0  FAILED
    10.0.0.2 dev eth0 lladdr 00:50:56:f4:fb:52 STALE
    
    [root@cs6 ~]# ip neighbour del 192.168.1.100 dev eth0
    [root@cs6 ~]# ip neighbour
    192.168.1.100 dev eth0  FAILED
    10.0.0.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
    10.0.0.99 dev eth0  FAILED
    10.0.0.2 dev eth0 lladdr 00:50:56:f4:fb:52 STALE
    
     


  • 相关阅读:
    leetcode题解:Search in Rotated Sorted Array(旋转排序数组查找)
    leetcode 题解:Remove Duplicates from Sorted Array II(已排序数组去三次及以上重复元素)
    leetcode 题解:Remove Duplicates from Sorted Array(已排序数组去重)
    leetcode题解:Tree Level Order Traversal II (二叉树的层序遍历 2)
    leetcode 题解:Binary Tree Level Order Traversal (二叉树的层序遍历)
    c++ STL:队列queue、优先队列priority queue 的使用
    leetcode题解:Binary Tree Postorder Traversal (二叉树的后序遍历)
    算术表达式解析(第三版)词法分析版
    经典算法:牛顿迭代法求平方根
    进入游戏行业1年的总结
  • 原文地址:https://www.cnblogs.com/l10n/p/14184805.html
Copyright © 2011-2022 走看看