33
submitted 1 month ago by lemmyreader@lemmy.ml to c/opensource@lemmy.ml

See also : https://ubuntushell.com/install-bore for some example to self host.

you are viewing a single comment's thread
view the rest of the comments
[-] vort3@lemmy.ml 1 points 1 month ago

If you are good with all of this stuff, can you tell me if usijg bore relays traffic or creates some kind of direct (P2P?) connection between devices?

I have a device without public IP, AFAIK behind NAT, and a server. If I use bore to open a port through my server and host a game, and my friends connect to me via IP, will we have big ping (as in, do packets travel to the server first, then to me) or low ping (as in, do packets travel straight to me)?

In other words, is bore good to play with friends when games use a method if connection via IP when you have a server with public IP, but host a game on your local device without public IP?

We are currently using yggdrasil for this and connect via «local» IPv6.

[-] cypherpunks@lemmy.ml 2 points 1 month ago

I have a device without public IP, AFAIK behind NAT, and a server. If I use bore to open a port through my server and host a game, and my friends connect to me via IP, will we have big ping (as in, do packets travel to the server first, then to me) or low ping (as in, do packets travel straight to me)?

No, you will have "big ping". bore (and everything on that page i linked) is strictly for tunneling which means all packets are going through the tunnel server.

Instead of tunneling, you can try various forms of hole punching for NAT traversal which, depending on the NAT implementation, will work sometimes to have a direct connection between users. You can use something like tailscale (and if you want to run your own server, headscale) which will try its best to punch a hole for a p2p connection and will only fall back to relaying through a server if absolutely necessary.

[-] vort3@lemmy.ml 1 points 1 month ago

Thanks.

I do have wireguard on my server as well, I guess it's similar to what tailscale does?

Too bad my friends from Russia can't connect to me, it might be because we are doing something wrong, but most likely wiregueard is somehow (DPI?) blocked in Russia.

I can connect to my own wireguard, it routes all my traffic and I can access any blocked sites, as well as access other people via «local» IPs over wireguard. I think this uses NAT traversal and we exchange data directly over wireguard. But somehow some friens are not able to use that.

Do you know if Yggdrasil does something similar and if we exchange data directly when playing over Yggdrasil virtual IPv6 network?

[-] cypherpunks@lemmy.ml 2 points 1 month ago* (last edited 1 month ago)

I do have wireguard on my server as well, I guess it’s similar to what tailscale does?

Tailscale uses wireguard but adds a coordination server to manage peers and facilitate NAT traversal (directly when possible, and via a intermediary server when it isn't).

If your NAT gateway isn't rewriting source port numbers it is sometimes possible to make wireguard punch through NAT on its own if both peers configure endpoints for eachother and turn on keepalives.

Do you know if Yggdrasil does something similar and if we exchange data directly when playing over Yggdrasil virtual IPv6 network?

From this FAQ it sounds like yggdrasil does not attempt to do any kind of NAT traversal so two hosts can only be peers if at least one of them has an open port. I don't know much about yggdrasil but from this FAQ answer it sounds like it runs over TCP (so using TCP applications means two layers of TCP) which is not going to be conducive to a good gaming experience.

Samy Kamkar's amazing pwnat tool might be of interest to you.

[-] vort3@lemmy.ml 2 points 1 month ago

Oh, I have found pwnat before, but it's not available for windows, also most people say that it doesn't work anymore because most routers patched the behavior that made it work IIRC.

What's the easy way to know if two peers are directly connected without measuring ping time and guessing?

[-] cypherpunks@lemmy.ml 1 points 1 month ago

You can use Wireshark to see the packets and their IP addresses.

https://www.wireshark.org/download.html

https://www.wireshark.org/docs/

A word of warning though: finding out about all the network traffic that modern software sends can be deleterious to mental health 😬

load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
this post was submitted on 29 Apr 2024
33 points (100.0% liked)

Open Source

28435 readers
161 users here now

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

founded 4 years ago
MODERATORS