I have a Debian system (BeagleBone, specifically) that insists on assigning a 169.254.*.* address on eth0. I've edited /etc/network/interfaces to assign a static address, but the self-assigned one keeps appearing also.

I don't know what's causing that address to be assigned. There's nothing in /etc/network/interfaces that looks like it could be doing it. /etc/network/interfaces.d is empty.

So I have three related questions:

  1. Does anyone know what mechanism is causing the 169.254 address to be assigned? (Yes, I know what it's for; it's a self-assigned IP address that shows up when DHCP fails.)

  2. Does anyone know how to disable it?

  3. If I can't disable it, is there an easy way to delete it after the fact? I'm imagining something like ip addr del 169.254.*.*/16 dev eth0. I've seen a suggestion that the ip addr command might support some kind of wildcard notation, but I haven't succeeded in discovering the syntax. If I have to I'll run ip addr show to find the exact 169.254 address and delete it explicitly, although that'll be a bit of a nuisance.

  • Does uninstalling connman help?
    – Gantendo
    Commented May 8 at 22:17
  • @Gantendo Is connman the same or different from Network Manager? I confirmed Network manager wasn't running. But I'll go check for connman. Thanks. Commented May 8 at 22:28
  • should be in /var/lib/connman/ Connman and Network Manager are 2 different things blogs.gnome.org/dcbw/2009/06/25/networkmanager-and-connman
    – Gantendo
    Commented May 8 at 22:32
  • @Gantendo It was definitely connman. I'll write up what I did as an answer, in case it's useful, unless you want to. (Wouldn't want to steal the credit!) Commented May 8 at 22:52
  • 1
    @Gantendo That's the right attitude, but some people are jealous about the points, so I didn't want to assume! Thanks again. Commented May 8 at 23:00

2 Answers 2


Per a suggestion from @Gantendo, I was able to determine that the answer to my first question was: connman.

I didn't want to disable it completely (at least not for now), but I couldn't immediately find any fine-grained options for disabling DHCP or self-assigned IP address assignment, so for now I've taken the rather brute-force step of adding eth0 to the list of "blacklisted" interfaces in /etc/connman/main.conf, not to be managed by connman:


(Yes, I know, having done so there may be nothing left for connman to manage, so perhaps I should have disabled the whole thing.)


An IP address beginning with 169.254 is called an Automatic Private IP Addressing (APIPA) IP address. APIPA is a feature in operating systems that allows a device to automatically assign itself an IP address if it can't get one from a DHCP server.

In your case, it seems that your DHCP has not been stopped.

On Debian Linux, there are specific steps to change from using DHCP to using static IP. Have you checked that your DHCP has been properly stopped ? Please check out : https://www.cyberciti.biz/faq/add-configure-set-up-static-ip-address-on-debianlinux/

  • I'm reluctant to click on an external link, but if that page describes how to edit /etc/network/interfaces, I had already tried that (as described in the question), and it didn't help. Commented May 10 at 18:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .