Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Both boxes in question are RHEL5.

I have a python RPC server running on localhost port 8000. When a client running on the same machine tries to connect, everything works great. When a remote client attempts to connect, we get no response.

netstat shows the process running at, which seems to be the problem if I want to allow remote connectors.

I've forwarded the ports on the router, and using tcpdump I can watch the RPC calls come in to port 8000, but they all fail and the RPC Server never gets the message.

The server config allows me to put the host name in: server = SimpleXMLRPCServer(("localhost", 8000))

Trying our domain in place of localhost still results in since our /etc/hosts file looks like:      localhost.localdomain localhost  staging.<ourdomain>.com

I then changed /etc/hosts to:  localhost.localdomain localhost staging.<ourdomain>.com testserver

I've changed the local IP to the server IP, and still nothing. netstat will show the IP from the hosts file on the line.

How do I get a process to run on :::8000, or, or any permutation that would allow a remote client to connect?

share|improve this question

Default listen all ports (ipv6+ipv4) = bind all ipv4
share|improve this answer

Have you tried changing it to listen on ""?

server = SimpleXMLRPCServer(("", 8000))
share|improve this answer
Or, if you can't bind to, try: server = SimpleXMLRPCServer(("", 8000)) Also, since you're on RHEL, make sure that SELinux isn't beating up on your application. – Seth Nov 3 '09 at 4:14
binding to results in the same unresponsiveness. Binding to 192* seems to be the right thing to do, but is my /etc/hosts set up right? or should it include our external IP? – user24773 Nov 3 '09 at 4:54


service iptables stop

Obviously, don't run like that forever, but, just to test... assuming there are no other security issues.

After that, just open up the port.

share|improve this answer
iptables has been stopped. – user24773 Nov 3 '09 at 3:00

Quick checklist: Does the output of netstat -ln display a listening service on ::8000 ? better yet lsof If not, change the code to listen to all interfaces or the specific one in question.

Is iptables disabled?

Can you connect to that port and ip from another host on the same subnet? This would rule out an intermediate firewall or other issue with your natted inbound connection.

Since this is a tcp connection there is also the possibility that your connection can just not be established, which may happen if the server doesn't have a route back or something of that nature, although that is unlikely if you are already connected inbound via ssh.

share|improve this answer
showing no other processes listening on port 8000. iptables is disabled. I try to run the client from another machine in the same subnet and get "unreachable host" or "no route to host", this is with netstat showing the server running on – user24773 Nov 3 '09 at 17:42
Can you telnet from host B to ? Can you ping from host B and get a response packet? Can you give us the output of netstat -ln (Edited to remove anything sensitive) Also just verify that iptables -L -n -v returns nothing, and neither does iptables -t nat -L -n -v – MattyB Nov 3 '09 at 18:04

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.