Holesail is the P2P company, building a truly peer to peer and open source reverse tunnelling software
"Create P2P tunnels instantly that bypass any network, firewall, NAT restrictions and expose your local network to the internet securely, no Dynamic DNS required."
Discord is still a legitimate form of contact and support for a lot of people. Out of interest, where do you see that line? I can only see Discord mentioned alongside e-mail and some other (even less tasteful than Discord) contact methods for support.
To all those downvoting I'm not saying that Holesail is using Discord correctly, just saying that just having Discord (or any other chat platform) as an option shouldn't be an instant red flag and it depends on how the project actually utilises it.
Very first line of the GitHub readme. As a support tool it's mostly useless, endless similar or identical questions answered differently or not at all and none of it indexed by search engines for use on the web.
It's an awful data silo / black hole that increases volunteer load.
The problem is not that Discord is used as a contact method the problem is that Discord chats are not indexable so if someone has a problem and gets solved its gets lost on the chat logs and its not like a forum.
Static IP address and Dynamic DNS can expose your network to attackers on the internet. With Holesail, you expose only the port you choose.
Er, wut? If you're exposing a port, then your public IP is being used, as a port is a subset of an IP interface. So even Holesail uses the public IP in some way...thats how the internet works. Unless they're only making outbound connections, which isn't a new idea at all - Hamachi was doing it 20 years ago.
This sounds like FUD to me - of course your public IP is used, whether static or dynamic. How do they supposedly mitigate this risk?
There's nothing on the home page saying how it works, or how it's different than current solutions.
I'm intrigued to see a new tool in this space, but this one is starting off leaving a bad taste. Even Tailscale admits they use Wireguard, and even have a comparison between Wireguard and Tailscale that's pretty honest (though they focus on what Tailscale adds).
Being open and transparent is a minimum today - anything less and it's not worth the time for a second look.
My guess is that this works similar to a Tor hidden service, where you can't even access the open port without a key of some kind and then you can only access that specific port. It's not the same as having a port open on your IPv4 address since from the router's perspective it's only an outgoing connection. Somebody portscanning you wouldn't find that port open. Though I could be wrong.
This VPN protocol usually uses a private key (client) / public key (server) combo that is used to connect through a public IP address (the 2 nodes can’t communicate it without) using the specified TCP or UDP (more often lately) and port to create the VPN tunnel that’s gets established during the handshakes.
There is a whole lot more going on with the process but that’s a high level view. But I have a WireGuard VPN service running on a raspberry pi that I put in a DMZ on my perimeter firewall.
But a port scanner would be able to see that port is open. Make sure you keep your software up to date. Hopefully the software devs of the VPN application is keeping their stuff up to date to avoid any vulnerabilities getting exposed in the code and a backdoor getting created because of it. As long as that doesn’t become an issue, no one will be able to get through without the private key. And those are usually uncrackable in a lifetime with the complexity and length of the key.
I know ngrok is something different, but do you know if it uses a technology similar to Hamachi too? I'm asking because I discovered that ngrok works even without a public IP (when you use a mobile connection for example).
I don't understand, it says it's P2P, then it also says expose your local network to the internet securely. How can a P2P service expose anything to the internet without a gateway server somewhere?
Static IP address and Dynamic DNS can expose your network to attackers on the internet. With Holesail, you expose only the port you choose.
That's also how NAT works, you only expose the ports you choose.
This looks like one of those wireguard based solution like tailscale or netbird though I'm not sure they are using it here. They all use a public relay used for NAT penetration as well as client discovery and in some instance, when NAT pen fails, traffic relay. From the usage, this seems to be the case here as well:
So this would register a "holesailMCServer420" on their relay server. The clients could then join this network just by knowing its name and the relay will help then reach the host of the Minecraft server. I'm just extrapolating from the above commands though. They could be using DHT for client discovery. But I expect they'd need some form of relay for NAT pen at the very least.
As for exposing your local network securely, wireguard based solution allow you to change the routing table of the peers as well as the DNS server used to be able to assign domain name to IPs only reachable from within another local network. In this instance, it works very much like a VPN except that the connection to the VPN gateway is done through a P2P protocol rather than trough a service directly exposed to the internet.
Though in the instance of holesail, I have heavy doubts about "securely" as no authentication seems required to join a network: you just need to know its name. And there is no indication that choosing a fully random name is enough.
There really isn't much to this Holesail project - it's a little convenience wrapper around Hyper DHT and that's a part of this Pear project it seems. That site has a list of the various components and links to each one's GitHub.
Pear looks like an interesting project but I haven't looked through the details of how it works.
Setting up a custom reverse proxy is time-consuming and requires advanced knowledge of nginx/apache2.
ezpz with Caddy. tailscale + caddy can get this done pretty easily.
Also, not hating on nodejs, but this project screams like it shouldn't be in nodejs. Maybe if there was a webui included that would make sense. Otherwise I'd expect C or Go.