Brand new install on CentOS 7 of Openfire 3.9.3. OpenFire is not listening

I have a brand new fresh, minimal installation of CentOS 7 on a VM. Downloaded and installed the Openfire 3.9.3 RPM package. I had to install java and libstdc++.i686 as well, but other than that and openfire nothing else is installed on the system. Install reported success and “service openfire status” reports it is running.

However, I cannot access the admin page to perform the initial setup. Checking “ss -l”, I don’t see anything listening on port 9090.

Any ideas?

I found this 7-year old thread https://igniterealtime.jiveon.com/message/157174#157174 with a similar issue, but aside from its age and the fact that these versions are very different, the solution also seemed to just be “wait”. Well I left the server on all night and nothing changed.

selinux was enabled

I disabled it in /etc/selinux/config and rebooted the server

for good measure I rpm -e openfire and installed it again

now

selinux is disabled

error.log is empty

info.log says admin interface is listening at http://127.0.0.1:9090

ss -l | grep 90 says this is lies as nothing is listening at 9090

warn.log has an interesting message that could be a clue? It says that it cannot get the machine’s hostname… But maybe this is normal before setup is completed?

Is your VM has a hostname?

Yup, of course. I set it up during installation. Strangely, it even shows the hostname as part of the warning. My hostname is something like: server-chat

The warning is:

2014.09.19 10:58:57 org.jivesoftware.openfire.XMPPServer - Unable to determine local hostname.

java.net.UnknownHostException: server-chat: server-chat: Name or service not known

at java.net.InetAddress.getLocalHost(InetAddress.java:1473)

at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:337)

at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:464)

at org.jivesoftware.openfire.XMPPServer.(XMPPServer.java:197)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:57)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructor AccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

at java.lang.Class.newInstance(Class.java:374)

at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:113)

at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:58)

Caused by: java.net.UnknownHostException: server-chat: Name or service not known

at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)

at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901)

at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293)

at java.net.InetAddress.getLocalHost(InetAddress.java:1469)

… 10 more

Does ‘nslookup server-chat’ return the IP of your server? Using a real servername like xmpp.example.com or example.com could help. Not sure if your users like JIDs in the formof user-id@server-chat. S2S is likely not possible with such a xmpp domain.

nslookup for “server-chat” does not work, as it is not defined anywhere in my DNS. Similarly, there is no reference to “server-chat” in my /etc/hosts file

However, “hostname” at the command line does return “server-chat”

Also, as far as the JIDs, I thought it was possible to use a domain in openfire that is different from the server hostname? My plan was for the hostname (internally) to be something like “server-chat” whereas for external access (and for JIDs) it would be something like “chat.mycompanyname.com

Forget ‘hostname’. Both Java and nslookup query DNS servers.

Yes, well I’ve been working on that since my last post and I’m not sure why it is not working…

I’ve added “server-chat” to my /etc/hosts file like this:

127.0.0.1 localhost localhost.localdomain

::1 server-chat

192.168.1.150 server-chat

I’ve also verified that /etc/host.conf contains the following lines:

multi on

order hosts,bind

I’ve also verified that /etc/nsswitch.conf contains the line:

hosts: files dns

nslookup still fails when it contacts my local DNS server. I could add an entry to my DNS server, but why is CentOS not using its local files?

It seems absolutely incredible to me that a default install of CentOS 7 in the year 2014 is not capable of recognizing and resolving its own hostname. I think Win3.11 for Workgroups could do that out of the box.

Another note is that maybe all of this is coming from my choice of doing a “minimal” install of CentOS 7. I had to “yum install bind-utils” in order to get nslookup working. Possibly I am missing some other package necessary to make this work?

I see you noted that you have disabled selinux but I also have a Centos 7 Server with Openfire. Did you disable the firewall?

Here is the command for Centos 7

systemctl stop firewalld.service

If you also wish to disable it.

systemctl disable firewalld.service

I don’t see how it could be a firewall issue. Even if the firewall were blocking that port, shouldn’t ss show that openfire is attempting to listen on that port?

Anyway. I gave up on CentOS and am now about to try with the .deb package and Ubuntu…

Try netstat -an | grep -i listen and see if you find this:

tcp6
0
0 :::9090
:::*
LISTEN
tcp6
0
0 :::9091
:::*
LISTEN

Also, is there any special reason your host doesn’t have an FDQN in /etc/hosts, or were you obfuscating the real name for security reasons?

Unfortunately the host no longer exists, I wiped it and went with a far less problematic Ubuntu install, so I cannot test your suggestions. I just posted a walkthrough.

NP. And thanks much for the Walkthrough. We need more of those!