XVPND is a tunneling daemon designed to make non-IP-based communication possible through IPSEC VPNs. Currently supported protocols are :

  • IP broadcast
  • ARP
  • IPX

Other protocols could be supported via additional plugins. XVPND is distributed under the terms of the GNU GPL.


XVPND 1.1 is available here


Generic installation instruction can be found in the INSTALL file.
Here are a description of the configure options specific to XVPND :

  • --with-debug when turned on, XVPND will output (lots of) information to stderr.
  • --with-syslog when turned on, XVPND will use the syslog logging service, instead of the home-made system.
  • --with-restricted-rights when turned on, XVPND will use non privileged rights for most of its operations. see xvpnd(1) for more informations.
  • --with-libnet when turned on, XVPND will use the libnet routines to inject packets. Only the 1.0.X branch of libnet is supported at this time. the libnet library can be found at http://www.packetfactory.net/libnet
  • --with-pcap_inject this is the new preferred way to inject packets. You need pcap > 0.9.x. (the needed features are "automagically" detected by ./configure)
  • --with-plugindir specify the subdirectory of libraries and plugins.

Otherwise, the famous triplet will do the job :

./configure && make && make install


A complete configuration can be found in xvpnd(1).
Please note that the configuration file format between xvpnd 0.x and xvpnd 1.x has changed.

Running XVPND

You can start the daemon by issuing :

xvpnd start

You can stop the daemon by issuing

xvpnd stop

Only one instance of the daemon could be running. To know if XVPND is running, issue the following :

xvpnd status

In order to know how many packets were handled by the daemon, issue :

xvpnd stat

Reporting bugs

Send bug reports to xvpnd@users.sf.net.
If the version of the daemon that you are using is not the last, you may update the daemon first. The bug may have been fixed in newer versions.

Please include the version of the daemon that you are running. If you can reproduce the bug, please include how. Also include any other information that could be relevant (configuration file, backtrace, etc...)
If you have corrections (patches), we'll be glad to merge your modifications into the source code.