• Stars
    star
    469
  • Rank 93,595 (Top 2 %)
  • Language
  • Created almost 3 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A text repo to feature-track WireGuard mesh software

Compare WireGuard Mesh Tools

WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography and supports mesh networking. However by default it requires manual configuration. As such adding a new client to the network would require the admin to update O(n2) client configurations each time they add a new client. wg-dynamic was a proposed WireGuard-native tool that would help with autoconfiguration, unfortunately development of this has gone stale. So here is a list of alternative tools instead.

Table

Feature\Software Open source Free Full Mesh Auto conf Devices Supports Users Allows full tunnel Subnet Access NAT traversal Linux Windows MacOS Android iOS OpenWRT Custom DNS
Vanilla WireGuard βœ… βœ… ❌ ❌ Unlimited ❌ βœ… βœ… ❌ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ βœ…
Tailscale βœ…β—0 βŒπŸ†“ βœ… βœ… Unlimited 1️⃣0️⃣0️⃣ βœ… 3️⃣ βœ… βœ… βœ… 🌐 πŸŒπŸ” πŸŒπŸ” πŸŒπŸ” πŸŒπŸ” βœ… βœ… ❗3
Headscale βœ… βœ… βœ… βœ… Unlimited ❌ βœ… βœ… βœ… 🌐 🌐 🌐 πŸŒβ—2 ❌ βœ… βœ…
Netmaker βœ…β—1 βœ… βœ… βœ… Unlimited βœ… βœ… βœ… βœ… 🌐 🌐 🌐 βœ΄οΈβ„οΈ βœ΄οΈβ„οΈ βœ… βœ…
WGSD βœ… βœ… βœ… ❌ Unlimited ❌ βœ… ❌ βœ… βœ… ❌ ❌ ❌ ❌ ❌ ❌
Innernet βœ… βœ… βœ… ❌ Unlimited βœ… βœ… ❌ βœ… βœ… ❌ βœ… ❌ ❌ ❌
Wesher βœ… βœ… βœ… βœ… Unlimited ❌ βœ… ❌ ❌ ❌ ❌ ❌ ❌
Netbird βœ… βœ… βœ… βœ… Unlimited 2️⃣0️⃣ βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ ❌ βœ… βœ…
wgmesh βœ… βœ… βœ… βœ… Unlimited ❌ βœ… ❌ ❌ 🌐 ❌ ❌ ❌ ❌ ❌ ❌
wiresmith βœ… βœ… βœ… βœ… Unlimited ❌ ❌ ❌ ❌ 🌐 ❌ ❌ ❌ ❌ ❌ ❌

0Tailscale's client code is open source. Tailscale's control server code is entirely closed source (It's a SaaS product).

1Netmaker uses the SSPL license, which is not an "official" open source license occording to the OSI.

2Headscale uses the tailscale android client. Instructions

3When routing all traffic through an exit node tailscale ignores custom DNS. Issue

Legend

  • πŸ†“ Has free tier
  • 3️⃣ Limited amount on free tier (e.g 3)
  • πŸ” This software version is closed source
  • πŸ’³ Paid version only
  • 🌐 Client can join as member of the full mesh
  • ✴️ Client can join as a 'spoke' off a node/gateway on the mesh
  • ❄️ Client can join the network but updates to the network are not automatically propgated to the client
  • πŸ”œ Developer claims the feature is coming soon
  • ❗0 Significant exception to the feature (should link to explanation)

Disclaimer

WireGuard is a registered trademark of Jason A. Donenfeld.

Changes

Please help update this table by using issues or pull requests. You may find https://www.tablesgenerator.com/markdown_tables helpful (File -> paste table data)

Columns

Column Description
Feature\Software The name and hyperlink to the project's main repository or website.
Open source Is the project open source.
Free Is the project entirely free to download, install and use.
Full Mesh Does the project allow every peer to communicate with every other peer directly. Relying on AllowedIPs to route traffic via a central peer in a hub and spoke model does not count.
Auto conf When a new peer is added to the mesh, are all other peers update automatically. Usually a requirement to be featured in this repo
Devices How many devices can the mesh support.
Supports Users Does the project allow users to be configured, usually for user access control.
Allows full tunnel Is the project capable of tunnelling all external traffic over at least one of the peers.
Subnet Access Can a device 'expose' the devices on its subnet to peers, usually using wiregaurd's AllowedIPs. This could allow you to access resources on your home network if your router was connected to the mesh, for example.
NAT traversal Can two peers that are each behind a separate NAT communicate with one another. This usually requires some other non-NATed central peer to update each NATed peer with the other's IP and port. Sometimes called NAT hole-punching
Linux Can the project be set up on a Linux machine e.g Ubuntu
Windows Can the project be installed on a Windows machine.
MacOS Can the project be installed on a MacOS machine.
Android Is there an Android App and can it connect to every other peer.
iOS Is there an iOS App and can it connect to every other peer.
OpenWRT Can the project be installed on an OpenWRT router. Useful if you want everything on your network to be able to access the devices on the mesh
Custom DNS Can the DNS provider used by all peers be configured centrally.