Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

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

Good day,

I have two computers behind firewall with no port forwarding set up. These two computers need to communicate with each other by using only outbound connections.

I'm looking for a proxy tool that would be launched on the server and work in following way:

  1. Bob periodically checks with the server if Alice wants to talk.
  2. Alice sends request to the server that she wants to talk with Bob.
  3. Bob checks with the server and gets information that Alice wants to talk - he accepts.
  4. Proxy server opens inbound ports 8100 and 8200 for incoming TCP connections.
  5. Alice connects to port 8100 and waits for Bob to join her.
  6. Bob connects to port 8200.
  7. HELO packets are sent to Alice and Bob indicating that the connection has been established by both parties.
  8. The connection then is changed into duplex forwarding mode where Alice can send packets to port 8100 and they will be forwarded from port 8200 to Bob.
  9. Bob can also send packets to port 8200 and they will be forwarded from port 8100 to Alice.
  10. Bob disconnects and connection for Alice is dropped as well.

I wanted to ask if there is such proxy protocol already available. Before writing my own implementation I decided to ask here about any available solutions (preferably for Linux).

The idea is just a simple packet forwarder that is able to join two inbound connections together. I'd appreciate if anyone could share the knowledge of any similar open-source projects.

share|improve this question

Well let's separate this into layers, you are describing a router at IP level, the only thing is that packets arrive in one port and come out on a different one and that should be handled by the application layer that implements the protocol you are describing.

So to reproduce the conceptual design that you outlined above you need a router (any linux box with IP tables will suffice) plus a network service that does exactly what you are asking for and unless someone has already programmed and released Open Source what you are asking for you will need to do it yourself.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .