When you create your own file server or network-attached storage, you might be surprised how much thought you need to give to moving your files around.

To the human eye, each approach looks the same (as in invisible), but on the technical level, your computers are talking in very different ways. Which approach you take will depend on what operating systems and types of devices you intend to connect.

1. FTP

You can access a hard drive plugged into a router via FTP

FTP stands for File Transfer Protocol. It's a standard method for moving files around between a client and a server. Your laptop, for example, is the client. Your home server is, well, the server.

FTP is versatile in that your operating system really doesn't matter. The protocol has been around since before any of them had graphical user interfaces. Your router may even come with a USB port and support transferring data to an external hard drive via FTP (which is an easy way to create a home server, albeit nowhere near as robust as setting up a dedicated machine for the job).

You can protect your data by requiring a username and password, but by default FTP will transfer your credentials unencrypted. This may be okay on your home network, but you will want something more secure when operating on a larger network or transmitting files over the internet.

That doesn't mean you need to abandon FTP. You can try FTPS, a variation that encrypts your connection.

Here's how to send and receive files from a Mac via FTP.

2. SMB

Personal File Sharing in Linux using Samba

SMB stands for Server Message Block. Though it began as an IBM project, it became a means for computers running Microsoft Windows to communicate over a local network. When you create a folder using Windows Explorer and expand access to other users, you're doing so via SMB.

SMB is not limited to Windows users. You can also access these files from macOS, Linux, and other Unix-like operating systems. Apple calls its implementation SMBX, while on Linux the implementation is known as Samba. In either case, your laptop can serve as either the server or the client.

SMB is great for spreading files between machines on a local network in a cross-platform way. Users don't need any technical knowledge to start sharing folders and downloading files, aside from awareness of the network section in a file manager's sidebar.

3. AFP

AFP, or Apple Filing Protocol, is Apple's proprietary system for connecting different macOS computers. If you have a household filled with Apple products, or you run a company that uses Apple hardware, then this may be the most relevant file transfer protocol for you.

While AFP is specific to Apple devices, you can buy home media systems that support the protocol. You can also set up your own FreeNAS or OpenMediaVault box with an old PC and use AFP to share files with your iMacs, MacBooks, and iPads.

On the other hand, if you aren't working exclusively with Apple hardware, there's little reason to concern yourself with AFP. This protocol is rather specialized. Other options offer better cross-platform compatibility or communication between servers.

4. NFS

The Network File System, known as NFS, is a protocol in use on Unix and Unix-like computers (such as Linux). Its strength lies in the ability for many machines to access the same server regularly. NFS can offer faster speeds on computers that support the protocol.

One drawback of NFS is that, even if you use a Linux-based desktop, setup isn't obvious. Instructions will generally point you toward the command line, with you needing to tell your computer to mount network shares like it mounts physical hardware. As the name suggests, you're treating a shared folder on a network as though it were part of your file system.

Again, setting up NFS is not hard if you're comfortable with the command line, but the process is not something intuitive you can discover and set up from your desktop's file manager.

5. SSH/SFTP

SFTP manual open in a Linux terminal

SSH stands for Secure Shell. It is a method of connecting to and managing a remote machine. If you want to run commands on a server, whether it lives in your basement or on a server farm thousands of miles away, you can turn to SSH to get the job done.

On its own, SSH is not a file transfer protocol. That's where SFTP comes in, otherwise known as the SSH File Transfer Protocol or Secure File Transfer Protocol. This is a way of transferring files over an encrypted connection. Despite the similarity in name, SFTP does not refer to using FTP over SSH, which is a complicated affair.

SFTP is a different method of transferring data using the same technology as SSH.

SFTP is not necessary for a home server unless you're concerned that someone has access to your Wi-Fi network and is snooping on your traffic. SFTP is a better option for transferring files from or to locations outside of your home. But that doesn't mean you must use SSH when you're moving files around remotely.

If you have an active VPN connection encrypting your web traffic, then you can use FTP or mount NFS shares knowing your data has some protection. Using SFTP in conjunction with a VPN is somewhat redundant.

6. DLNA

DLNA is short for Digital Living Network Alliance. It's a certification standard rather than a file transfer protocol, but it's still an acronym you may need to know when setting up a home media server. If you intend to stream files to a Smart TV or video game console, you will need a server with DLNA support.

To stream content via DLNA, you don't open your file manager to share or access files. You're not accessing files via a method known as DLNA.

Instead, you need dedicated software. Plex is one of the most popular examples, with Emby being an open source alternative. Such programs take your raw files and transmit them in a format that DLNA-compatible devices understand.

You can stream music and video from a desktop, laptop, or a dedicated NAS. What matters is that you're running the necessary software on both the device that's sending and the device that's receiving.

The Best Way to Transfer Files on a Home Network

Every bit of software or code on your computer ultimately exists somewhere as a file, so it's no surprise that there are many ways to move files around. But this need not be complicated. Depending on your use-case, some protocols are easy to recommend.

  • Use Windows and want to share files with family members? SMB
  • Have an Apple household instead? AFP
  • Want to share files between two Linux-based desktops? SMB
  • Want an ongoing connection between a Linux-based desktop and server? NFS
  • Want something that really doesn't care what OS you prefer? FTP
  • Need security when you're away from home? SFTP
  • Stream music and videos to a TV? DLNA

Don't want to bother with a network? You can always stick to using flash drives instead. Or if you're working with large media files, you may want to go with a portable hard drive.