blob: 67084de0ecdce5c0830e09850bce28233a54bf11 [file] [log] [blame]
.TH dvpn 1 "December 2023" "dvpn Manual"
.SH NAME
dvpn \- Distributed VPN
.SH SYNOPSIS
.B dvpn
[OPTIONS] <PEER_ID>
.SH DESCRIPTION
.B dvpn
is a VPN tool based on the DHTNet library, utilizing a decentralized architecture for peer discovery and communication. It supports both server and client modes, implements a TUN interface for network communication and offers configuration flexibility.
.B <PEER_ID>
is the identifiant of the target peer or device in the DHT network with which the connection should be established.
It is required when not running in listen mode.
.SH OPTIONS
.TP
.B \-h, \-\-help
Display help information.
.TP
.B \-V, \-\-version
Display the version information of dvpn.
.TP
.B \-l, \-\-listen
Run dvpn in listen mode, allowing the program to accept incoming VPN connections.
.TP
.B \-b, \-\-bootstrap \fIADDRESS\fR
Specify the address of a bootstrap node to connect to an existing DHT network. Default is "bootstrap.jami.net" if not specified.
.TP
.B \-t, \-\-turn_host \fIADDRESS\fR
Define the TURN server host.
.TP
.B \-u, \-\-turn_user \fIUSER\fR
Define the TURN server username.
.TP
.B \-w, \-\-turn_pass \fISECRET\fR
Define the TURN server password.
.TP
.B \-r, \-\-turn_realm \fIREALM\fR
Specify the TURN server realm.
.TP
.B \-c, \-\-certificate \fIFILE\fR
Specify the certificate.
.TP
.B \-p, \-\-privateKey \fIFILE\fR
Provide a private key.
.TP
.B \-d, \-\-configuration \fIFILE\fR
Define the dnc configuration with a YAML file path.
.TP
.B \-C, \-\-vpn_configuration \fIFILE\fR
Specify the path to the configuration file. Default is "dhtnet/tools/dvpn/test_config.yaml" if not specified.
.TP
.B \-a, \-\-anonymous
Activate anonymous connection mode.
.SH VPN SETUP PROCESS
For each connection,
.B dvpn
dynamically creates a new TUN interface, utilizing information from the configuration file. The setup script then configures the TUN interface and establishes routing logic for the client, as well as managing NAT for the server.
The TUN interfaces are configured as follows:
Server TUN Interface:
.IP
<server tun address> 255.255.255.255 <client tun address>
Client TUN Interface:
.IP
<client tun address> 255.255.255.255 <server tun address>
.SH NOTES
.B dvpn
requires sudo privileges to create and configure TUN interfaces on both the client and server sides.
.SH EXAMPLES
To run a dvpn server:
.IP
$ sudo ./dvpn -l
To connect to a dvpn server:
.IP
$ sudo ./dvpn <PEER_ID>
.SH SEE ALSO
.BR dnc (1),
.BR dhtnet-crtmgr (1)
The DHTNet library documentation for more details.
.SH "dvpn 1.0" December 2023 DVPN(1)