I just set up Prosody on my server according to the instructions. I can't connect to it using any XMPP client software that I've tried, or any other software to test the same port.
From the server, "telnet localhost 5222" gives
<?xml version='1.0'?><stream:stream id='' xmlns:stream='
http://etherx.jabber.org/streams' version='1.0' xmlns='jabber:client'><stream:error><not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>Connection closed by foreign host.
which I suppose is normal. From the remote client machine, "telnet my-server 5222" just times out. The local telnet command adds the "client connected", "not-well-formed", etc. entries to /var/log/prosody/prosody.log. The remote telnet command does not cause the log to change at all. However, "tcpdump port 5222" on the server shows repeated activity when I try to connect from the remote client machine, so the requests are definitely making it all the way to the server. Other services on the server are responding normally to the same remote client machine.
How can I troubleshoot this?