Reverse tunneling in Windows.
Try it out: http://eirikb.github.io/Netro/1.0.1/Netro.exe
Warning: Executable, use at your own risk!
Netro works perfectly with mono for Linux / OSX.
I usually fire up ssh -R
when I need some reverse tunneling, on any platform.
But sometimes I have to tunnel from Windows to Windows, and this is a bit more difficult, as I usually don't have sshd running on Windows servers.
Netro, a bad play on "Metro" is here to help me and others that must do some quick, dirty and simple tunneling on Windows.
Here is an example: The right side in the following figure is behind a firewall, the left side is publicly accessible.
- Netro A listens for incoming connections, and listens for reverse tunneling.
- Netro B connects to A for tunneling.
- When a client connects to A the data will be transferred through the link between A and B.
- Connection is made on B to desired host:port.
- Data can now flow both ways.
Figure:
┊
u ┆ O
│ ┆ │
┌───┴───┐ ┆ ┌───┴───┐
│ │ ┆ │ │
│ A ├───ᑕO──────┆───────────┤ B │
│ │ ┆ │ │
└───────┘ ┆ └───────┘
┆
Netro.exe 5000 localhost:80
Listen on port 5000, send connections/data to localhost on port 80.
No reverse tunneling involved (Proxy).
┌─────┐
ᑐ───┤ ├───O
└─────┘
Netro.exe 5000 5001
Listen on port 5000 for normal connections. Listen on port 5001 for reverse tunneling connection.
u
│
┌──┴──┐
ᑐ───┤ │
└─────┘
Netro.exe example.com:5001 localhost:80
Open reverse tunneling cunnection against example.com on port 5001.
On reverse connections, open connection against localhost on port 80.
O
│
┌──┴──┐
│ ├───O
└─────┘
MIT © Eirik Brandtzæg