I stumbled across a mysterious problem, which has been lasting for a week or so. My OpenFire 3.6.4 no longer seems to communicate using IPv4. Upon startup it just says that the IPv4 sockets are already in use (they’re not), and just starts everything on IPv6 (which works fine). So now I only have OpenFire on IPv6:
Looking at the logs it just says it has no network connectivity to talk to other servers (or users).
This is using 3.6.4 on Debian Testing with these java packages:
ii sun-java6-bin 6-16-1 Sun Java™ Runtime Environment (JRE) 6 (ar
ii sun-java6-jre 6-16-1 Sun Java™ Runtime Environment (JRE) 6 (ar
Any idea of what might be the problem? IPv4 on the machine works fine. And I also tried to reboot the machine in case there was a problem with anything in the kernel or whatever. Been running for years without any such problems.
That looks fine, my openfire server looks exactly the same. The JVM can handle IPv4 and IPv6 request from the universal socket listener. At least it works for me. IPv6 stack is preferred by default, but you could add the startup parameter
I found this page while having an entirely different problem. I’m leaving my findings here for posterity, in case someone else stumbles upon this in the same way I did.
Even though netstat was listing only tcp6, my server (CentOS 7) is allowing ipv4 just fine. The problem on this server was that firewalld was active out-of-the-box (netstat only confused me in thinking ipv4 not being available was the cause, while it was not).
I quickly verified by disabling firewalld that this was indeed the cause of my problems. After that, I’ve created a new file /etc/firewalld/services/openfire.xml in which I stored this content: