$ less /etc/hosts
127.0.0.1 localhost 127.0.1.1 nile.ics.uci.edu nile
# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Yesterday, I spent a lot of time harassing just about everyone in my University’s Networking Support department because I couldn’t get an OpenSim server to serve clients anywhere. We know that OpenSim networking is hard. But, damn it, I’m one of the core devs of OpenSim, and I have a pretty good idea of what’s involved in the protocols between the server and the client. I’ve had lots of OpenSim servers running successfully in all sorts of networks, including my University’s. Well, the problem turned out to be… Ubuntu!
The default installation of Ubuntu comes with a horrible hack in /etc/hosts:
127.0.1.1 nile.ics.uci.edu nile
“This is really improper because system hostnames and domain names are two very different things; but there you have it.”
How does this impact OpenSim?
Upon client login (over TCP), OpenSim sends its UDP address to the client. In doing so, it needs to send the actual IP address, not the domain name — the client expects the IP address. Due to that entry in /etc/hosts, OpenSim was getting nile.ics.uci.edu translated into the localhost IP… Fail!
Fix: either remove/comment that line from /etc/hosts or replace it with the external IP address of that server, if it has one.
Conclusion: bad Ubuntu! (Debian may suffer from the same problem)