目前我有以下与eth0接口关联的 IPv4 地址:
T60:~ # ip -V
ip utility, iproute2-ss110629
T60:~ # ip addr show dev eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:15:58:2a:84:3e brd ff:ff:ff:ff:ff:ff
inet 10.11.12.2/24 scope global eth0
inet 10.11.12.3/24 scope global secondary eth0
inet 10.11.12.4/24 scope global secondary eth0
inet6 fe80::215:58ff:fe2a:843e/64 scope link
valid_lft forever preferred_lft forever
T60:~ #
我想将 10.11.12.3/24 地址替换或更改为 10.11.12.6/24。这个怎么做?如果我执行ip addr change 10.11.12.6/24 dev eth0
orip addr replace 10.11.12.6/24 dev eth0
然后 10.11.12.6 被添加到 eth0。此外,在更改/替换的情况下,语法不应该是change/replace from 10.11.12.3/24 to 10.11.12.6/24
吗?我知道我可以使用ip addr del
command,但是如何使用ip addr change
or来实现ip addr replace
呢?
(我意识到这是一个老问题,但谷歌把我带到这里是因为我试图弄清楚它们到底是做什么的
change
以及replace
它们有何不同)。我相信两者
replace
都change
用于修改现有地址。考虑:这让我:
如果我再次运行相同的命令,则会出现错误:
如果我想修改该地址上的标志,我可以使用
change
或replace
。在这里,我ip addr change
用来修改该地址上的preferred_lft
和valid_lft
设置:的行为
ip addr replace
是相同的。事实上,如果您查看代码,它们会导致几乎相同的操作:看起来这里的意图是
change
只会修改现有地址,而replace
如果指定地址不存在,则会修改现有地址或创建新地址。在实践中,似乎两者都change
将replace
添加地址,如果它不存在的话。如果你真的想添加一个新地址并删除一个旧地址,你需要分两步完成,使用
ip addr del
followed byip addr add
(当然,也可以反过来)。