2014-01-16 13:46:44 +00:00
|
|
|
.Dd 2014-01-16
|
2007-11-07 02:48:00 +00:00
|
|
|
.Dt TINCCTL 8
|
|
|
|
.\" Manual page created by:
|
|
|
|
.\" Scott Lamb
|
|
|
|
.Sh NAME
|
2013-03-08 15:22:56 +00:00
|
|
|
.Nm tinc
|
2007-11-07 02:48:00 +00:00
|
|
|
.Nd tinc VPN control
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.Nm
|
|
|
|
.Op Fl cn
|
|
|
|
.Op Fl -config Ns = Ns Ar DIR
|
|
|
|
.Op Fl -net Ns = Ns Ar NETNAME
|
2011-06-26 10:59:11 +00:00
|
|
|
.Op Fl -pidfile Ns = Ns Ar FILENAME
|
2015-02-16 07:26:49 +00:00
|
|
|
.Op Fl -force
|
2007-11-07 02:48:00 +00:00
|
|
|
.Op Fl -help
|
|
|
|
.Op Fl -version
|
2014-01-16 13:46:44 +00:00
|
|
|
.Op Ar COMMAND
|
2007-11-07 02:48:00 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
This is the control program of tinc, a secure virtual private network (VPN)
|
|
|
|
project.
|
|
|
|
.Nm
|
2014-01-16 13:46:44 +00:00
|
|
|
can start and stop
|
|
|
|
.Xr tincd 8 ,
|
|
|
|
and can to alter and inspect the state of a running VPN.
|
|
|
|
It can also be used to change the configuration,
|
|
|
|
or to import or export host configuration files from other nodes.
|
|
|
|
|
|
|
|
If
|
|
|
|
.Nm
|
|
|
|
is started with a
|
|
|
|
.Ar COMMAND ,
|
|
|
|
this command is immediately executed, after which
|
|
|
|
.Nm
|
|
|
|
exits.
|
|
|
|
If no
|
|
|
|
.Ar COMMAND
|
|
|
|
is given,
|
|
|
|
.Nm
|
|
|
|
will act as a shell;
|
|
|
|
it will display a prompt, and commands can be entered on the prompt.
|
|
|
|
If
|
|
|
|
.Nm
|
|
|
|
is compiled with libreadline, history and command completion are available on the prompt.
|
|
|
|
One can also pipe a script containing commands through
|
|
|
|
.Nm .
|
|
|
|
In that case, lines starting with a # symbol will be ignored.
|
2007-11-07 02:48:00 +00:00
|
|
|
.Sh OPTIONS
|
|
|
|
.Bl -tag -width indent
|
|
|
|
.It Fl n, -net Ns = Ns Ar NETNAME
|
|
|
|
Communicate with tincd(8) connected with
|
|
|
|
.Ar NETNAME .
|
2011-06-26 10:59:11 +00:00
|
|
|
.It Fl -pidfile Ns = Ns Ar FILENAME
|
2011-06-25 12:52:47 +00:00
|
|
|
Use the cookie from
|
|
|
|
.Ar FILENAME
|
|
|
|
to authenticate with a running tinc daemon.
|
2007-11-07 02:48:00 +00:00
|
|
|
If unspecified, the default is
|
2011-06-26 10:59:11 +00:00
|
|
|
.Pa @localstatedir@/run/tinc. Ns Ar NETNAME Ns Pa .pid.
|
2015-02-16 07:26:49 +00:00
|
|
|
.It Fl -force
|
|
|
|
Force some commands to work despite warnings.
|
2007-11-07 02:48:00 +00:00
|
|
|
.It Fl -help
|
|
|
|
Display short list of options.
|
|
|
|
.It Fl -version
|
|
|
|
Output version information and exit.
|
|
|
|
.El
|
2012-02-26 11:39:46 +00:00
|
|
|
.Sh ENVIRONMENT VARIABLES
|
|
|
|
.Bl -tag -width indent
|
|
|
|
.It Ev NETNAME
|
|
|
|
If no netname is specified on the command line with the
|
|
|
|
.Fl n
|
|
|
|
option, the value of this environment variable is used.
|
|
|
|
.El
|
2007-11-07 02:48:00 +00:00
|
|
|
.Sh COMMANDS
|
|
|
|
.Bl -tag -width indent
|
2012-07-15 12:49:36 +00:00
|
|
|
.It init Op Ar name
|
2014-05-18 18:47:04 +00:00
|
|
|
Create initial configuration files and RSA and Ed25519 keypairs with default length.
|
2012-07-15 12:49:36 +00:00
|
|
|
If no
|
|
|
|
.Ar name
|
|
|
|
for this node is given, it will be asked for.
|
2013-03-08 10:40:40 +00:00
|
|
|
.It get Ar variable
|
2012-08-01 13:50:45 +00:00
|
|
|
Print the current value of configuration variable
|
|
|
|
.Ar variable .
|
|
|
|
If more than one variable with the same name exists,
|
|
|
|
the value of each of them will be printed on a separate line.
|
2013-03-08 10:40:40 +00:00
|
|
|
.It set Ar variable Ar value
|
2012-07-15 16:16:35 +00:00
|
|
|
Set configuration variable
|
|
|
|
.Ar variable
|
|
|
|
to the given
|
|
|
|
.Ar value .
|
|
|
|
All previously existing configuration variables with the same name are removed.
|
|
|
|
To set a variable for a specific host, use the notation
|
|
|
|
.Ar host Ns Li . Ns Ar variable .
|
2013-03-08 10:40:40 +00:00
|
|
|
.It add Ar variable Ar value
|
2012-07-15 16:16:35 +00:00
|
|
|
As above, but without removing any previously existing configuration variables.
|
2015-02-09 14:23:59 +00:00
|
|
|
If the variable already exists with the given value, nothing happens.
|
2013-03-08 10:40:40 +00:00
|
|
|
.It del Ar variable Op Ar value
|
2012-07-15 16:16:35 +00:00
|
|
|
Remove configuration variables with the same name and
|
|
|
|
.Ar value .
|
|
|
|
If no
|
|
|
|
.Ar value
|
|
|
|
is given, all configuration variables with the same name will be removed.
|
2012-07-15 18:37:38 +00:00
|
|
|
.It edit Ar filename
|
|
|
|
Start an editor for the given configuration file.
|
|
|
|
You do not need to specify the full path to the file.
|
2012-07-16 14:48:24 +00:00
|
|
|
.It export
|
|
|
|
Export the host configuration file of the local node to standard output.
|
|
|
|
.It export-all
|
|
|
|
Export all host configuration files to standard output.
|
2015-02-16 07:26:49 +00:00
|
|
|
.It import
|
2013-01-14 11:57:33 +00:00
|
|
|
Import host configuration data generated by the
|
|
|
|
.Nm
|
|
|
|
export command from standard input.
|
2012-07-16 14:48:24 +00:00
|
|
|
Already existing host configuration files are not overwritten unless the option
|
|
|
|
.Fl -force
|
|
|
|
is used.
|
2015-02-16 07:26:49 +00:00
|
|
|
.It exchange
|
2013-01-15 12:31:51 +00:00
|
|
|
The same as export followed by import.
|
2015-02-16 07:26:49 +00:00
|
|
|
.It exchange-all
|
2013-01-15 12:31:51 +00:00
|
|
|
The same as export-all followed by import.
|
Add an invitation protocol.
Using the tinc command, an administrator of an existing VPN can generate
invitations for new nodes. The invitation is a small URL that can easily
be copy&pasted into email or live chat. Another person can have tinc
automatically setup the necessary configuration files and exchange keys
with the server, by only using the invitation URL.
The invitation protocol uses temporary ECDSA keys. The invitation URL
consists of the hostname and port of the server, a hash of the server's
temporary ECDSA key and a cookie. When the client wants to accept an
invitation, it also creates a temporary ECDSA key, connects to the server
and says it wants to accept an invitation. Both sides exchange their
temporary keys. The client verifies that the server's key matches the hash
in the invitation URL. After setting up an SPTPS connection using the
temporary keys, the client gives the cookie to the server. If the cookie
is valid, the server sends the client an invitation file containing the
client's new name and a copy of the server's host config file. If everything
is ok, the client will generate a long-term ECDSA key and send it to the
server, which will add it to a new host config file for the client.
The invitation protocol currently allows multiple host config files to be
send from the server to the client. However, the client filters out
most configuration variables for its own host configuration file. In
particular, it only accepts Name, Mode, Broadcast, ConnectTo, Subnet and
AutoConnect. Also, at the moment no tinc-up script is generated.
When an invitation has succesfully been accepted, the client needs to start
the tinc daemon manually.
2013-05-29 16:31:10 +00:00
|
|
|
.It invite Ar name
|
|
|
|
Prepares an invitation for a new node with the given
|
|
|
|
.Ar name ,
|
|
|
|
and prints a short invitation URL that can be used with the join command.
|
|
|
|
.It join Op Ar URL
|
|
|
|
Join an existing VPN using an invitation URL created using the invite command.
|
|
|
|
If no
|
|
|
|
.Ar URL
|
|
|
|
is given, it will be read from standard input.
|
2012-07-15 19:17:10 +00:00
|
|
|
.It start Op tincd options
|
2007-11-07 02:48:00 +00:00
|
|
|
Start
|
2012-07-15 19:17:10 +00:00
|
|
|
.Xr tincd 8 ,
|
|
|
|
optionally with the given extra options.
|
2007-11-07 02:48:00 +00:00
|
|
|
.It stop
|
|
|
|
Stop
|
|
|
|
.Xr tincd 8 .
|
2013-07-20 22:20:54 +00:00
|
|
|
.It restart Op tincd options
|
2007-11-07 02:48:00 +00:00
|
|
|
Restart
|
2013-07-20 22:20:54 +00:00
|
|
|
.Xr tincd 8 ,
|
|
|
|
optionally with the given extra options.
|
2007-11-07 02:48:00 +00:00
|
|
|
.It reload
|
|
|
|
Partially rereads configuration files. Connections to hosts whose host
|
|
|
|
config files are removed are closed. New outgoing connections specified
|
|
|
|
in
|
|
|
|
.Xr tinc.conf 5
|
|
|
|
will be made.
|
|
|
|
.It pid
|
|
|
|
Shows the PID of the currently running
|
|
|
|
.Xr tincd 8 .
|
|
|
|
.It generate-keys Op bits
|
2014-05-18 18:47:04 +00:00
|
|
|
Generate both RSA and Ed25519 keypairs (see below) and exit.
|
|
|
|
.It generate-ed25519-keys
|
|
|
|
Generate public/private Ed25519 keypair and exit.
|
2011-07-11 19:54:01 +00:00
|
|
|
.It generate-rsa-keys Op bits
|
2007-11-07 02:48:00 +00:00
|
|
|
Generate public/private RSA keypair and exit.
|
|
|
|
If
|
|
|
|
.Ar bits
|
2011-07-11 19:54:01 +00:00
|
|
|
is omitted, the default length will be 2048 bits.
|
2007-11-07 02:48:00 +00:00
|
|
|
When saving keys to existing files, tinc will not delete the old keys;
|
|
|
|
you have to remove them manually.
|
2012-12-03 12:08:03 +00:00
|
|
|
.It dump [reachable] nodes
|
2007-11-07 02:48:00 +00:00
|
|
|
Dump a list of all known nodes in the VPN.
|
2012-12-03 12:08:03 +00:00
|
|
|
If the keyword reachable is used, only lists reachable nodes.
|
2007-11-07 02:48:00 +00:00
|
|
|
.It dump edges
|
|
|
|
Dump a list of all known connections in the VPN.
|
|
|
|
.It dump subnets
|
|
|
|
Dump a list of all known subnets in the VPN.
|
|
|
|
.It dump connections
|
|
|
|
Dump a list of all meta connections with ourself.
|
2012-09-26 21:56:21 +00:00
|
|
|
.It dump graph | digraph
|
2007-11-07 02:48:00 +00:00
|
|
|
Dump a graph of the VPN in
|
|
|
|
.Xr dotty 1
|
|
|
|
format.
|
2012-10-14 14:07:35 +00:00
|
|
|
Nodes are colored according to their reachability:
|
|
|
|
red nodes are unreachable, orange nodes are indirectly reachable, green nodes are directly reachable.
|
|
|
|
Black nodes are either directly or indirectly reachable, but direct reachability has not been tried yet.
|
2015-05-19 22:12:01 +00:00
|
|
|
.It dump invitations
|
|
|
|
Dump a list of outstanding invitations.
|
|
|
|
The filename of the invitation, as well as the name of the node that is being invited is shown for each invitation.
|
2012-07-15 23:05:25 +00:00
|
|
|
.It info Ar node | subnet | address
|
|
|
|
Show information about a particular node, subnet or address.
|
|
|
|
If an address is given, any matching subnet will be shown.
|
2007-11-07 02:49:57 +00:00
|
|
|
.It purge
|
|
|
|
Purges all information remembered about unreachable nodes.
|
2007-11-07 02:50:27 +00:00
|
|
|
.It debug Ar N
|
|
|
|
Sets debug level to
|
|
|
|
.Ar N .
|
2012-02-26 17:37:36 +00:00
|
|
|
.It log Op Ar N
|
|
|
|
Capture log messages from a running tinc daemon.
|
|
|
|
An optional debug level can be given that will be applied only for log messages sent to
|
2013-03-08 15:22:56 +00:00
|
|
|
.Nm tinc .
|
2007-11-07 02:50:58 +00:00
|
|
|
.It retry
|
|
|
|
Forces
|
|
|
|
.Xr tincd 8
|
|
|
|
to try to connect to all uplinks immediately.
|
|
|
|
Usually
|
|
|
|
.Xr tincd 8
|
|
|
|
attempts to do this itself,
|
|
|
|
but increases the time it waits between the attempts each time it failed,
|
|
|
|
and if
|
|
|
|
.Xr tincd 8
|
|
|
|
didn't succeed to connect to an uplink the first time after it started,
|
|
|
|
it defaults to the maximum time of 15 minutes.
|
2011-06-25 12:52:47 +00:00
|
|
|
.It disconnect Ar NODE
|
|
|
|
Closes the meta connection with the given
|
|
|
|
.Ar NODE .
|
|
|
|
.It top
|
|
|
|
If
|
|
|
|
.Nm
|
|
|
|
is compiled with libcurses support, this will display live traffic statistics
|
|
|
|
for all the known nodes, similar to the UNIX
|
|
|
|
.Xr top 1
|
|
|
|
command.
|
|
|
|
See below for more information.
|
|
|
|
.It pcap
|
|
|
|
Dump VPN traffic going through the local tinc node in
|
|
|
|
.Xr pcap-savefile 5
|
|
|
|
format to standard output,
|
|
|
|
from where it can be redirected to a file or piped through a program that can parse it directly,
|
|
|
|
such as
|
|
|
|
.Xr tcpdump 8 .
|
2014-02-26 10:00:30 +00:00
|
|
|
.It network Op Ar netname
|
|
|
|
If
|
|
|
|
.Ar netname
|
|
|
|
is given, switch to that network.
|
|
|
|
Otherwise, display a list of all networks for which configuration files exist.
|
2015-01-15 21:57:56 +00:00
|
|
|
.It fsck
|
|
|
|
This will check the configuration files for possible problems,
|
|
|
|
such as unsafe file permissions, missing executable bit on script,
|
|
|
|
unknown and obsolete configuration variables, wrong public and/or private keys, and so on.
|
|
|
|
.Pp
|
|
|
|
When problems are found, this will be printed on a line with WARNING or ERROR in front of it.
|
|
|
|
Most problems must be corrected by the user itself, however in some cases (like file permissions and missing public keys),
|
|
|
|
tinc will ask if it should fix the problem.
|
2016-01-26 23:09:29 +00:00
|
|
|
.It sign Op Ar filename
|
|
|
|
Sign a file with the local node's private key.
|
|
|
|
If no
|
|
|
|
.Ar filename
|
|
|
|
is given, the file is read from standard input.
|
|
|
|
The signed file is written to standard output.
|
|
|
|
.It verify Ar name Op Ar filename
|
|
|
|
Check the signature of a file against a node's public key.
|
|
|
|
The
|
|
|
|
.Ar name
|
|
|
|
of the node must be given,
|
|
|
|
or can be
|
|
|
|
.Li .
|
|
|
|
to check against the local node's public key, or
|
|
|
|
.Li *
|
|
|
|
to allow a signature from any node whose public key is known.
|
|
|
|
If no
|
|
|
|
.Ar filename
|
|
|
|
is given, the file is read from standard input.
|
|
|
|
If the verification is succesful,
|
|
|
|
a copy of the input with the signature removed is written to standard output,
|
|
|
|
and the exit code will be zero.
|
|
|
|
If the verification failed,
|
|
|
|
nothing will be written to standard output, and the exit code will be non-zero.
|
2011-06-25 12:52:47 +00:00
|
|
|
.El
|
|
|
|
.Sh EXAMPLES
|
|
|
|
Examples of some commands:
|
|
|
|
.Bd -literal -offset indent
|
2013-03-08 15:22:56 +00:00
|
|
|
tinc -n vpn dump graph | circo -Txlib
|
|
|
|
tinc -n vpn pcap | tcpdump -r -
|
|
|
|
tinc -n vpn top
|
2012-07-15 16:16:35 +00:00
|
|
|
.Pp
|
2011-06-25 12:52:47 +00:00
|
|
|
.Ed
|
2014-01-16 13:46:44 +00:00
|
|
|
Examples of changing the configuration using
|
2012-07-15 16:16:35 +00:00
|
|
|
.Nm :
|
|
|
|
.Bd -literal -offset indent
|
2013-03-08 15:22:56 +00:00
|
|
|
tinc -n vpn init foo
|
|
|
|
tinc -n vpn add Subnet 192.168.1.0/24
|
|
|
|
tinc -n vpn add bar.Address bar.example.com
|
|
|
|
tinc -n vpn add ConnectTo bar
|
|
|
|
tinc -n vpn export | gpg --clearsign | mail -s "My config" vpnmaster@example.com
|
2012-10-17 11:51:02 +00:00
|
|
|
.Ed
|
2011-06-25 12:52:47 +00:00
|
|
|
.Sh TOP
|
|
|
|
The top command connects to a running tinc daemon and repeatedly queries its per-node traffic counters.
|
|
|
|
It displays a list of all the known nodes in the left-most column,
|
|
|
|
and the amount of bytes and packets read from and sent to each node in the other columns.
|
|
|
|
By default, the information is updated every second.
|
|
|
|
The behaviour of the top command can be changed using the following keys:
|
|
|
|
.Bl -tag
|
|
|
|
.It Ic s
|
|
|
|
Change the interval between updates.
|
|
|
|
After pressing the
|
|
|
|
.Ic s
|
|
|
|
key, enter the desired interval in seconds, followed by enter.
|
|
|
|
Fractional seconds are honored.
|
|
|
|
Intervals lower than 0.1 seconds are not allowed.
|
|
|
|
.It Ic c
|
|
|
|
Toggle between displaying current traffic rates (in packets and bytes per second)
|
2012-12-06 15:57:57 +00:00
|
|
|
and cumulative traffic (total packets and bytes since the tinc daemon started).
|
2011-06-25 12:52:47 +00:00
|
|
|
.It Ic n
|
|
|
|
Sort the list of nodes by name.
|
|
|
|
.It Ic i
|
|
|
|
Sort the list of nodes by incoming amount of bytes.
|
|
|
|
.It Ic I
|
|
|
|
Sort the list of nodes by incoming amount of packets.
|
|
|
|
.It Ic o
|
|
|
|
Sort the list of nodes by outgoing amount of bytes.
|
|
|
|
.It Ic O
|
|
|
|
Sort the list of nodes by outgoing amount of packets.
|
|
|
|
.It Ic t
|
|
|
|
Sort the list of nodes by sum of incoming and outgoing amount of bytes.
|
|
|
|
.It Ic T
|
|
|
|
Sort the list of nodes by sum of incoming and outgoing amount of packets.
|
|
|
|
.It Ic b
|
|
|
|
Show amount of traffic in bytes.
|
|
|
|
.It Ic k
|
|
|
|
Show amount of traffic in kilobytes.
|
|
|
|
.It Ic M
|
|
|
|
Show amount of traffic in megabytes.
|
|
|
|
.It Ic G
|
|
|
|
Show amount of traffic in gigabytes.
|
2011-06-26 10:58:50 +00:00
|
|
|
.It Ic q
|
2011-06-25 12:52:47 +00:00
|
|
|
Quit.
|
2007-11-07 02:48:00 +00:00
|
|
|
.El
|
|
|
|
.Sh BUGS
|
|
|
|
If you find any bugs, report them to tinc@tinc-vpn.org.
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr tincd 8 ,
|
|
|
|
.Xr tinc.conf 5 ,
|
|
|
|
.Xr dotty 1 ,
|
2012-09-27 15:18:49 +00:00
|
|
|
.Xr pcap-savefile 5 ,
|
2011-06-25 12:52:47 +00:00
|
|
|
.Xr tcpdump 8 ,
|
|
|
|
.Xr top 1 ,
|
2007-11-07 02:48:00 +00:00
|
|
|
.Pa http://www.tinc-vpn.org/ ,
|
|
|
|
.Pa http://www.cabal.org/ .
|
|
|
|
.Pp
|
|
|
|
The full documentation for tinc is maintained as a Texinfo manual.
|
|
|
|
If the info and tinc programs are properly installed at your site,
|
|
|
|
the command
|
|
|
|
.Ic info tinc
|
|
|
|
should give you access to the complete manual.
|
|
|
|
.Pp
|
|
|
|
tinc 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.
|
|
|
|
.Sh AUTHORS
|
|
|
|
.An "Ivo Timmermans"
|
|
|
|
.An "Guus Sliepen" Aq guus@tinc-vpn.org
|
|
|
|
.Pp
|
|
|
|
And thanks to many others for their contributions to tinc!
|