I recently got an iPhone 6s. Is there a way to transfer files (music, photos, PDF, or really anything actually) between Ubuntu and the phone? It should not involve syncing via an internet service, as I may have the need to transfer large or private files. Also, I do not want to jailbreak the device.

There are a few results when searching for this on Google, but none seems very up to date.


5 Answers 5


I don't know whether there's any difference between versions, but I can simply access the files of my iPhone 5s via the file manager when it's plugged over USB (using the AFC protocol).

I'm using iOS 9.2 beta, I have no idea whether it works on 9.1 or earlier. I can access the device from Nautilus' sidebar, if it doesn't show up, try navigating to the following address:

afc://<your iPhone's UDID>/

Also, most music players (at least Rythmbox, Banshee and Clementine) support music synchronization over AFC (Apple File Conduit).

EDIT: I just learned I can easily synchronize my pictures using tools like gThumb.

  • it's plugged over USB (using the AFC protocol) how to connect like this Sep 25, 2016 at 2:58
  • 1
    Just plug it in, and it should show up. If it doesn't, make sure you have the package gvfs-backends installed.
    – s3lph
    Sep 25, 2016 at 20:35
  • I ran sudo apt-get update and then sudo apt-get install gvsf-backends then it notifies me that I am having the latest one installed. But when I connect iphone to Ubuntu, only I am able to copy the camera photos ( and other pdfs, pptx...) to my computer only, I cannot copy ones from my computer to the iphone. I even tried Banshee but it doesnot have devices tab in the left side. How to Sync music and videos from Ubuntu 16.04 to iphone 4s? Sep 26, 2016 at 1:28
  • 3
    pretty sure it should be sudo apt-get install gvfs-backends
    – Chris
    Mar 15, 2017 at 0:13
  • 5
    If you don't know the UDID, check out this answer. Also, if the phone's documents folder shows up automatically you can click it, press Ctrl+L and delete the colon and everything after it like it is shown in this picture.
    – totymedli
    Nov 22, 2017 at 20:34

Apple constantly breaks Linux applications' access to iPhones. As of 2019, the best way of uploading and downloading files is to use a 3rd party app on iOS. Apparently, the file you upload is only accessible by that 3rd app.

Phone Drive is a good app for this. First, take note of the IP address of your iPhone, then, when PhoneDrive is in the foreground, typing the IP address of the iPhone from a PC connected to the same local area network would give you a website where you can upload and download files. You can also use FTP protocol on the same iPhone IP address. Phone Drive supports playback of a lot of video and music formats.


  • Thank you, Unfortunately, this does not help much. First, as you notice, the file you upload is only accessible by that 3rd app. This makes the upload feature essentially unuseful. Symmetrically, I guess it will not be able to download, say, photos taken with the phone. In the end, this can be occasionally useful to move a file when you don't have a pendrive and plan to use that file elsewhere (say on another computer), but not much more
    – Andrea
    Jan 3, 2019 at 12:59
  • I've just tested it, and it is exactly what I was looking for! Very cool, and it even supports wget/curl. Many thanks Aug 1, 2020 at 4:18
  • 1
    sudo apt-get install libimobiledevice-utils worked for me in 2021
    – kapellan
    Jan 30, 2021 at 10:48

Sandisk now makes a USB device that plugs directly into the iphone and can backup and move pictures, music, calendar items, and some file items. It can't do notes and some other items, but what it does it does very well. It is especially nice for multiple large video files. Just dump it on the usb pen drive and plug it into whatever and move the files over.


FREE and best way for me is installing a webserver in your local machine and share everything via Safari browser on the iPhone, this are the steps YMMV

sudo apt install nginx php-fpm git
mkdir ~/iphoneFiles
sudo nano /etc/nginx/sites-available/default

Delete everything in there and put something like this, remember to modify <YOUR-USER> and if necessary change the php version php7.4-fpm.sock

server {
    listen 80;
    server_name localhost;

    root /home/<YOUR-USER>/iphoneFiles/elFinder;

    index elfinder.src.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

Installing https://github.com/Studio-42/elFinder

cd ~/iphoneFiles
git clone https://github.com/Studio-42/elFinder.git

Configuring elFinder

mv elFinder/php/connector.minimal.php-dist connector.minimal.php

Setting the (probably) right permissions for the upload folder

sudo usermod -a -G www-data $USER
sudo chown -R $USER:www-data elFinder/files/
sudo chmod a+rwx,o-rwx,ug+s elFinder/files/
ln -s ~/iphoneFiles/elFinder/files/ ~/Documents/iphoneFiles

Making nginx to load the new set directives

sudo service nginx reload

Now get your local network IP

hostname -i | awk '{print $1}'

Enter with your iPhone to that IP and start uploading pictures or whatever you want

note: you will need to modify elFinder setting to allow upload of all types of files

sed -i 's/.*uploadDeny.*/'uploadDeny' => array(''),/' elFinder/php/connector.minimal.php
sed -i 's/.*uploadDeny.*/'uploadAllow' => array('all'),/' elFinder/php/connector.minimal.php

If you did everything good you should have your files in:


To achieve this goal for my girlfriend I prepared a local Nextcloud docker-compose.yml : https://github.com/jclaveau/nextcloud-localhost-docker-compose

Simply clone it, install docker, run start.sh then you can access it with http://your.local.network.ip.

As credentials use:

  • username: the logged user running start.sh
  • password: same as username

Not the answer you're looking for? Browse other questions tagged or ask your own question.