Quick Links

Sharing files between Linux and Windows can sometimes feel challenging, but it doesn’t have to be. Several reliable methods exist, whether transferring files over a network, using a dual-boot setup, or simply moving a few documents.

I’ll start with the simplest options and move toward more advanced methods, so you can choose the best approach based on your comfort level and needs.

8
Cloud Storage Services

Cloud storage platforms like Dropbox and Google Drive offer easy file sharing across Linux and Windows. These services sync your files to the cloud, allowing you to access them seamlessly from any device.

Be prepared to start paying, though, if you come to rely on cloud services for holding many large files in the cloud for you. At a certain level of capacity you have to start paying for storage. If you’re more technically-inclined, though, you can try hosting your own cloud storage on your local network with a solution like Nextcloud.

7
USB Drives

A USB drive is a simple way to transfer files between Linux and Windows. Formatting the drive with a cross-compatible file system like FAT32 or exFAT ensures easy access on both systems.

The PNY Elite-X Type C Flash Drive

PNY Elite-X Type C Flash Drive
7
/
10
$14 $16 Save
$2
Brand

PNY

Capacity

128GB

For example, you could format the USB drive as exFAT using a tool like GParted on Linux or the Disk Management utility on Windows. Then just copy files to the drive and transfer them between systems.

6
Network Drives

Mapping a network drive lets Linux and Windows computers always access shared folders. This method works great in a networked environment, whether you’re mounting a Windows share on Linux or vice versa.

5
Peer-to-Peer Tools

Applications like Warpinator simplify local peer-to-peer file sharing, provided both devices are on the same network. Warpinator is especially useful for small-scale, ad-hoc file transfers without any complex setup or configurations.

Installing on Linux on is easy. Use this command on Mint/Ubuntu:

sudo apt install warpinator 

Or install from Flathub using:

flatpak install flathub org.x.Warpinator

To install on Windows, download the Windows version of Warpinator (Winpinator) from the official website. Ensure both devices are on the same local network and running the application. Then, launch the app on both devices, select the files you want to send, and approve the transfer on the receiving device.

4
Rsync Over SSH

Rsync is a powerful command-line utility for file transfer and synchronization. When paired with SSH, it offers a secure and efficient way to transfer files between Linux and Windows, making it a favorite among advanced users.

3
HTTP File Sharing

Tools like Python’s http.server module can quickly set up an HTTP file server on Linux. Windows users can then download files using a browser.

As an example, on Linux, run the following in the directory you want to share.

sudo python3 -m http.server 

Terminal output showing the command sudo python3 -m http.server executed on an Ubuntu system.

On Windows, open a web browser and go to the following address to download files.

http://<Linux_IP>:8000 

A web browser displaying a directory listing for files served from a Python HTTP server running on a Linux machine.

2
SFTP (Secure File Transfer Protocol)

SFTP is a secure and efficient method for transferring files between Linux and Windows systems. It works over SSH, ensuring encrypted communication.

On Linux, if SSH is not installed, run the following command:

sudo apt update && sudo apt install openssh-server

Enable and start the SSH service:

sudo systemctl enable ssh
sudo systemctl start ssh

Verify that the SSH service is running:

sudo systemctl status ssh

Terminal output showing commands to enable, start, and check the status of the SSH service on Ubuntu.

On Windows, download and install an SFTP client such as FileZilla or WinSCP. Open the SFTP client and enter the following details:

  • Host: <Linux_IP> (e.g., 192.168.1.10)
  • Username: Your Linux username
  • Password: Your Linux password
  • Port: 22

FileZilla interface showing an active SFTP connection between a Windows computer and a Linux server.

Connect and transfer files securely between Linux and Windows.

1
Samba (SMB Protocol)

Samba is one of the most popular solutions for sharing files between Linux and Windows. By using the SMB protocol, Linux systems can act as file servers that Windows can access seamlessly. This makes it ideal for network-based file sharing within a local environment.

To install Samba on Linux, open a terminal and run:

sudo apt update && sudo apt install samba

That’s for Ubuntu, Mint, and other Debian derivatives. Alternatively, use the equivalent for your distribution.

Installing Smaba in Ubuntu.

Then, verify the installation:

smbd --version

To configure Samba, open the Samba configuration file with your editor of choice:

sudo vim /etc/samba/smb.conf

Add the following at the bottom:

 
[SharedFolder]

path = /home/yourusername/Shared

available = yes

valid users = yourusername

read only = no

browsable = yes

public = no

writable = yes

Save and exit the editor, and then create the Shared Folder:

mkdir ~/Shared

Adjust permissions:

chmod 777 ~/Shared

Add your Linux user to Samba:

sudo smbpasswd -a yourusername

And follow the prompts to set a password.

Add SMB user in Ubuntu.

Restart the Samba service:

sudo systemctl restart smbd

To access the Share from Windows, open File Explorer on Windows. In the address bar, type:

 <Linux_IP_Address> (e.g., \192.168.1.10)

Log in with the Samba username and password you created.

Windows credential prompt for Samba share.

The shared folder should now be visible and accessible.

Ubuntu Samba share access on Windows.


Sharing files between Linux and Windows doesn’t have to be complicated. Whether you prefer Samba for network sharing, SFTP for secure transfers, or USB drives for simplicity, there’s a method that suits your needs. By choosing the right tool and following best practices, you can make file sharing seamless and efficient.