将 IP 地址分配给该网络接口后,使用以下任一命令:
ip addr add 10.0.0.0 dev eth1 valid_lft forever preferred_lft forever
ip addr replace 10.0.0.0 dev eth1 valid_lft forever preferred_lft forever
ip addr add 10.0.0.0 dev eth1
ip addr replace 10.0.0.0 dev eth1
我可以验证ip addr
IP 地址是否eth1
设置10.0.0.0/32
得很好(我认为):
...
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 08:00:27:4d:1e:43 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.0/32 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe4d:1e43/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
...
我自己开始ping
...ping
命令在 31 号 ping 时挂起:
username@computer:~$ ping 10.0.0.0
PING 10.0.0.0 (10.0.0.0) 56(84) bytes of data.
64 bytes from 10.0.0.0: icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from 10.0.0.0: icmp_seq=2 ttl=64 time=0.034 ms
...
64 bytes from 10.0.0.0: icmp_seq=30 ttl=64 time=0.038 ms
64 bytes from 10.0.0.0: icmp_seq=31 ttl=64 time=0.041 ms
一旦 ping 挂起,我可以验证ip addr
其 IP 地址是否eth1
已消失:
...
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 08:00:27:4d:1e:43 brd ff:ff:ff:ff:ff:ff
inet6 fe80::a00:27ff:fe4d:1e43/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
...
如何使用 为网络接口分配静态 IP 地址ip(8)
,而不让它消失?(系统重启后消失即可)
我在跑步Ubuntu 14.04
。
从网上研究我的问题来看,似乎修改文件/etc/network/interfaces
是解决方案,但这是不可取的,因为这种解决方案不像ip(8)
命令那样可移植。
答案1
你的问题不是ip addr
某个进程(网络管理器?)删除了IP地址。不幸的是,我不知道是否可以确定哪个进程进行了此访问。
如果干扰进程调用,ip
则应该可以使用进程记帐 (man acct),但如果直接通过 NETLINK 套接字进行配置则不行。
您可以终止或停止可疑进程,以找出是哪个进程执行了此操作。