How do you like to transfer large files between friends across the internet?
from ReducedArc@lemmy.world to selfhosted@lemmy.world on 17 Mar 17:21
https://lemmy.world/post/26975831

On occasion I find myself needing to send a file at least a few gigabytes in size to a friend across our slow ISPs but haven’t found a satisfying solution. I usually end up creating a private torrent with the announce address of my own IP. Even though it’s slow - it basically never reaches my max upload speed for some reason, it is at least resilient if there are ever any network glitches.

Does anyone else face this same challenge?

EDIT: Thank you for the awesome suggestions! I have some homework to do on these

#selfhosted

threaded - newest

TheFinn@discuss.tchncs.de on 17 Mar 17:22 next collapse

Syncthing

Cano@lemm.ee on 17 Mar 17:27 next collapse

You can use syncthing to transfer files across the internet? How? I thought it was only for local networks

MangoPenguin@lemmy.blahaj.zone on 17 Mar 20:18 next collapse

By default out of the box it will transfer over the internet if it needs to.

oldfart@lemm.ee on 18 Mar 07:24 collapse

It just works, there’s no “how”. Take one of the devices outside, connect to the internet, done.

NaibofTabr@infosec.pub on 17 Mar 17:42 collapse

Er, wait, are you using Syncthing for its intended purpose of syncing files across devices on your local network? And then exposing that infrastructure to the internet? Or are you isolating Syncthing instances?

iii@mander.xyz on 17 Mar 17:55 next collapse

Syncthing is not limited to local network. It’s hole punching is one of the major features

kratoz29@lemm.ee on 17 Mar 21:19 next collapse

The fact that Syncthing seems to solve CGNAT on its own has me wondering why there are not more solutions for the server/home side.

Why does Wireguard or any other VPN not work like Tailscale or Zerotier?

Why don’t torrent clients can’t work with IPv6 to seed more?

Why doesn’t Plex adopt a similar mechanic like Syncthing to expose the media over the Internet instead of being a prisoner of CGNAT?

I know I am just throwing different options with my personal frustrations lol, but I hope you get what I am trying to mean, Plex, torrent and home VPN users shouldn’t become masters at networking, especially when the documentation for the tools IS NOT ENOUGH.

WhyJiffie@sh.itjust.works on 17 Mar 21:33 collapse

Why does Wireguard or any other VPN not work like Tailscale or Zerotier?

tailscale and zerotier are wireguard, but with a public server that helps with NAT. Syncthing uses a public server for that too.

wireguard was specifically made to be as simple and minimalistic as possible.

Why don’t torrent clients can’t work with IPv6 to seed more?

is there such a problem? honest question. But I think that might be a different issue

Why doesn’t Plex adopt a similar mechanic like Syncthing to expose the media over the Internet instead of being a prisoner of CGNAT?

maybe they just don’t see working on it profitable enough

kratoz29@lemm.ee on 17 Mar 22:51 next collapse

tailscale and zerotier are wireguard, but with a public server that helps with NAT. Syncthing uses a public server for that too.

wireguard was specifically made to be as simple and minimalistic as possible.

Zerotier wasn’t always Tailscale was it?

is there such a problem? honest question. But I think that might be a different issue

You need to be connectable to download from all the peers, likewise non connectable users can’t download from you, and how do you become connectable? By opening your ports, something that might seem archaic from somebody who has totally embraced IPv6.

maybe they just don’t see working on it profitable enough

Yeah maybe.

Just to clarify, I have several workarounds for the 3 issues that have involved spending more money or not to get rid of CGNAT.

  • For the 1st one… Well I already mentioned it, I am a ZT and Tailscale user, I did try Wireguard from a VPS once though, but I didn’t like that I was entirely dependant of my upload speed, maybe I had my Iptables wrongly configured but I usually got faster speeds just using ZT or Tailscale (I didn’t need to relay in the US VPS server).

  • For Torrenting… I actually haven’t found a solution to use IPv6… I did use a container client to use my VPS at that time though, it being Digital Ocean and thus getting a DMCA letter for downloading TWD me being a LATAM user was… A kinda funny experience, with that said I stopped that project immediately, it was fun to give back to the community with my 24/7 NAS always seeding though.

  • For the last point… Well, I do use ZT and Tailscale to access the server myself, but when I want to expose it, I usually do it with a reverse proxy pointing out to my IPv6 address, and more recently using a Tailscale funnel, I haven’t tried it thoroughly, but at least it seems to connect without using Plex’s relays.

As you can see, one needs to be well prepared with workarounds to deal with CGNAT.

WhyJiffie@sh.itjust.works on 18 Mar 12:12 collapse

Zerotier wasn’t always Tailscale was it?

it is not tailscale. but also it seems I was wrong and its not wireguard either

You need to be connectable to download from all the peers, likewise non connectable users can’t download from you, and how do you become connectable? By opening your ports, something that might seem archaic from somebody who has totally embraced IPv6.

I know what opening ports is, I only have v4. But I thought you have difficulties with bittorrent over v6. or is it that you still need to open ports for v6, in the firewall or something?

kratoz29@lemm.ee on 18 Mar 14:40 collapse

it is not tailscale. but also it seems I was wrong and its not wireguard either

Yeah, I totally meant Wireguard there, my bad.

I know what opening ports is, I only have v4. But I thought you have difficulties with bittorrent over v6. or is it that you still need to open ports for v6, in the firewall or something?

I don’t have difficulties to download, I have difficulties to seed because I am CGNATED and it seems Qbittorrent or any Torrent client really can’t use IPv6 to be more connectable thus seed more.

I want to seed more without having to pay for it or do convoluted workarounds.

Andres4NY@social.ridetrans.it on 17 Mar 22:28 collapse

@WhyJiffie @kratoz29

> is there such a problem? honest question. But I think that might be a different issue

Yes, that is a problem. We're still in a world where you need to manually enable port forwarding in order to get better seeding for bittorrent clients, and if you have CGNAT you're SOL (short of using a VPN or something to bounce through an external host).

It's likely because torrent software is older (& in crappier languages), and came about before CGNAT was a thing.

WhyJiffie@sh.itjust.works on 18 Mar 12:01 collapse

> is there such a problem? honest question. But I think that might be a different issue

Yes, that is a problem. We’re still in a world where you need to manually enable port forwarding in order to get better seeding for bittorrent clients, and if you have CGNAT you’re SOL (short of using a VPN or something to bounce through an external host).

I don’t understand, sorry. they were saying that something doesn’t work as expected IPv6. but CGNAT is not used for IPv6, is it? and you don’t really forward ports either, maybe you allow them through in the routercs firewall but notnsure because I don’t have v6

We’re still in a world where you need to manually enable port forwarding

well, you don’t need to, often you can also enable the upnp function in the router so that any software can open all the ports it wants, which is a terrible idea security-wise

oppy1984@lemm.ee on 18 Mar 06:05 collapse

Yep, I’ve got a buddy in another country that I needed to share a group of files with, it was several gigs and we were both editing things.

We setup a syncthing connection and once we were synced it just worked. I also use it on my LAN to sync personal files, but to share with him we both just set up a folder and I just shared that one folder with him while the rest of my shares stayed private on the LAN.

Syncthing is amazing.

brickfrog@lemmy.dbzer0.com on 17 Mar 18:00 next collapse

Syncthing is not just for LAN use. Even their homepage mentions transmitting data over the internet

syncthing.net

I’ve been using it to sync devices over the internet for years. It’s also how people use it to sync from say their desktop to their phones, remote server, etc.

If you watch your network firewall Syncthing does reach out to servers on the internet to help it find other devices so e.g. if you enter the other device’s ID (example ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG) it can reach out over the internet to find that specific ID to pair with. I think Syncthing uses a sort of DHT resolver to find other devices, I know on my firewall I had to whitelist Syncthing’s servers to make it work.

I was going to try to link you some references but their forums seem to have connection issues at the moment, you may want to search around later if you’re interested how Syncthing works over the internet.

MangoPenguin@lemmy.blahaj.zone on 17 Mar 20:17 next collapse

Syncthing is designed to be used over the internet, it’s why it supports NAT hole punching, relay servers, and discovery servers.

Swarfega@lemm.ee on 17 Mar 21:19 next collapse

It’s very much a WAN solution too. I use it to push my files to a Pi Zero W that’s 200 miles from my house. I use it as an off site store of my files. The Pi is connected as an untrusted device in Syncthing so that all files sit encrypted at rest.

Appoxo@lemmy.dbzer0.com on 17 Mar 22:37 next collapse

Syncthing has public relays enabling it to work (dunno if one or none need to be public) without both parties being exposed.

NaibofTabr@infosec.pub on 19 Mar 07:01 collapse

I mean… exposed to each other, sure, but they’re all exposed to Syncthing and the public relays.

Appoxo@lemmy.dbzer0.com on 19 Mar 07:18 collapse

I meant exposed being publicly accessible by navigating to syncthing.example.org with being exposed thus not needing a relay.

0x0@programming.dev on 18 Mar 11:07 next collapse

You’re probably thinking of PairDrop (which also allows extranet).

Mio@feddit.nu on 18 Mar 11:36 collapse

The user can choose. Please note you first much accept another client by its fingerprint.

Knossos@lemmy.world on 17 Mar 17:35 next collapse

You could try wormhole. It makes a direct connection.

eight_byte@feddit.org on 17 Mar 19:01 collapse

Or croc which is very similar. I think it also allows to resume file transfers.

[deleted] on 17 Mar 17:36 next collapse

.

WhyJiffie@sh.itjust.works on 17 Mar 21:37 collapse

It’s generally not a good idra to give others access to your home network

Moonrise2473@feddit.it on 17 Mar 17:46 next collapse

i like zipline but i use it for smaller files where download resumability is not a key factor

skankhunt42@lemmy.ca on 17 Mar 17:57 next collapse

I host pingvin for people to send stuff to me. To send, usually I’ll just move the file into a folder that exposed to Nginx with indexing and send that link. Otherwise I’ll also just use my pingvin instance.

raina@sopuli.xyz on 17 Mar 17:58 next collapse

I tell them to start their Nextcloud client. Or if they don’t have it, give them the share link.

danielquinn@lemmy.ca on 17 Mar 18:44 next collapse

I find Croc to be rather just good for this.

miss_demeanour@lemmy.dbzer0.com on 17 Mar 18:49 next collapse

Swisstransfer

Internetxt

JRaccoon@discuss.tchncs.de on 17 Mar 18:50 next collapse

My use case is a bit different than yours but still worth mentioning, I think; I have Sharry running in Docker and it makes sharing and receiving files super easy. All downloads and uploads are resumable so they work well even in unstable networks.

zewm@lemmy.world on 17 Mar 18:52 next collapse

If they are local, you can just put it on a thumb drive and physically transfer it.

ReducedArc@lemmy.world on 17 Mar 20:01 next collapse

Absolutely, that is definitely preferred when possible!

AtariDump@lemmy.world on 18 Mar 02:55 collapse

If they’re not local, you can put it on a pen drive and mail it to them.

RonnyZittledong@lemmy.world on 17 Mar 18:54 next collapse

I have a minio instance that I use to distribute files

JigglySackles@lemmy.world on 17 Mar 19:02 next collapse

Wormhole.app, can’t recall if they have a limit atm

UnH1ng3d@lemmy.world on 17 Mar 20:24 collapse

I use wormhole, but when I’ve wanted to use that website for receiving, I can never tell how to do it.

Can you actually use that site to receive files?

SilentKnightOwl@slrpnk.net on 17 Mar 21:04 next collapse

Whoever uploaded them has to send you a link to them. It does have a limit of 10gb, but it’s pretty reliable in my experience.

UnH1ng3d@lemmy.world on 18 Mar 11:35 collapse

Ahh, I see. I’ve got a wormhole app on my phone which I was trying to use to send from. I guess it just can’t work with that website. Thanks

JigglySackles@lemmy.world on 17 Mar 23:48 collapse

So just like when you send a file you fwd a link, someone tfering files to you must provide the link. They expire in a maximum of 24 hours though so do be aware of that.

UnH1ng3d@lemmy.world on 18 Mar 11:36 collapse

I was trying to send from a wormhole app, which I now see doesn’t work with the website.

MightyCuriosity@sh.itjust.works on 17 Mar 19:54 next collapse

Send

plim@feddit.dk on 17 Mar 19:58 next collapse

wormhole is good; also its CLI.

wormhole.app

Brunette6256@sh.itjust.works on 18 Mar 02:49 collapse

Wormhole or croc

hperrin@lemmy.ca on 17 Mar 20:01 next collapse

Super easy. Spin up an OpenVPN server, forwarding the right ports to your server. Now spin up an Apache server with the folder your file’s in as server root. Send the client config for your VPN to your friend, along with the local address of your HTTP server. Now they can install the OpenVPN client on their PC and download the file from your HTTP server. Once you’re done, tear down all your servers, and don’t forget to unforward the ports. Couldn’t be easier.

/s

Rekorse@sh.itjust.works on 17 Mar 20:40 next collapse

Okay can you explain why thats a sarcastic answer? Is one of those first three steps way harder than I think it is?

WhyJiffie@sh.itjust.works on 17 Mar 21:15 next collapse

openvpn and apache can be very time consuming to set up if you do it for the first time

hperrin@lemmy.ca on 17 Mar 21:19 collapse

Cause that’s not simple or easy at all. It takes a fair bit of knowledge to set up all of these things.

admin@lemmy.haley.io on 17 Mar 21:17 collapse

I have non-ironically gotten responses like this

theskyisfalling@lemmy.dbzer0.com on 17 Mar 20:10 next collapse

Just share the folder on soulseek. Probably not advisable for any sensitive information though xD

MangoPenguin@lemmy.blahaj.zone on 17 Mar 20:19 next collapse

I’ve used:

send.tresorit.com

wormhole.app

pairdrop.net

But for slower connections bittorrent is the best option by far because it doesn’t care about interruptions, and verifies the data as it goes. Just gotta make sure you’re port forwarding the client.

Peaches@lemmy.today on 17 Mar 20:26 next collapse

Reminds me I had been needing to find something for this too. Looks like I had thought about using Croc.

Rekorse@sh.itjust.works on 17 Mar 20:43 next collapse

Not sure if this works for you but I didnt see it mentioned. I use plex for my media server, so I would just put whatever it is on there and then someone else can log in remotely and download it through the app on their mobile, and I think also via the website too.

I know this works if the person is downloading from android but haven’t tested otherwise.

ReducedArc@lemmy.world on 17 Mar 20:57 collapse

That should work for media files at least, but I believe they’ll also need Plex pass to be able to download anything.

brickfrog@lemmy.dbzer0.com on 17 Mar 22:22 collapse

Should be able to do that with Jellyfin, no Plex/Plex Pass needed (if you really want to use media software for this).

That said I suspect your current method with creating a torrent to share is much more resilient when dealing with choppy internet connections. With Jellyfin/Plex it’s more of a direct download situation, not sure if either can resume broken downloads.

manicdave@feddit.uk on 17 Mar 21:01 next collapse

I’d go for syncthing over nextcloud for your specific usecase. Nextcloud isn’t good for unreliable connections and they’re sticking with the annoying decision of not supporting server to server synchronization.

grimer@lemmy.world on 17 Mar 21:50 next collapse

I literally just set up a container for Erugo for this exact thing. It worked perfectly and was super easy to do. It’s just a self-hosted version of wetransfer. Could be helpful…

Appoxo@lemmy.dbzer0.com on 17 Mar 22:35 next collapse

If its a file from my seedbox: Direct share link (optional pw)
Local file: OneDrive

mike_wooskey@lemmy.thewooskeys.com on 17 Mar 22:48 next collapse

I used vaultwarden just the other day for this purpose. I mean, I use vaultwarden daily as a password manager, but it also has secure file transfer.

deprecateddino@lemmy.world on 17 Mar 22:59 next collapse

I’ve use Plik before with success.

github.com/awesome-selfhosted/awesome-selfhosted?…

Kolanaki@pawb.social on 17 Mar 23:00 next collapse

Friends I know IRL: Thumbdrives.

Friends I only know via the Internet: Torrents or IRC filesharing.

Though knowing that a homing pigeon with a thumb drive is actually faster than the fastest Internet network on the planet, maybe I should simply invest in a coop and some pigeons. 🤔

Mic_Check_One_Two@reddthat.com on 17 Mar 23:45 next collapse

Though knowing that a homing pigeon with a thumb drive is actually faster than the fastest Internet network on the planet

Depends on how big the flash drive is, I suppose. Need to send a 1GB file? Just make a torrent. Need to send 40TB? Yeah, that hard drive is getting driven across town.

Kolanaki@pawb.social on 18 Mar 00:23 collapse

Perhaps two pigeons could carry the hard drive on a string. I’ve heard tell of swallows that have done this with coconuts.

brighteast@lemmy.world on 18 Mar 09:43 collapse

Exactly what kind of pigeons are we talking about here? Or would you recommend switching to an avian variant of the migratory type?

Strit@lemmy.linuxuserspace.show on 18 Mar 10:59 collapse

I’d recommend either an african or european swallow.

[deleted] on 18 Mar 11:06 collapse

.

bigDottee@geekroom.tech on 17 Mar 23:30 next collapse

I’d have to have friends across the internet that wanted files first…

Darkassassin07@lemmy.ca on 17 Mar 23:38 next collapse

FileBrowser

Create share links allowing anyone with the link (+ optional password) to browse and download individual files, or whole folder contents.

If someone needs to send me a file, I can create a user for them in a few seconds; so they can upload to that as well.

Retro_unlimited@lemmy.world on 18 Mar 00:47 next collapse

Before I moved I used to use my web server.

My Domain . Com / files . Zip And I would set a password on the zip. After they download it, they tell me and I remove the file.

ancoraunamoka@lemmy.dbzer0.com on 19 Mar 07:59 collapse

Same, always eorked great for me

Typewar@infosec.pub on 18 Mar 00:56 next collapse

Me and my friend used netcat to transfer 30 GB of files put into a zip. Very fun, would not recommend

fubarx@lemmy.world on 18 Mar 02:32 next collapse

RFC 2549: www.rfc-editor.org/rfc/rfc2549

This problem was solved years ago: …ieee.org/pigeonbased-feathernet-still-wingsdown-…

ohshit604@sh.itjust.works on 18 Mar 04:54 next collapse

Upload to Proton Drive > Create share link > Share link

monogram@feddit.nl on 18 Mar 07:23 next collapse

file.pizza

0x0@programming.dev on 18 Mar 11:04 next collapse

You can OnionShare if you’re worried about privacy.

Tabooki@lemm.ee on 18 Mar 12:15 next collapse

Nextcloud is great for this

FarraigePlaisteach@lemmy.world on 18 Mar 12:25 next collapse

I use www.sendbig.com I haven’t read their privacy policy, though.

eneff@discuss.tchncs.de on 18 Mar 12:36 next collapse

I really like Wormhole for this exact purpose.

Treczoks@lemmy.world on 18 Mar 15:43 next collapse

My largest file transfer I have done via USB disk. You simply don’t transfer multiple terabytes over the net.

ReducedArc@lemmy.world on 18 Mar 15:56 collapse
AllHailTheSheep@sh.itjust.works on 18 Mar 16:03 next collapse

rsync

GaMEChld@lemmy.world on 18 Mar 16:06 collapse

I use an ancient HTTP File Server program called HFS from Rejetto. Very light weight. Supports making user accounts and whatnot if you want.

I usually just turn it on for a transfer and don’t leave it up these days, but still comes in handy on occasion.

tripflag@lemmy.world on 19 Mar 17:35 collapse

HFSv2 (the windows exe) has publically known unfixed vulnerabilities! Please upgrade to HFSv3 (nodejs, crossplatform). I’m also maintaining a list of other alternatives; github.com/9001/copyparty/blob/…/versus.md

GaMEChld@lemmy.world on 20 Mar 13:02 collapse

Thanks!