81

What is the Linux command to clear IP address of an interface without bringing it down and/or restarting network services. Seems strange ifconfig is able to change IP address but has no option to clear it, or am I wrong?

  • 1
    @Andy: I think you misunderstood the question. @jackhab wants to unassign an address from the interface, not set it to 0.0.0.0 -- it's just how it is done with ifconfig. – user1686 Jun 17 '10 at 10:36
  • @grawity Cheers. Unassigning an address is switching the NIC off to all intents and purposes? – Andy Jun 17 '10 at 11:03
  • @Andy: Not necessarily. One could still watch incoming packets. Also, a NIC can have multiple addresses (though it doesn't apply in this case). – user1686 Jun 17 '10 at 21:33
  • See also serverfault.com/questions/407676/… – pevik Jul 17 '17 at 9:02
143

Use ip from iproute2. (You need to also specify the prefix length though.)

ip addr del 10.22.30.44/16 dev eth0

To remove all addresses (in case you have multiple):

ip addr flush dev eth0
|improve this answer|||||
  • Works, but when I do want to a non-dev permanent change, I get an error saying "eth0 is garbage" (lol). i guess i need to manually edit that file, just can't remember the name right now – Housemd Apr 11 '17 at 2:22
23

As simple as ifconfig eth0 0.0.0.0. They should have put it in the manual.

|improve this answer|||||
11

To remove all adreses from all interfaces i used for loop:

for i in $(ls /sys/class/net/) ; do
    /usr/sbin/ip addr flush $i &
done
|improve this answer|||||
1

Perhaps you are just looking to get a new IP from the [DHCP-enabled] router? In this case call

dhclient eth0

|improve this answer|||||
  • THAT worked, whereas assigning an IP didn't somehow get the network working. Thank you. – Rich_F Sep 25 '19 at 11:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.