READ THIS FIRST BEFORE COMMENTING
0.0.0.0 means "accessible to all network interfaces", so anyone can connect if they know your real IP and the random port Minecraft gives you. If you're in a LAN, run "/sbin/ifconfig" in a terminal (without quotes), that will give you your local IP, then use LocalIP:PortGivenByMinecraft to connect from another PC on the LAN, to the linux LAN server.
The actual problem, that Simon is trying to emphasize, happens when Minecraft tries to connect to a linux LAN server, because it uses 0.0.0.0 as a real IP (which it's not), instead of the actual IP that the broadcast (announcing a LAN server) is coming from.
My reddit post with an example: http://www.reddit.com/r/Minecraft/comments/136ipr/144_is_now_live_on_the_launcher_bukkit_dev_build/c71ca3h
I forgot to mention, to workaround this problem, add "external-ip local-hostname" to /etc/hosts.
You can get the external-ip with /sbin/ifconfig and the local-hostname with /bin/hostname.
This happened to me, but for 127.0.0.2.
It turns out Minecraft uses the local hostname to get the IP facing LAN, but /etc/hosts only has a default 127.0.0.2 IP.
I'm using NetworkManager and I think it fails to alias the hostname to the IP it gets from DHCP.
To quote from IRC:
"the way I did it in one of my node.js projects is I got the IP of the first externally visible network interface (node.js provides that information, Java may have something similar)"
Go away bot, you're drunk.