Port forwarding service configurable in runtime.

How does it work?

ForwardMachine listens on TCP port for forward requests.

These requests are simple, they consist of host:port, e.g.

As response, host and port where forwarding has been set up is returned.


$ gem install forwardmachine


Start forwarder for host

$ forwardmachine --forwarder-host --ports-range 8000..9000

Control server by default will listen on localhost:8899. Connect to it and create a new forwarder (here we use nc tool).

$ nc localhost 8899 is forwarded to

$ nc localhost 8899 is forwarded to


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request