GVPE(8)
π GVPE(8) β GNU Virtual Private Ethernet π
okay bestie, welcome to the gvpe era β this is the manual page for gvpe, the GNU Virtual Private Ethernet Daemon, and it is genuinely iconic. β¨
πΈ NAME πΈ
gvpe β GNU Virtual Private Ethernet Daemon
π SYNOPSIS π
gvpe [-cDlL] [--config=DIR] [--no-detach] [-l=LEVEL]] [--kill[=SIGNAL]]
[--mlock] [--help] [--version] NODENAME [option...]
π¦ DESCRIPTION π¦
so if you want the whole intro-to-the-gvpe-suite situation, that lives in the gvpe(5) man page, bestie. go read that one first, it's giving β¨prequelβ¨.
This page right here? This is the manual page for gvpe, the virtual private ethernet daemon itself. When you start it up, it reads its configuration file to figure out the network topology and all the other config tea, and then it assumes the role of node NODENAME. main character behavior, honestly.
Then it will create/connect to the tun/tap device and set up a socket for incoming connections. After that, an if-up script gets executed to further configure the virtual network device. If that goes off without a hitch, it detaches from the controlling terminal and keeps vibing in the background, accepting and setting up connections to other gvpe daemons that are part of the same virtual private ethernet. slay. π
The optional arguments that come after the node name have to be in this exact form:
[I<nodename>.]var=value
If the argument has a prefix of nodename. (like, for example, laptop.enable-dns=yes) then it gets parsed after all the config directives for that node. If it doesn't have that prefix, it gets parsed before the first node directive in the config file, and you can use it to set global options or default variables. iykyk.
okay so for example β to start gvpe in the foreground, with log-level info on the node laptop, with TCP enabled and HTTP-Proxy host and Port set, you'd do this:
gvpe -D -l info laptop \
http-proxy-host=10.0.0.18 http-proxy-port=3128 \
laptop.enable-tcp=yes
β¨ OPTIONS β¨
-c,--config=DIRβ read configuration options fromDIR. your config lives here, bestie.-d,--l=LEVELβ set the logging level to LEVEL. the options are:noise,trace,debug,info,notice,warn,error,critical. pick your vibe.--helpβ displays a short list of options. for when you just need a lil reminder. π-D,--no-detachβ don't fork and detach β stay in the foreground and log messages tostderrin addition tosyslog. lowkey the move when you're debugging.-L,--mlockβ lockgvpeinto main memory. this prevents sensitive data like shared private keys from being written to the system swap files/partitions. protect the keys, protect the vibe. π₯--versionβ output version information and exit. periodt.
π SIGNALS π
HUPβ closes/resets all connections, resets the retry time, and will start connecting again. it will NOT re-read the config file, so don't come for it about that. this is useful e.g. in a/etc/ppp/if-upscript.TERMβ closes/resets all connections and exits. bye bestie π«ΆUSR1β dump the current network status into thesyslog(at loglevelnotice, so make sure your loglevel actually allows this, otherwise it's just screaming into the void π).
π FILES π
/etc/gvpe/gvpe.confβ the configuration file forgvpe./etc/gvpe/if-upβ script which is executed as soon as the virtual network device has been allocated. its whole purpose is to further configure that device./etc/gvpe/node-upβ script which is executed whenever a node connects to this node. you can use this for example to runnsupdate./etc/gvpe/node-downβ script which is executed whenever a connection to another node is lost. for example to runnsupdate./etc/gvpe/pubkey/*β the directory containing the public keys for every node, one file per node, with the name of the node./etc/gvpe/hostkeyβ the file containing the private key of the node GVPE runs on. unlike all the other files in the/etc/gvpedirectory, this file usually differs for each node that GVPE runs on./var/run/gvpe.pidβ the PID of the currently runninggvpeis stored in this file.
π BUGS π
The cryptography in gvpe has not been thoroughly checked by many people yet. Use it at your own risk!
If you find any bugs, report them to gvpe@schmorp.de. bestie we need the receipts. π§
π SEE ALSO π
gvpe(5) for an introduction, gvpe.conf(5), gvpectrl(8).
The GVPE mailing list, at <http://lists.schmorp.de/> or gvpe@lists.schmorp.de.
GVPE comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.
π AUTHOR π
Marc Lehmann <gvpe@schmorp.de>.
And thanks to many others for their contributions to gvpe, especially the tincd authors, who inspired me to write this program (after scavenging their source code ;).
and that's the whole page, bestie π this was version 2.25, dated 2016-11-02, and yeah β it's a GVPE(8) moment. no cap, go set up your virtual private ethernet. πβ¨
π¦ where this page comes from
- alpine 3.22: gvpe-doc 3.1-r6 Β· GPL-2.0-or-later
- alpine 3.23: gvpe-doc 3.1-r6 Β· GPL-2.0-or-later
- alpine 3.24: gvpe-doc 3.1-r6 Β· GPL-2.0-or-later
- debian bookworm: gvpe 3.1-2+b2 Β· GPL-3.0-or-later WITH OpenSSL exception
- debian trixie: gvpe 3.1-2+b3 Β· GPL-3.0-or-later WITH OpenSSL exception
- nixos 26.05: gvpe 3.1
- nixpkgs unstable: gvpe 3.1
- ubuntu jammy: gvpe 3.1-2build3 Β· GPL-3.0-or-later WITH OpenSSL exception
- ubuntu noble: gvpe 3.1-2build5 Β· GPL-3.0-or-later WITH OpenSSL exception
- ubuntu questing: gvpe 3.1-2build5
- ubuntu resolute: gvpe 3.1-2build6 Β· GPL-3.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms