2008年11月11日星期二

PingTunnel for Windows (ICMP tunnel)

PingTunnel for Windows (ICMP tunnel)

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:


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:


C:\>ptunnel -p -lp 8000 -da -dp -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:


$ ./ptunnel -p -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:


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.

没有评论: