Ban*_*uin 12 networking iproute
我一直在摆弄 IPv6 和地址生命周期。我发现valid_lft
如果使用得当,该属性将使 v6 地址自动消失。为了延长地址的生命周期,我会
ip addr change 1:2:3:4::1/112 dev eth0 valid_lft 86000
Run Code Online (Sandbox Code Playgroud)
的使用ip addr change
没有出现在我可以访问的任何手册页(Debian、Ubuntu 和在线)中,也没有出现在官方文档中。我在一篇文章中找到的提到 2009 年发给 ipv6-ops 邮件列表的电子邮件。
从我可以确定的情况来看,我想总是可以使用ip addr change
而不是ip addr add
,因为如果地址不存在,ip
则会添加一个,就像ip addr add
使用过一样。
这是正确的,即,任何人都可以解释ip addr change
它的确切作用以及它与 的区别ip addr add
吗?
当您不确定某事做了什么,并且文档没有说明时,您可以找到来源,即第 1588 行:
if (matches(*argv, "change") == 0 ||
strcmp(*argv, "chg") == 0)
return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);
Run Code Online (Sandbox Code Playgroud)
那么,它有什么作用呢?返回运行第1379 行定义的ipaddr_modify()
函数的结果,参数为和。RTM_NEWADDR
NLM_F_REPLACE
从我可以确定的情况来看,我想总是可以使用
ip addr change
而不是ip addr add
,因为如果地址不存在,ip
则会添加一个,就像ip addr add
使用过一样。这是正确的,即,任何人都可以解释
ip addr change
它的确切作用以及它与 的区别ip addr add
吗?
不,add
将创建或执行给定的参数(如果有的话),而change
将查找参数并替换它。
顺便说一句,replace
似乎是两者之间的妥协add
,change
因为它使用了混合的论据。