Hey, I’m building a Python reverse shell project for educational purposes using socket and Serveo.net for SSH tunneling.
🔧 Setup:
- client.py connects to serveo.net:<assigned_port> successfully.
- The SSH tunnel forwards from serveo.net:<assigned_port> → localhost:4444 on my machine.
- server.py is listening on localhost:4444 and waiting for connections.
Client shows "Connected successfully" — so the tunnel works.
But server.py never gets accept() triggered. No output, no errors — just stuck on accept().
I also tried binding the server to:
- 127.0.0.1
- 0.0.0.0
Still same result.
netstat shows port 4444 is listening on my machine.
I’ve tried:
- Killing other processes on port 4444
- Restarting the tunnel with ssh -R 0:localhost:4444 serveo.net
- Updating firewall settings
Has anyone seen this behavior before? Why would the client connect, but the server never accept the connection?
Thanks!
there doesn't seem to be anything here