Tinc is open-source VPN software written in C. Tinc allows users to create a server-less, full-mesh VPN topology, where every participating user communicates with each other directly over a VPN, which is more latency-efficient and scalable than the client-server based VPN model. If two users are behind NATs, not able to establish a direct connection, an intermediate Tinc node which can access both users can forward traffic between them. In Tinc VPN, data packets are encrypted (using OpenSSL's symmetric ciphers), optionally compressed (with zlib/lzo), and encapsulated over UDP. Tinc supports both routing mode (via
tun
) and bridge mode (via
tap
). The former is used to establish routable layer-3 point-to-point connections, while the latter is used to interconnect two virtual interfaces on the same layer-2 network. Other features include automatic connection recovery, MTU discovery, SOCKS proxy, IPv6 support, and more.