13 votes

What is the best or recommended way to integrate my Windows 10 and Linux computers through the local network?

There are currently four computers in my household: a Windows 10 desktop, a Windows 11 laptop, and two additional Linux laptops (those are "mine"). One is a very weak but new machine, basically the cheapest laptop I could buy that was neither Android nor literally a toy. It is running Lubuntu 24.04, and is used largely for writing and light browsing. The other is an older machine running MX Linux. Right now it's single purpose is running my Plex server. Given that setup, transferring files between machines is often a necessity.

Both my desktop computer and my Plex server are connected via Ethernet directly to the router. The other two laptops are connected largely via WIFI, although I do connect my writing laptop via an USB/Ethernet adapter for updates/upgrades and larger downloads when necessary.

Among other things, I often download movies on my Windows 10 desktop computer and then manually transfer them in batches to my Plex external hard-drive, and then to my Plex laptop (when it has enough space, otherwise I just keep the movies on the hard-drive). That is because it is way more convenient for me to (re)search what I wish to wwatch, find and download it to my desktop than it would be the case for my Plex laptop. The laptop is not only in a position that makes it uncomfortable to use but is also very slow even for basic things such as firing up Firefox. I also prefer to do the scraping using MediaElch and while it is a fairly heavy (probably Electron) application, my desktop is powerful enought that it doesn't make any diference. I also use Subsync sometimes, which is, as far a I know, only available as a GUI application on Windows.

Most content I find online is very practical, teaching me how to follow concrete steps to make things work, but I haven't found much advice on which programs or tech "stack" would be adequate for a specific situation such as my own. I just want a robust way to seamlessly transfer file between all the machines on my home without having to plug and unplug hard-disks and flash drives.

Any suggestion? Thanks!

19 comments

  1. [7]
    mattw2121
    Link
    If all you want to do is transfer files to your Plex server, look at setting up a SSH or FTP server on the Plex server and then you can transfer files directly to it. If you want a shared storage...

    If all you want to do is transfer files to your Plex server, look at setting up a SSH or FTP server on the Plex server and then you can transfer files directly to it.

    If you want a shared storage location for all your computers, set up a NAS (network attached storage). Synology is a popular brand name, but you can roll your own.

    13 votes
    1. json
      Link Parent
      Nah, better than ssh/ftp is to have SMB set up on the plex server device and use that as the NAS/network share for those transfers. Of course, the ease of use and reliability of an actual NAS...

      Nah, better than ssh/ftp is to have SMB set up on the plex server device and use that as the NAS/network share for those transfers.

      Of course, the ease of use and reliability of an actual NAS appliance should be considered if the other NAS features are wanted (backups to somewhere etc)

      4 votes
    2. [5]
      lou
      (edited )
      Link Parent
      Yes, I do transfer lots of large files to Plex, but also for other stuff. I'll keep the advice in mind. Thanks!

      Yes, I do transfer lots of large files to Plex, but also for other stuff. I'll keep the advice in mind. Thanks!

      1 vote
      1. [4]
        first-must-burn
        Link Parent
        Second vote for synology. They are really easy to set up and maintain. Just make sure you enable the emailed monthly hard drive diagnostics (ask me how I know). The android app is not sexy but...

        Second vote for synology. They are really easy to set up and maintain. Just make sure you enable the emailed monthly hard drive diagnostics (ask me how I know). The android app is not sexy but works well, and they have a service that can connect through SSL from anywhere without you having to open up a router port or anything.

        If you just want to move files around between your computers, have you tried installing samba on the Linux machines? You should be able to share folders and have them visible to the windows machines and vice versa. I haven't done it lately, but it's a very mature technology that was pretty easy to set up last time I did.

        4 votes
        1. [3]
          kej
          Link Parent
          Another option similar to Samba is WinFSP and SSHFS, which would let you mount any folder on your Linux boxes as a drive under Windows. They both do similar things, and the difference is mainly...

          Another option similar to Samba is WinFSP and SSHFS, which would let you mount any folder on your Linux boxes as a drive under Windows. They both do similar things, and the difference is mainly that Samba makes the Linux machines speak Windows, and WinFSP+SSHFS makes the Windows machine speak Linux. https://winfsp.dev/rel/

          2 votes
          1. [2]
            first-must-burn
            Link Parent
            The times I have tried SSHFS, it was okay for small files but very slow for big ones. But that was years ago / my configuration may have sucked, so YMMV.

            The times I have tried SSHFS, it was okay for small files but very slow for big ones. But that was years ago / my configuration may have sucked, so YMMV.

            2 votes
            1. vord
              Link Parent
              I'll put forth my support for SSHFS. I have not noticed it being tangibly worse than other networked options, and the benefit is that it's utterly trivial to setup in a secure and easy-to-use way...

              I'll put forth my support for SSHFS. I have not noticed it being tangibly worse than other networked options, and the benefit is that it's utterly trivial to setup in a secure and easy-to-use way for everything except windows (going to look at this WinFSP) and maybe iOS (no experience there).

              1 vote
  2. [5]
    BeardyHat
    Link
    This might not be the solution you're looking for, but I use the most basic stuff because it's easy and quick to setup, needing minimal fiddling. I have my server (which is also my main desktop...

    This might not be the solution you're looking for, but I use the most basic stuff because it's easy and quick to setup, needing minimal fiddling.

    I have my server (which is also my main desktop for gaming), it has a large 8Tb disk in it that is setup as a local network share. From there I have it mapped on my various Windows machines, as well as Linux and Android. On any given device on my network I can download directly to that server share and often do that on my HTPC.

    With that it's simple enough to move things around my network at will. I often use it to transfer saves from my PCs to my Steam Deck.

    I occasionally use RDP to get into that server and fiddle around, but that isn't usually a necessity because the share works flawlessly.

    4 votes
    1. [4]
      lou
      Link Parent
      Thanks! I am having a little difficult getting the specifics of what you said. If possible, would you mind providing just a litte more detail? For example, what do you mean by "local network...

      Thanks! I am having a little difficult getting the specifics of what you said. If possible, would you mind providing just a litte more detail?

      For example, what do you mean by "local network share"? What does "have it mapped" means, more precisely? I see that RDP means "remote desktop protocol", but how is it actually called or look like both on Windows and Linux? I am sure not asking for a tutorial as you helped a lot already, but just a little more specifics would be of great assistance. Thanks!

      3 votes
      1. [2]
        dreamless_patio
        Link Parent
        Local network share just means a folder on a computer that is visible (or shared) to other computers on the same network. Windows uses a protocal called SMB (Samba) to do this, Linux uses NFS...

        Local network share just means a folder on a computer that is visible (or shared) to other computers on the same network. Windows uses a protocal called SMB (Samba) to do this, Linux uses NFS (Network File System). Don't use NFS unless you're a linux cultist; it'll play nice with SMB.

        So we have a folder on a computer being shared on the network. On all the other computers, you can now access it through a special network address. What if you want to integrate it into a computer a bit more? You can "map" or assign it to a drive letter (or different path)! For example, I map networkShare1 to D:. Now when I open D:, it looks like any other folder, but it's actually going across the network to the server.

        Typically you'll choose the same drive letter or path on all the other computers so you won't drive yourself insane and can keeps things straight.

        2 votes
        1. vord
          Link Parent
          I will say that getting Samba working can be a bit fiddly, and Microsoft will eventually deploy an update that breaks your setup given enough time. ...Oh, your server is Windows. Yea generally...

          I will say that getting Samba working can be a bit fiddly, and Microsoft will eventually deploy an update that breaks your setup given enough time.

          ...Oh, your server is Windows. Yea generally they won't break it in that direction.

          1 vote
      2. BeardyHat
        Link Parent
        I don't have more time to sit and write (trying to cook breakfast and attend to my kids right now as well!) much more right now, but here's a tutorial that can help walk you through lots of it....

        I don't have more time to sit and write (trying to cook breakfast and attend to my kids right now as well!) much more right now, but here's a tutorial that can help walk you through lots of it.

        https://www.themakersphere.com/setup-smb-file-share-on-windows/

        From there, you'll go to other Windows computers and "Map Network Location" and use the FQDN or IP of your computer and whatever you named the share and then you should be able to access it. It's a little different on Linux, but as I recall you can just go to network locations from a GUI and it should find it then you can map/save the location. Not sure about Terminal.

        You may have to fiddle with your Public/Private network stuff on all the Windows machines, as it can be fiddly.

        I also saw another suggestion about creating an FTP on the Plex server itself so you can simply FTP in and put things on there. Although if it were me, I'd probably set the Plex server up to be the Share in the first place, so everything just goes there. But it so depends on your setup.

        2 votes
  3. kfwyre
    (edited )
    Link
    I use LocalSend for transferring files. It’s dead simple, cross-platform, and works wonderfully.

    I use LocalSend for transferring files. It’s dead simple, cross-platform, and works wonderfully.

    3 votes
  4. [2]
    Reapy
    Link
    Hey I see as I'm writing this some people seem to be answering that are more knowledgeable than myself but i'll give a crack at it too. So, a little while back I bit the bullet and got myself a...
    • Exemplary

    Hey I see as I'm writing this some people seem to be answering that are more knowledgeable than myself but i'll give a crack at it too. So, a little while back I bit the bullet and got myself a qnap NAS with 4x 4tb drives on it, it was an amazon deal with it all cost about 900, which was a bit of a reach at the time, however it is quite a nice little device that you just plug in wired on the network and it just works so well at doing what it does. You admin the box (very similar on synology nas devices) via a web interface that works great, so many interesting disk utilities and other things that it exposed me to that I've never looked at on my gaming pc's over the years. Just plug in and use it till the hard drive explodes typically.

    So the best way I found to interact was to use samba /cifs if you don't know what that is. That would mean that on the NAS I make a shared folder, and then on say a windows machine I can browse the network to the nas on the windows network and go to that folder, log in, and then copy or read from that drive.

    When people say 'have it mapped' or 'mount' it, what that means is make the samba connection more permanent in your machine's config. Mounting a drive you can think of it like your file system you have on your c drive is one thing, if you' mount' it to the file system it's like bolting it on as though thet network drive was in your computer. A good example is when you plug a USB stick into your computer, the computer then mounts the file system of the USB stick into yours and you can browse to it and copy/move things. When people say 'map' the drive, that is simply the process of giving it a permanent letter in your windows machine, like your C drive, or, if you add another hard drive it becomes the D drive. So for exmple right now on my windows machine I open file explorer and I see

    C: a 2tb nvme
    D: another 2 tb nvme
    e: a 13 tb hard drive
    v: \servername1\backups = an old nas i inherited
    x: \nasserver\media = movie files, these can be played directly from plex on another server
    z: \nasserver\stuff = just files and things

    You can do all this without a NAS, you can make a share where the files live and then mount the share and I think even in plex you can directly get the samba path to the media files and it should work fine. I have an oculus 3 and I am able to stream VR movies from my main PC to the device over a share without any issues.

    To set that up in windows you can right click on this PC and follow the wizard to map a network drive. If you want to just get to the server you can do start run //servername and then log in too without mapping it. On linux you would use the mount command to do the same, you can also make it permanent by making an entry in the /etc/fstab file. I also think linux has another sharing options (because of course) called NFS that is supposed to have less overhead, but cifs/samba sharing has been fine for me.

    Honestly, the NAS ended up being a huge gateway drug for me, it started with running jellyfin (a plex alternative) for my media and then getting the Arr aps up and running. Then I started running out of RAM on my nas so couldn't really add more services and just a month ago I put myself together a micro ATX sized server (felt like the best price point to size) and put debian on it. I've used linux for years but I haven't really gotten deep into it so am learning a lot. I just hit 45 this year so I'm likening my server to the affordable mid life crisis sports car!

    I'm trying to run the server headless (no gui) and am learning a lot about navigating remotely and actually doing work with it rather than just sshing into things already set up for me. I still a desktop environment set up on the linux machine, but I don't have a monitor/keyboard plugged into it. But I can use a remote desktop protocol from my windows machine to get a desktop up on screen in a window to control it.

    Linux has a lot of options that I'm still learning about, however with linux I have found that sshing into the box on command line is accomplishing most of what I want. Combined with samba/cifs sharing, you can make most all tools work across different setups. For example, on the linux server I'm running a docker service called paperless-ngx. Paperless is about storing your irl paper in a digital searchable way. I have the docker volume of paperless saved to a mounted file system on the NAS. So paperless running on server, the data being saved and access on another machine via a share. This way the best computer in your network to do such a thing can do that job.

    A ton of rich editors like visual studio code have remote saves built in, so if you want to edit files with a more familiar interface than say like nano/vim over the terminal, you just add in a remote location. Linux is nice you don't even have to share you can usually just connect via sftp as long as ssh is set up on the machine, so you go into visual studio code, i think there is a plugin to add, then add the location, connect, and boom, you are editing the file on your windows machine like normal. Even back in college early 2000's I used ultraedit to "FTP save" my files on the unix computer network I as forced to learn on, made learning to code much easier than struggling through VI on top of coding like they made us, ugg.

    The RDP people mentioned is the windows remote protocol and it's built right into windows, you just have to turn it on. It's a huge security vulnerability if you expose it to the internet so just mindful that your machines are behind your router. There are some other clients that use RDP, teamviewer is very nice. I have that running on my old gaming machine that is attached to my TV downstairs so I can remote in if I have to adjust anything rather than whatever junky couch setup I have. On linux there are a ton of remote desktop options as unix/linux was originally meant to be used with mainframes and dumb terminals so it's almost in built to the operating system.

    One final thing that you might want to take a look at is something called 'tailscale' it's a wireguard based VPN that is extremely easy to use. This will let you expose your shares and files to the outside world in a relatively safe way. Tailscale is free with up to 3 'users', but has room for tons of machine, if you have people you are using it with share a user you can get more life out of the free tier too. Tailscale has a client for every piece of hardware out there so you just install it on the machine, log in, and all your machines are on a new VPN together without having to open any ports on your router. Easiest example of good use I got out of this is to install it on the qnap NAS, install it on my android phone, and then I could browse all my movies/tv shows from my phone if I'm not at home without opening up anything. I also made a share on my NAS for a close friend, gave him a login, put him on the tailnet and we are able to transfer files back and forth easily. I even have my mother connected on her ipad so she can get to some of the webservices i'm hosting as well, it's easy to tell her to go in, turn on the tailscale button, then go to a browser url that is bookmarked.

    So yeah maybe bigger answer here but i'm getting slowly sucked into home networking and I've started with the same sort of having a scattering of machines all over my house and trying to make them all start working together and while when I was younger I hated this stuff, that is probably because I always just had one gaming machine and couldn't afford more than that so it wasn't very interesting, but now my house has like 10 computers, all my family using stuff, even a rasberry pi running adguard home in the closet and getting it all organized and working as one is suddenly a very interesting hobby I see myself working on for a long while.

    2 votes
    1. immaterial
      Link Parent
      100% agree with this! Set up a SMB share and CIFS mount it on your laptops. You can easily set it up on windows too. I have this setup on my NAS running TrueNAS, and once you set it up the ease is...

      100% agree with this! Set up a SMB share and CIFS mount it on your laptops. You can easily set it up on windows too.

      I have this setup on my NAS running TrueNAS, and once you set it up the ease is almost magical.

      1 vote
  5. whbboyd
    Link
    I'll agree with the people saying: for your use case, it sounds like you want a NAS. This'll give you the ability to conveniently bulk transfer and store files, between arbitrary hosts on your...

    I'll agree with the people saying: for your use case, it sounds like you want a NAS. This'll give you the ability to conveniently bulk transfer and store files, between arbitrary hosts on your network if you use the NAS as an intermediary. You don't need specialized hardware (e.g. a Synology) for this; install network filesystem software on any computer with storage and a network connection, and tada! Network Attached Storage. =) In your case, it sounds to me like you could meet your needs by making your Plex box into a NAS.

    The two main protocols for network filesystems are NFS and SMB/CIFS; either will work on both WIndows and Linux, but SMB will probably be easier overall if you've got WIndows systems in the mix. The SMB server software for Linux is called "Samba". For remote management of Linux/Unix systems (so you don't have to keep digging the computer out of its corner), everyone and their dog uses SSH; VNC or remote X (assuming it's using Xorg for its GUI, not Wayland) are possible, but would be very out-of-the-ordinary.

    One thing to note about this approach is that you wouldn't have any redundancy in storage; one hard drive failure could potentially lose you a bunch of data (and with a convenient NAS, the temptation to centralize data will be very strong). If that's a concern for you, then it probably does make sense to invest in dedicated hardware for it. An integrated solution like a Synology will be very easy to set up, but you can probably save some money and get more control by throwing TrueNAS on a whitebox PC, or (if you feel really ambitious) building up from a scratch Linux install.

    Another thing to note: don't limit your NAS to being just a NAS! No matter what form it takes, it's a server on your local network, and there's no reason it can't provide all sorts of services other than network filesystems. You already have Plex; depending on how you're doing your downloads, you might want to consider setting up Transmission's web UI. If you decide you want to explore home automation, drop Home Assistant on it. Et cetera!

    2 votes
  6. vord
    Link
    If you're mostly downloading via torrents, you can setup a server-side torrent client like Deluge or Transmission, which have a web interface you can upload torrents to (there are also extensions...

    If you're mostly downloading via torrents, you can setup a server-side torrent client like Deluge or Transmission, which have a web interface you can upload torrents to (there are also extensions and tools that can let you use the remote client directly). This would avoid some of the file-transfer hassle.

    FWIW, Subsync also seems to be available as a Snap at a minimum. MediaElch as an AppImage. Neither should have a massive problem on your lower-power machines.

    2 votes
  7. h6nry
    Link
    Others have mentioned a NAS being what you need, and I agree with them. If you're interested in an "off-site" and offline addition to the NAS, here's what I use: Set up a VPN network for the sole...

    Others have mentioned a NAS being what you need, and I agree with them.

    If you're interested in an "off-site" and offline addition to the NAS, here's what I use:

    Set up a VPN network for the sole reason to phone home. This way, your devices will, no matter where you are, think they are connected to your home wifi and thus will see all your other home devices like your NAS. I use wireguard as it's considered safe and silent enough for me to risk opening up a port on my home router.

    Set up Syncthing for having a synchronised shared folder between your devices. This way, if you're offline or stuck with a bad internet connection, you have a small subset of your media still with you.

    2 votes
  8. RadDevon
    Link
    I’ve been using SFTP and it works well enough, but I just installed Samba on my home server and I’m liking that experience even better. It lets me share locations out and access them through the...

    I’ve been using SFTP and it works well enough, but I just installed Samba on my home server and I’m liking that experience even better. It lets me share locations out and access them through the file management app on any of my desktop OSes. I leave my storage connected up to my server at all times and then just access it on other computers via Samba.

    1 vote