首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux--ip命令(上)

linux--ip命令(上)

原创
作者头像
陈不成i
修改2021-05-26 14:21:59
修改2021-05-26 14:21:59
4.4K00
代码可运行
举报
文章被收录于专栏:ops技术分享ops技术分享
运行总次数:0
代码可运行

这是一个极其强大的命令,前面所有的网络信息显示和管理的命令,都可以由ip命令来替代完成。它是一个严格模式化的命令。

获取ip命令的帮助

先简单说明下ip命令的基础和获取帮助的方法。

  1. [root@xuexi ~]# ip -h
  2. Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
  3. ip [ -force ] -batch filename
  4. where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
  5. tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
  6. netns | l2tp | tcp_metrics | token }
  7. OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
  8. -h[uman-readable] | -iec |
  9. -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
  10. -4 | -6 | -I | -D | -B | -0 |
  11. -l[oops] { maximum-addr-flush-attempts } |
  12. -o[neline] | -t[imestamp] | -b[atch] [filename] |
  13. -rc[vbuf] [size] | -n[etns] name | -a[ll] }

可见命令非常复杂,有很多options,还有很多object,每个Object又对应不同的命令。但其实能用到的就几个object:addr/route/neigh/link。

使用ip object help可以获取到该object的语法帮助。例如:

  1. [root@xuexi ~]# ip addr help

在ip命令行下,任何object都可以写其全名,也可以写其缩写名,例如address这个object,可以简写为addr,也可以简写为一个字母a。

  1. [root@xuexi ~]# ip a help # 等价于ip address help和ip addr help

尽管还有一个a开头的object为addrlabel。这时因为ip会从上述语法给出的object顺序从前向后匹配,例如”ip m”将匹配到”ip maddr”,如果想匹配别的,如addrlabel,则写长一点即可”ip addrl”。

对于CentOS 6,man ip时会输出整个ip的帮助文档,包括每个object的命令和说明。在CentOS 7中,则要对每个object独立进行man,例如addr这个object。

  1. [root@xuexi ~]# man ip-address

以下是所有Object的man列表。

  1. [root@xuexi ~]# rpm -ql iproute | grep "man8/ip-"
  2. /usr/share/man/man8/ip-address.8.gz
  3. /usr/share/man/man8/ip-addrlabel.8.gz
  4. /usr/share/man/man8/ip-l2tp.8.gz
  5. /usr/share/man/man8/ip-link.8.gz
  6. /usr/share/man/man8/ip-maddress.8.gz
  7. /usr/share/man/man8/ip-monitor.8.gz
  8. /usr/share/man/man8/ip-mroute.8.gz
  9. /usr/share/man/man8/ip-neighbour.8.gz
  10. /usr/share/man/man8/ip-netconf.8.gz
  11. /usr/share/man/man8/ip-netns.8.gz
  12. /usr/share/man/man8/ip-ntable.8.gz
  13. /usr/share/man/man8/ip-route.8.gz
  14. /usr/share/man/man8/ip-rule.8.gz
  15. /usr/share/man/man8/ip-tcp_metrics.8.gz
  16. /usr/share/man/man8/ip-token.8.gz
  17. /usr/share/man/man8/ip-tunnel.8.gz
  18. /usr/share/man/man8/ip-xfrm.8.gz

ip addr

ip addr用于管理网络设备上的ip地址,也可以查看ip地址的属性信息。在老版本的Linux中,一块网卡上设置多个IP,这些IP称为别名IP,但是从CentOS 6开始,这些IP称为secondary IP或slave IP,因为这些IP自身也可以附带属性。

(1).ip addr add/del

  1. ip address { add | del } IFADDR dev STRING
  2. IFADDR := PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ]
  3. 以add为例:
  4. dev NAME:指定要设置IP地址的网卡
  5. local ADDRESS (default):接口的IP地址。IP地址的格式依赖于是ipv4还是ipv6。对于ipv4而言,给定地址,可能还需要给定cidr的掩码位长度
  6. broadcast ADDRESS:接口的广播地址
  7. label NAME:为该接口的IP地址设置label名,label名称必须以网络接口名开头后接冒号,如eth0:X
  8. del和add的参数相同,且dev是必须要给定的,其余的参数可选,因为del的时候是通配del,如果删除时有多个满足条件的条目,则删除第一个条目。

例如:

  1. [root@xuexi ~]# ip addr add 192.168.100.45 dev eth0
  2. [root@xuexi ~]# ip addr add 192.168.100.35/24 dev eth1

此方式添加的地址不会在ifconfg命令中显示,ifconfg能捕捉到的是别名,所以可以为地址加上label,以让secondary被ifconfig查看到。例如:

代码语言:javascript
代码运行次数:0
运行
复制
[root@xuexi ~]# ip addr add 192.168.100.45 dev eth0 label eth0:0

要删除ip,则简单的多,但必须指定dev,且最好也指定cidr的掩码长度。

代码语言:javascript
代码运行次数:0
运行
复制
[root@xuexi ~]# ip addr del 192.168.100.45 dev eth0[root@xuexi ~]# ip addr del 192.168.100.35/24 dev eth1

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取ip命令的帮助
  • ip addr
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档