tinc
trust-dns
Our great sponsors
tinc | trust-dns | |
---|---|---|
19 | 14 | |
1,837 | 3,254 | |
- | - | |
5.6 | 7.1 | |
19 days ago | 6 months ago | |
C | Rust | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tinc
-
Would we still create Nebula today?
But both Nebula and tinc max out at around 1 Gbit/s on my Hetzner servers, thus not using most of my 10 Gbit/s connectivity. This is because they cap out at 100% of 1 CPU. The Nebula issue about that was closed due to "inactivity" [2].
I also observed that when Nebula operates at 100% CPU usage, you get lots of package loss. This causes software that expects reasonable timings on ~0.2ms links to fail (e.g. consensus software like Consul, or Ceph). This in turn led to flakiness / intermittent outages.
I had to resolve to move the big data pushing softwares like Ceph outside of the VPN to get 10 Gbit/s speed for those, and to avoid downtimes due to the packet loss.
Such software like Ceph has its own encryption, but I don't trust it, and that mistrust was recently proven right again [3].
So I'm currently looking to move the Ceph into WireGuard.
Summary: For small-data use, tinc and Nebula are fine, but if you start to push real data, they break.
[1]: https://github.com/gsliepen/tinc/issues/218
[2]: https://github.com/slackhq/nebula/issues/637
[3]: https://github.com/google/security-research/security/advisor...
- Which overlay network?
-
Tailscale/golink: A private shortlink service for tailnets
From a purely networking perspective, there are far better solutions than tailscale.
Have a look at full mesh VPNs like:
https://github.com/cjdelisle/cjdns
https://github.com/yggdrasil-network/yggdrasil-go
https://github.com/gsliepen/tinc
https://github.com/costela/wesher
These build actual mesh networks where every node is equal and can serve as a router for other nodes to resolve difficult network topologies (where some nodes might not be connected to the internet, but do have connections to other nodes with an internet connection).
Sending data through multiple routers is also possible. They also deal with nodes disappearing and change routes accordingly.
tailscale (and similar solutions like netbird) still use a bunch of "proxy servers" for that. You can set them up on intermediate nodes, but that have to be dealt with manually (and you get two kinds of nodes).
-
Tunneling to Synology NAS without opening ports.
Two other options are Tinc https://tinc-vpn.org/ or Nebula https://www.defined.net/nebula/
-
Port Forward Security & Alternatives
And there is Tinc; the OG overlay network. I don't have experience with this. Seemed a bit of a pain to setup. https://tinc-vpn.org
-
WireGuard multihop available in the Mullvad app
For what its worth I have used the open source Tinc VPN [1] for mesh multihop routing for ages. It is nowhere near as fast as Wireguard but I could envision Tinc incorporating support for Wireguard if the author were so inclined. Like you mentioned Tinc does not mesh with other VPN's AFAIK.
[1] - https://tinc-vpn.org/
-
You may not need Cloudflare Tunnel. Linux is fine
This is actually very simple in concept and is just as simple or even simpler to do with tinc (https://tinc-vpn.org).
Since I can use tinc in bridge mode, I can run tinc on the upstream server and on a local machine which then provides access to several physical machines without running extra software on each of those machines, which is particularly useful for machines that are resource limited, like my Macintosh LC II and LC III+:
http://elsie.zia.io/
It'd be nice if it weren't so difficult to get public addresses.
-
Tinc Is Not Catan
I clicked expected some broken analogy between https://tinc-vpn.org/ and the Catan board game, but instead it is a Catan implementation. Fair enough.
-
Graphviz: Open-source graph visualization software
will generate a real-time network graph using the Graphviz DOT language. It's a cool feature that I find quite useful.
[0] https://tinc-vpn.org/
trust-dns
-
Hickory DNS
If you don't know what is Trust-DNS / Hickory DNS, this seems to be the repo: https://github.com/bluejekyll/trust-dns
-
You might want async in your project
IO is not a part of the async runtime contract (I don't know if this is good or bad), and Tokio & futures famously have different `Async{Read,Write}` traits. I once had to do this [0] to adapt between them.
This means that any crate that uses IO will be bound to a limited number of Runtimes. Everything being Tokio-only is pretty bad (though Tokio itself is great), but here we are...
[0] https://github.com/bluejekyll/trust-dns/pull/1373#issuecomme...
-
Extract cert.pem and privkey.pem from acme.json
I need a cert.pem and privkey.pem for https://github.com/bluejekyll/trust-dns but even using the extractor to get a cert.pem and privkey.pem from the acme.json file it seems invalid.
-
What would you rewrite in Rust?
You might be interested in Trust DNS - "A Rust based DNS client, server, and Resolver, built to be safe and secure from the ground up."
-
Announcing `async-dns`
It looks like you need to reach for a separate crate for that: https://github.com/bluejekyll/trust-dns/blob/7dcb7b983f5407d95d93b800af13caeee975aaa8/crates/async-std-resolver/src/lib.rs
- Trust-Dns - A rust based dns client, server, and resolver
-
What I learned from making a DNS client in Rust
You might be interested in new alternative to dig called dns https://github.com/bluejekyll/trust-dns/blob/main/util/src/dns.rs . I found out about it from https://twitter.com/benj_fry/status/1513269287229657091
- Show HN: A Trust-DNS based dig alternative
-
Docker: Binary compiled with Musl works but not the one compiled with glibc
I've found the Trust-DNS Resolver crate and it does the job! Now the binary seems to not use any dynamic library to look up the ip of a host.
What are some alternatives?
OpenVPN - OpenVPN is an open source VPN daemon
parity-bitcoin - The Parity Bitcoin client
Nebula - A scalable overlay networking tool with a focus on performance, simplicity and security
woodpecker - Drill is an HTTP load testing application written in Rust
ZeroTier - A Smart Ethernet Switch for Earth
citybound - A work-in-progress, open-source, multi-player city simulation game.
SoftEther - Cross-platform multi-protocol VPN software. Pull requests are welcome. The stable version is available at https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.
Parallel
tailscale - The easiest, most secure way to use WireGuard and 2FA.
rsedis - Redis re-implemented in Rust.
headscale - An open source, self-hosted implementation of the Tailscale control server
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.