Ip

如何使用“ip addr add”手動分配永久/靜態 IP 地址?

  • January 30, 2016

將 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 addrIP 地址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 掛起後,我可以驗證isip 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),而不讓它消失?(系統重啟後消失就OK了)

我正在跑步Ubuntu 14.04

從網上研究我的問題,似乎修改文件/etc/network/interfaces是解決方案,但這是不可取的,因為這個解決方案不像ip(8)命令那樣可移植。

您的問題不ip addr在於刪除 IP 地址的某個程序(網路管理員?)。不幸的是,我不知道有可能確定是哪個程序進行了此訪問。

如果有乾擾的程序呼叫ip,應該可以使用程序記帳(man acct),但如果配置是直接通過 NETLINK 套接字進行的,則不能。

您可以殺死或停止可疑程序以找出是哪個程序執行此操作。

引用自:https://unix.stackexchange.com/questions/258643