TINC(8)
πΈ NAME β tinc(8)
tinc β tinc VPN control.
okay so bestie, welcome to the tinc(8) manual page: this is the control program for tinc, a secure virtual private network (VPN) project. It can start and stop tincd(8), and it can alter and inspect the state of a running VPN. It can also change the configuration, or import/export host configuration files from other nodes. π
β¨ SYNOPSIS
tinc [-bcn] [--config=DIR] [--net=NETNAME] [--pidfile=FILENAME]
[--batch] [--force] [--help] [--version] [COMMAND]
π DESCRIPTION
If you start tinc with a COMMAND, that command gets executed immediately, and then tinc exits. No waiting around, no βlet me think about itβ energy. β¨
If no COMMAND is given, tinc acts like a shell: it shows a prompt, and you enter commands at the prompt. If tinc is compiled with libreadline, history and command completion are available on the prompt. You can also pipe a script containing commands through tinc; in that case, lines starting with a # symbol are ignored. very iykyk of them.
π OPTIONS
-n,--net=NETNAMEβ communicate withtincd(8)connected with NETNAME.--pidfile=FILENAMEβ use the cookie from FILENAME to authenticate with a runningtincdaemon. If unspecified, the default is/var/run/tinc.NETNAME.pid.-b,--batchβ donβt ask for anything, aka non-interactive mode.--forceβ force some commands to work despite warnings. careful, bestie.--helpβ display a short list of options.--versionβ output version information and exit.
π¦ ENVIRONMENT VARIABLES
NETNAMEβ if no netname is specified on the command line with the-noption, the value of this environment variable is used.
π COMMANDS
init [name]β create initial configuration files and RSA and Ed25519 key pairs with default length. If no name for this node is given, it will be asked for.get variableβ print the current value of configuration variable variable. If more than one variable with the same name exists, the value of each of them will be printed on a separate line.set variable valueβ set configuration variable variable to the given value. All previously existing configuration variables with the same name are removed. To set a variable for a specific host, use the notationhost.variable.add variable valueβ as above, but without removing any previously existing configuration variables. If the variable already exists with the given value, nothing happens.del variable [value]β remove configuration variables with the same name and value. If no value is given, all configuration variables with the same name will be removed.edit filenameβ start an editor for the given configuration file. You do not need to specify the full path to the file.exportβ export the host configuration file of the local node to standard output.export-allβ export all host configuration files to standard output.importβ import host configuration data generated by thetinc exportcommand from standard input. Already existing host configuration files are not overwritten unless the option--forceis used.exchangeβ the same asexportfollowed byimport.exchange-allβ the same asexport-allfollowed byimport.invite nameβ prepares an invitation for a new node with the given name, and prints a short invitation URL that can be used with thejoincommand.join [URL]β join an existing VPN using an invitation URL created using theinvitecommand. If no URL is given, it will be read from standard input.start [tincd options]β starttincd(8), optionally with the given extra options.stopβ stoptincd(8).restart [tincd options]β restarttincd(8), optionally with the given extra options.reloadβ partially rereads configuration files. Connections to hosts whose host config files are removed are closed. New outgoing connections specified intinc.conf(5)will be made.pidβ shows the PID of the currently runningtincd(8).generate-keys [bits]β generate both RSA and Ed25519 key pairs (see below) and exit.generate-ed25519-keysβ generate public/private Ed25519 key pair and exit.generate-rsa-keys [bits]β generate public/private RSA key pair and exit. If bits is omitted, the default length will be 2048 bits. When saving keys to existing files,tincwill not delete the old keys; you have to remove them manually. not me forgetting to clean up old keys πdump [reachable] nodesβ dump a list of all known nodes in the VPN. If the keywordreachableis used, only lists reachable nodes.dump edgesβ dump a list of all known connections in the VPN.dump subnetsβ dump a list of all known subnets in the VPN.dump connectionsβ dump a list of all meta connections with ourself.dump graph | digraphβ dump a graph of the VPN indotty(1)format. 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.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.info node | subnet | addressβ show information about a particular node, subnet or address. If an address is given, any matching subnet will be shown.purgeβ purges all information remembered about unreachable nodes.debug Nβ sets debug level to N.log [N]β capture log messages from a runningtincdaemon. An optional debug level can be given that will be applied only for log messages sent totinc.retryβ forcestincd(8)to try to connect to all uplinks immediately. Usuallytincd(8)attempts to do this itself, but increases the time it waits between the attempts each time it failed, and iftincd(8)didnβt succeed to connect to an uplink the first time after it started, it defaults to the maximum time of 15 minutes.disconnect NODEβ closes the meta connection with the given NODE.topβ iftincis compiled withlibcursessupport, this will display live traffic statistics for all the known nodes, similar to the UNIXtop(1)command. See below for more information.pcapβ dump VPN traffic going through the localtincnode inpcap-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 astcpdump(8).network [netname]β if netname is given, switch to that network. Otherwise, display a list of all networks for which configuration files exist.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.
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.
sign [filename]β sign a file with the local nodeβs private key. If no filename is given, the file is read from standard input. The signed file is written to standard output.verify name [filename]β check the signature of a file against a nodeβs public key. The name of the node must be given, or can be.to check against the local nodeβs public key, or*to allow a signature from any node whose public key is known. If no filename is given, the file is read from standard input. If the verification is successful, 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.
π EXAMPLES
Examples of some commands:
tinc -n vpn dump graph | circo -Txlib
tinc -n vpn pcap | tcpdump -r -
tinc -n vpn top
Examples of changing the configuration using tinc:
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
π₯ 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. live stats, literally iconic β¨
The behaviour of the top command can be changed using the following keys:
sβ change the interval between updates. After pressing theskey, enter the desired interval in seconds, followed by enter. Fractional seconds are honored. Intervals lower than 0.1 seconds are not allowed.cβ toggle between displaying current traffic rates (in packets and bytes per second) and cumulative traffic (total packets and bytes since thetincdaemon started).nβ sort the list of nodes by name.iβ sort the list of nodes by incoming amount of bytes.Iβ sort the list of nodes by incoming amount of packets.oβ sort the list of nodes by outgoing amount of bytes.Oβ sort the list of nodes by outgoing amount of packets.tβ sort the list of nodes by sum of incoming and outgoing amount of bytes.Tβ sort the list of nodes by sum of incoming and outgoing amount of packets.bβ show amount of traffic in bytes.kβ show amount of traffic in kilobytes.Mβ show amount of traffic in megabytes.Gβ show amount of traffic in gigabytes.qβ quit.
π BUGS
If you find any bugs, report them to tinc@tinc-vpn.org. go off, bestie π«Ά
π SEE ALSO π
ok so like, if you want the whole lore, here's the reading list bestie π
tincd(8)β the actual daemon, the one doing the heavy lifting πͺtinc.conf(5)β the config file, where all your settings live β¨dotty(1)β yes it's real and yes it's in here πpcap-savefile(5)β the file format for those packet captures π«Άtcpdump(8)β for when you wanna snoop on your own traffic πtop(1)β classic, iconic, still ate πhttp://www.tinc-vpn.org/β the official site, go touch grass there πΈhttp://www.cabal.org/β the crew behind it all π
Also!! the β¨fullβ¨ documentation for tinc is maintained as a Texinfo manual. So if the info and tinc programs are properly installed on your system, then literally just running:
info tinc
should give you access to the complete manual. no cap, that's the whole thing π¦
okay so this next bit is the serious part and I need you to actually read it, bestie πtinccomes with ABSOLUTELY NO WARRANTY. none. zero. it's free software, and you're welcome to redistribute it under certain conditions β see the fileCOPYINGfor the details. fr fr, go read it π
π AUTHORS π
the icons who made this happen, give it up πππ
- Ivo Timmermans
- Guus Sliepen
<guus@tinc-vpn.org>
and a huge thank you to the many others for their contributions to tinc! you all ate and left zero crumbs ππ§π
alright that's the whole page, we made it π this one's from the tincctl(8) corner of the docs and it's dated 2014-01-16 β an absolute vintage icon, lowkey a period piece, but still serving π
β¨ take care of yourself, drink some water, and may your tunnels always come up on the first try π«Άππ
π¦ where this page comes from
- alpine 3.24: tinc-pre-doc 1.1.18-r2 Β· GPL-2.0-or-later
- nixpkgs unstable: tinc 1.1pre18
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms