VPN Network Service - Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
#nebula #tailscale #mesh #vpn #golang #go #overlay #meshvpn
|
4 years ago | |
---|---|---|
.github | 4 years ago | |
config | 4 years ago | |
controllers | 4 years ago | |
docs | 4 years ago | |
functions | 4 years ago | |
grpc | 4 years ago | |
models | 4 years ago | |
mongoconn | 4 years ago | |
netclient | 4 years ago | |
scripts | 4 years ago | |
servercfg | 4 years ago | |
serverctl | 4 years ago | |
test | 4 years ago | |
.gitignore | 4 years ago | |
Dockerfile | 4 years ago | |
LICENSE.txt | 4 years ago | |
README.md | 4 years ago | |
defaultvalues.sh | 4 years ago | |
docker-compose.nodns.yml | 4 years ago | |
docker-compose.yml | 4 years ago | |
go.mod | 4 years ago | |
go.sum | 4 years ago | |
main.go | 4 years ago | |
mesh-diagram.png | 4 years ago | |
netmaker-install-v3.sh | 4 years ago | |
netmaker.png | 4 years ago |
Connect any computers together over a secure, fast, private network, and manage multiple networks from a central server.
Netmaker is a tool for creating and managing virtual networks. If you have servers spread across multiple locations, data centers, or clouds, they all live on separate networks. This can make life very difficult. Netmaker takes all those machines and puts them on a single, flat network so that they can talk to each other easily and securely.
Think of it like Tailscale, ZeroTier, or Nebula, but faster, easier, and more dynamic.
You spin up the Netmaker server and UI, and then install the Netclient (agent) on your computers. Netmaker will do the rest. It will tell all of your computers how to reach each other and will keep them informed of any changes to the network.
Netmaker's handy dandy UI can be found here.
Under the hood, Netmaker uses WireGuard to create encrypted tunnels between every node in your virtual network, creating a full mesh overlay. Netmaker takes the work out of manually configuring machines with WireGuard and updating them every time you have a change in your network. The netclient agent is self-updating and pulls any necessary changes (such as new peers) from the server.
Netmaker is primarily designed for linux, specifically systemd-based linux. This includes Fedora, Ubuntu, and Raspian. Just make sure you have WireGuard installed. Having a problem? Open an issue or Contact us.
In version 0.3 we have released Private DNS. Nameservers can be configured manually on any system, but to have the Netclient add dns automatically, it requires resolvectl.
In future releases, we have plans to support other platforms such as Windows and MacOS.
For more information, please read the docs, or check out the Quick Start below:
Intro/Overview Video Tutorial
Site-to-Site Video Tutorial
The default installation requires special privileges on the server side, because Netmaker will control the local kernel Wireguard. This can be turned off and run in non-privileged mode if necessary (but disables some features). For more details, see the Usage docs.
v0.3 introduces CoreDNS as a private nameserver. To run CoreDNS on your server host, you must disable systemd-resolved to open port 53:
Note, this installs Netmaker with CoreDNS and a Netclient (privileged). If you want to run the server non-privileged or without CoreDNS, see the advanced usage docs.
sudo docker-compose up -d
You can also just use the "default" network.
After Network creation, you can edit the network in the NETWORK DETAILS pane, modifying the address range and default options. You can also toggle on Allow Node Signup Without Keys, which makes the next step unnecessary, but allows anyone to create a node in your network, which will be cordoned in pending state.
For machines without netclient, run the install command (from above): curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/netclient-install.sh | KEY=<your access key> sh -
For machines with netclient run the following (with access token from above): sudo netclient -c install -t <access token>
For networks with manual signup enabled (see above), install using the network name: sudo netclient -c install -n <network name>
Your machines should now be visible in the control pane. Modify nodes: Click the pencil icon in the NODES pane to modify details like WireGuard port, address, and node name. You can also DELETE nodes here and they will lose network access. Approve nodes: If a node is in pending state (signed up without key), you can approve it. An icon will appear for pending nodes that need approval.
Gateway Mode: Click the Gateway icon to enable gateway mode on a given node. A popup will allow you to choose an existing network, or enter a custom address range. Example: You create a network in netmaker called Homenet. It has several machines on your home server. You create another network called Cloudnet. It has several machines in AWS. You have one server (server X) which is added to both networks. On Cloudnet, you make Server X a gateway to Homenet. Now, the cloudnet machines have access to your homenet machines. via Server X.
On Homenet, you add Server Y, a machine in AWS, and make it a gateway to a custom address range 172.16.0.0/16. The machines on your home network now have access to any AWS machines in that address range via Server Y
On the DNS tab you can create custom DNS entries for a given network.
To uninstall the client from a network: sudo netclient -c remove -n < networkname >
To uninstall entirely, run the above for each network, and then run sudo rm -rf /etc/netclient
To uninstall the netmaker server, simply run docker-compose down
Netmaker's source code and all artifacts in this repository are freely available. All versions are published under the Server Side Public License (SSPL), version 1, which can be found here: LICENSE.txt.
Email: [email protected]
Discord: https://discord.gg/zRb9Vfhk8A