ip address命令

用法

ip [ OPTIONS ] address  { COMMAND | help }

ip address { add | del } IFADDR dev STRING

ip address { show | flush } [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]

    IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ]

    SCOPE-ID := [ host | link | global | NUMBER ]

    FLAG-LIST := [ FLAG-LIST ] FLAG

    FLAG := [ permanent | dynamic | secondary | primary | tentative |deprecated | dadfailed | temporary ]
  • dev STRING:指定要进行操作的网络设备名称

  • IFADDR:协议地址,地址的格式由使用的协议所决定,比如在ipv4协议中,地址的格式为用小数点分隔的四个十进制数,后面可以用/连接子网掩码的位数,比如192.168.1.100/24。

  • peer address:使用点对点连接时对端的协议地址。

  • broadcast address:协议广播地址,可以简写成brd,此外可以简单的在后面加上“+”表示广播地址由协议地址主机位全置1组成,“-”则表示主机位全置0。

  • label:装置的别名,为了和linux 2.0中的别名相兼容,该标志由该网络设备名称开头,后面用“:”接上地址名称,比如eth0:3等等。

  • scope:地址作用范围,可能的值有:

    • global:允许来自所有来源的连接,加IP时,默认值

    • site:仅支持 IPv6 ,仅允许本主机的连接

    • link:仅允许本装置自我连接

    • host:仅允许本主机内部的连接

ip addr show显示IP信息

IPV4中,有Primary address和Secondary address之分,如下使用ip -o -4 addr show dev eth0 secondary就只会显示子IP地址。

标志:

  • secondary:为输出的数据包选择默认源地址时,内核不使用这个地址。如果一个设备已经有了一个地址,又给它设置了同一网段的不同地址,第二个地址就成为从(secondary)地址。例如:eth0已经有一个地址192.168.1.108/24 ,如果又给它一个地址192.168.1.3/24,192.168.1.3/24 的就会被内核标记为从地址。

  • dynamic:这个地址是通过无状态的自动配置建立的(stateless autoconfiguration)。如果地址仍然有效,在输出中,还包括两个时间信息。preferred_lft 期满后,地址就会变成deprecated状态;valiid_lft期满后,地址将失效。

  • deprecated:这个地址是不允许的,也就是说,地址虽然有效,但是不能使用它建立新的连接。

  • tentative:由于重复地址监测还没有完成或者监测失败,这个地址不能使用。

Primary与Secondary的区别:

  • 在每一个接口上可以配置多个Primary地址和多个Secondary地址。

  • 对一个特定的网络掩码(例子中的网络掩码为/24),只能有一个Primary地址。

  • 当删除一个Primary地址时,所有相关的Secondary地址也被删除。但通过/proc可以配置一个选项,在当前Primary地址被删除时可以将Secondary地址提升为Primary地址。

  • 当主机为本地生成的流量选择源IP地址时,只考虑Primary地址。

valid_lft为地址的有效使用期限,preferred_lft是地址的首选生存期。

如果想实现主用IP删除时,辅助IP自动转成主用IP,可以使用promote_secondaries=1,其使用就是晋升辅助ip地址。

另外,ip alias和secondary ip address是两种不同的实现方式,用来在Linux系统中给同一个物理网卡增加多个ip地址。ip alias是由ifconfig程序来创建和维护的,而secondary ip address则是有ip程序来创建和维护的。ip addr add 创建的scondary ip address不能在ifconfig -a中看到,反过来,ifconfig创建的ethX:Y却能在ip addr show中看到。

http://blog.chinaunix.net/uid-24148050-id-3045244.html

ip addr add添加IP

如上,添加了2个同段IP之后,第二个IP198.19.128.21就显示为secondary的IP了。

删除IP

  • 删除指定的IP:ip addr del 198.19.128.20/24 dev eth0

  • 删除所有的IP:ip address flush

  • 删除以eth0开头的IP:ip -4 addr flush label "eth*"

  • 删除动态的IPV6的IP:ip -6 addr flush dynamic

https://www.west.cn/www/info/18325-1.htm

Linux网卡包计数器清零(卸载/重加载驱动):https://blog.csdn.net/u013908944/article/details/79665223

重置linux网卡流量统计:https://hqidi.com/45.html

Last updated

Was this helpful?