pytun is a Python module to manage tun/tap IP tunnel in the same way you would manipulate a file handler.
For now, it is only compatible with Linux, probably Unix, maybe MacOsX, and in the future Windows.
pytun is under the MIT license.
How to use
First of all, clone this repos or use
pip install pytun easy_install pytun
Quite easy. Use the
import pytun tun = pytun.open() # Open a TUN mode tunnel
For a TAP tunnel, add the
tun = pytun.open("tap")
tun is the handler for the newly created tunnel and is manipulated like a file.
To read/write, use the standard methods
recv([size = 1500]) and
buf = tun.recv() tun.send(buf)
tun is also
select() compatible to make your network reactor asynchronous.
import select fds = select.select([tun, ...], [...], [...])
Finally, you can close the tunnel using the method
The tunnel automatically closes when the object is not referenced anymore and the garbage collector destroys the handler.