I ported PingTunnel to Windows, using Cygwin and added some minor changes:

v0.62 - 16. Oct 2007
- Compiled with Cygwin - added windows support
- Updated to Winpcap v4.01
- added timeout value (-t), finetune your connection

Download PingTunnel v0.62 for Windows here (including source).

What is ptunnel?
Ptunnel is an application that allows you to reliably tunnel TCP connections
to a remote host using ICMP echo request and reply packets, commonly known as
ping requests and replies.

A simple example how to use ptunnel:

SERVER1 - start server:

1
2
3
4
5
6
7
8
9
10
11
12
c:\>ptunnel -v 4 -c "\Device\NPF_{EED408B…}"
[inf]: Enable pcap Mode using device: \Device\NPF_{EED408B…}
[inf]: Starting ptunnel v 0.62.
[inf]: (c) 2004-2005 Daniel Stoedle, daniels@cs.uit.no Windows Port by michu / www.neophob.com
[inf]: HINT: start ptunnel with "-h" parameter to view help and Windows WinPcap devices
[inf]: Forwarding incoming ping packets over TCP.
[dbg]: Starting ping proxy..
[dbg]: Creating icmp datagram socket..
[inf]: Initializing pcap.
[vbs]: Network: 138.191.41.0
[vbs]: Netmask: 255.255.255.0
[inf]: Ping proxy is listening in privileged mode.

Info: Use the -c option (enable WinPcap on the given device) else the proxy will NOT work!
For Windows use the -h option (ptunnel.exe -h) to view all Windows WinPcap Devices.
Windows example 1 - Web Proxy:
CLIENT1 -  start ptunnel client:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\>ptunnel -p <SERVER1> -lp 8000 -da <WEB-PROXY> -dp <PORT> -v 4
[inf]: Starting ptunnel v 0.62.
[inf]: (c) 2004-2005 Daniel Stoedle, daniels@cs.uit.no Windows Port by michu / www.neophob.com
[inf]: HINT: start ptunnel with "-h" parameter to view help and Windows WinPcap devices
[inf]: Relaying packets from incoming TCP streams.
[dbg]: Starting forwarder..
[vbs]: Proxy IP address: 138.191.41.18
[inf]: Incoming connection.
[evt]: No running proxy thread - starting it.
[dbg]: Adding proxy desc to run loop. Type is user. Will create socket: No
[dbg]: Starting ping proxy..
[dbg]: Creating icmp datagram socket..
[inf]: Initializing pcap.
[vbs]: Network: 10.226.64.0
[vbs]: Netmask: 255.255.255.0
[inf]: Ping proxy is listening in privileged mode.

Info: WEB-PROXY is your web proxy server
Now point your browsers proxy settings to localhost 8000 and load a web site.

Windows example 2 - SSH:
CLIENT1 -  start ptunnel client:

1
2
3
4
5
6
7
$ ./ptunnel -p <SERVER1> -lp 8000 -da 127.0.0.1 -dp 22 -v 5
[inf]: Starting ptunnel v 0.62.
[inf]: (c) 2004-2005 Daniel Stoedle, daniels@cs.uit.no Windows Port by michu / www.neophob.com
[inf]: HINT: start ptunnel with "-h" parameter to view help and Windows WinPcap devices
[inf]: Relaying packets from incoming TCP streams.
[dbg]: Starting forwarder..
[vbs]: Proxy IP address: 138.191.41.18

Start PuTTY and connect to 127.0.0.1:8000…


Some additional information:

Timeout value (read timeout), default is 50ms, but you can change this setting via the “-t” option. Here is a small benchmark (100MB LAN) for SFTP file copy:

1
2
3
4
5
6
7
8
 Timeout value | down | up   |
|———————+———+———+
|1             | 62   | 75   |
|20            | 30   | 41   |
|50            | 20   | 15   |
|200           | 4    | 6    |
|———————+———+———+
                kb/S   kb/s

Password: this option DOES NOT WORK! I don’t know why, but an easy workaround is: use SSH.