←back to thread

816 points tosh | 8 comments | | HN request time: 0.828s | source | bottom
Show context
geerlingguy ◴[] No.41276702[source]
I've used this for years when passing large files between systems in weird network environments, it's almost always flawless.

For some more exotic testing, I was able to run my own magic wormhole relay[1], which let me tweak some things for faster/more reliable huge file copies. I still hate how often Google Drive will fall over when you throw a 10s-of-GB file at it.

[1] https://www.jeffgeerling.com/blog/2023/my-own-magic-wormhole...

replies(4): >>41277198 #>>41277682 #>>41277698 #>>41278657 #
cl3misch ◴[] No.41277198[source]
> you need a machine that can handle whatever link speeds you need

I would have expected the relay server only being used for initial handshake to punch through NAT, after which the transfer is P2P. Only in the case of some network restrictions the data really flows through the relay. How could they afford running the free relay otherwise?

replies(2): >>41277253 #>>41277819 #
1. from-nibly ◴[] No.41277819[source]
You cant make a p2p connection over a NAT without exposing a port on the public side of the NAT.
replies(3): >>41277878 #>>41278549 #>>41278577 #
2. t0mas88 ◴[] No.41277878[source]
You can: https://en.wikipedia.org/wiki/Hole_punching_(networking)
3. kccqzy ◴[] No.41278549[source]
Go check out STUN and ICE.

The best article I've found about NAT traversal is this article from Tailscale: https://tailscale.com/blog/how-nat-traversal-works

replies(2): >>41280333 #>>41282082 #
4. voxic11 ◴[] No.41278577[source]
You aren't guaranteed to be able to do that but in practice most times you can.
5. jvansc ◴[] No.41280333[source]
https://sendfiles.dev/
replies(2): >>41280397 #>>41283384 #
6. yownie ◴[] No.41280397{3}[source]
is there a filesize limit for this?
7. Fnoord ◴[] No.41282082[source]
Not bad, though you don't even need STUN or ICE;

https://github.com/samyk/pwnat

https://github.com/samyk/slipstream

8. kccqzy ◴[] No.41283384{3}[source]
That uses WebRTC, which uses the same NAT traversal tricks.