SkillAgentSearch skills...

Simpletun

Example program for tap driver VPN

Install / Use

/learn @gregnietsky/Simpletun
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

simpletun, a (too) simple tunnelling program.


To compile the program, just do

$ gcc simpletun.c -o simpletun

If you have GNU make, you can also exploit implicit targets and do

$ make simpletun


Usage: simpletun -i <ifacename> [-s|-c <serverIP>] [-p <port>] [-u|-a] [-d] simpletun -h

-i <ifacename>: Name of interface to use (mandatory) -s|-c <serverIP>: run in server mode (-s), or specify server address (-c <serverIP>) (mandatory) -p <port>: port to listen on (if run in server mode) or to connect to (in client mode), default 55555 -u|-a: use TUN (-u, default) or TAP (-a) -d: outputs debug information while running -h: prints this help text


Refer to http://backreference.org/2010/03/27/tuntap-interface-tutorial/ for more information on tun/tap interfaces in Linux in general, and on this program in particular. The program must be run at one end as a server, and as client at the other end. The tun/tap interface must already exist, be up and configured with an IP address, and owned by the user who runs simpletun. That user must also have read/write permission on /dev/net/tun. (Alternatively, you can run the program as root, and configure the transient interfaces manually before starting to exchange packets. This is not recommended)

Use is straightforward. On one end just run

[server]$ ./simpletun -i tun13 -s

at the other end run

[client]$ ./simpletun -i tun0 -c 10.2.3.4

where 10.2.3.4 is the remote server's IP address, and tun13 and tun0 must be replaced with the names of the actual tun interfaces used on the computers. By default it assumes a tun device is being used (use -u to be explicit), and -a can be used to tell the program that the interface is tap. By default it uses TCP port 55555, but you can change that by using -p (the value you use must match on the client and the server, of course). Use -d to add some debug information. Press ctrl-c on either side to exit (the other end will exit too).

The program is very limited, so expect to be disappointed.

View on GitHub
GitHub Stars317
CategoryDevelopment
Updated11d ago
Forks103

Languages

C

Security Score

95/100

Audited on Mar 16, 2026

No findings