- iPhone USB / Bluetooth Tethering With Linux
- iPhone tethering via USB
- iPhone tethering via Bluetooth
- iPhone tethering
- Tethering over USB
- Using systemd-networkd
- Troubleshooting
- Driver missing
- Tethering over Bluetooth
- Hardware Requirements
- Setup
- Gnome/XFCE
- netcfg
- How can I add a Tethered iPhone connection in Linux (Ubuntu and Raspberry Pi OS)?
- Prerequisites
- Tethering
- Related Articles
- Categories
- How To Tether Your iPhone to Your Linux PC
- Warning!!
- On Your iPhone
- In Ubuntu
- Tethering
iPhone USB / Bluetooth Tethering With Linux
In order for tethering to work, your iPhone must actually have the tethering option enabled. This depends on your network carrier and contract. For iPhone 3.0 OS you can also just install a so-called mobileconfig profile which enables tethering, but this in a gray zone legally. For later firmwares your iPhone additionally needs to be jailbroken and a system file patched which is surely not everybody’s thing. Anyway, with that out of the way let’s get to the actual setup.
Since we already added the required PPA for general iPhone/iPod Touch Synchronising in our previous article about syncing via GVFS, it’s now a snap to install everything needed for tethering via USB and Bluetooth:
sudo apt-get install ipheth-dkms ipheth-utils
Now, reboot. You could try to reload udev rules etc. but since you’re probably not doing this on a server just reboot to be safe.
iPhone tethering via USB
To tether via USB, all you need to do now is FIRST enable tethering in your iPhone, stay on that screen and THEN connect your iPhone to your PC/laptop via USB and it will automatically start to tether after a few seconds (you will see an additional blue bar on your iPhone). Now you can leave that screen on your iPhone. If it doesn’t automatically start to tether or you have other network connections then NetworkManager should show you a new interface in its dropdown menu (it’s called » ifupdown (bnep0) » for me). Just connect to it.
iPhone tethering via Bluetooth
Some people had success with Ubuntu/Gnome’s default bluetooth applet but I didn’t so I followed other people’s advice which was to install blueman to replace current bluetooth panel:
sudo apt-get install blueman
After a reboot you’ll have all your Bluetooth functionality back and more!
Now, to tether via Bluetooth, first enable tethering again on your iPhone. Make sure you select both USB & Bluetooth tethering. Then, turn on Bluetooth on your phone and make sure you stay on the bluetooth page in order to be visible. Click on the computer in the iphone search list. Your phone should now show up in Blueman list, too (if not, use the Search in Blueman to find your iPhone). Do a right-click on your iPhone and choose «Setup» in Blueman. You will be asked if you want to use a random password, just go ahead. Enter the PIN code Blueman shows you on your iPhone and just click through to the end to finish the Blueman wizard.
Next, right-click on your iPhone again in the Blueman main window and choose » Trust «. Now, you can just right-click on your iPhone in Blueman and select » Update Service » and then choose » Network Access Point (NAP) » again via right-click and you’ll be tethering via Bluetooth. You can now leave the Bluetooth screen again. Done!
Please note: It may happen that you need to re-add and re-pair (PIN code) your iPhone every time you want to use Bluetooth to tether. Please also note, that individual program entries may be called something else as I use a non-english Ubuntu. But I’m sure you’ll figure it out.
This post was written by StoneCut (many thanks once again!). Browse all of his posts. |
iPhone tethering
Unless disabled by your provider, it is possible to share your iPhone’s mobile data connection over WiFi, USB or Bluetooth:
- WiFi requires no additional configuration provided your computer can connect to wireless networks,
- Instructions for USB and Bluetooth tethering are provided below.
Tethering over USB
Tethering natively over USB is the optimal choice as it provides a more stable connection and uses less batteries than bluetooth or wifi.
To tether your iPhone over USB, you will need to install libimobiledevice and usbmuxd . The libimobiledevice package depends on usbmuxd, which is responsible for performing the low-level connection to iOS devices. The usbmuxd package also includes an udev rule that automatically starts and stops the daemon whenever a device is connected or disconnected. See iOS for more details.
Connect the iOS device and verify that usbmuxd.service is automatically started.
Next enable Personal Hotspot on your iPhone and plug it into your computer. At this point you will have a new ethernet device available and should be able to use any network manager to connect to the internet through the new iPhone ethernet device, just like you would any other ethernet connection.
Using systemd-networkd
If systemd-networkd is used for network management, you can easily configure it to connect to the internet through the iPhone, as you would with any other adapter.
If for example enp0s26u1u2c4i2 is the name of the network device that is created from the iPhone as displayed by networkctl list , create the following .network file:
/etc/systemd/network/30-tethering.network
[Match] Name=enp0s26u1u2c4i2 [Network] DHCP=yes
Troubleshooting
If the iPhone appears in the device list but does not connect, it is possible that you may need to connect your iPhone and pair it with your computer before connecting (iPhones using a PIN unlock?):
Driver missing
If you have followed all the above steps and commands: networkctl list still does not detect the iPhone, the ipheth driver is probably missing. You can check if you have the driver installed by running the modprobe ipheth command. If an error message appears, set the ipheth flag when building the kernel. This problem can occur when building your own kernel.
Tethering over Bluetooth
Tethering over Bluetooth will drain the batteries relatively quickly, but simultaneous charging from an USB port works well.
Hardware Requirements
- iPhone running OS 3.0 with tethering enabled. See Settings >General >Network and turn on the tethering option.
- Bluetooth adapter or similar, preferably with EDR (Enhanced Data Rate) for acceptable speeds. Tested with a Belkin F8T016NE.
Setup
See the main article Bluetooth and setup the bluetooth daemon.
Gnome/XFCE
Install the Blueman GTK Bluetooth manager.
A Bluetooth icon should appear in your notification area. Note: the icon may not appear if bluetooth was not turned on at startup. Click it, and search for nearby devices, adding your iPhone (note, you may need to have the Bluetooth setting screen up on your iPhone for discovery to work).
Once the iPhone has been added to the devices list, open the Device menu and select pair. This will require the usual entering of a PIN on the computer then the iPhone. Now open the Device menu again, and choose Network Access > Network Access Point. If everything goes well, blueman reports a success and the status bar on your iPhone should glow blue, indicating a successful tether.
Blueman will have created a new network interface, typically bnep0. To connect to it, run the following as root.
netcfg
This article or section is out of date.
Alternatively, you can create a netcfg network profile to allow easy tethering from the command line, without requiring Blueman or Gnome. Assuming an already paired iPhone with address ’00:00:DE:AD:BE:EF’, simply create a profile in /etc/network.d called — for example — ‘tether’:
CONNECTION="ethernet" DESCRIPTION="Ethernet via pand tethering to iPhone" INTERFACE="bnep0" IPHONE="00:00:DE:AD:BE:EF" PRE_UP="pand -E -S -c $ -e $ -n 2>/dev/null" POST_DOWN="pand -k $" IP="dhcp"
To bring the interface down and un-tether:
How can I add a Tethered iPhone connection in Linux (Ubuntu and Raspberry Pi OS)?
Speedify can use USB tethered iPhones to add a cellular internet connection to your Ubuntu and Raspberry Pi OS device. To use this, your iPhone’s cellular plan must support hotspots/tethering.
Note: Since iOS 14, USB tethering isn’t working reliably with Linux. The only workaround we can suggest at the moment is using the iPhones Hotspot function and connecting over Wi-Fi.
Prerequisites
On Linux, you may need to install additional packages to support tethering iPhones. The exact packages can vary between distributions and versions.
For Ubuntu, the ipheth-utils package is needed for tethering iPhones («sudo apt install ipheth-utils»)
For Raspberry Pi OS, the usbmuxd package adds support for tethering iPhones («sudo apt install usbmuxd»)
If you are using another distribution, try the packages mentioned above if they are available. Otherwise, search online for the specific package needed for your distribution.
Tethering
- Plug the iPhone to the computer via USB
- On the iPhone go to Settings > Cellular > Set Up Personal Hotspot, and turn on USB Tethering.
- In Speedify, within a few seconds, you will see a new connection appear representing the tethered phone.
Once it appears, you can adjust the Connection Settings, such as Priority, to control how Speedify uses the adapter.
Did you know — you can combine multiple Internet connections at once on your device instead of just switching between them? You get more reliable Internet connectivity — learn how to do that with Speedify.
Last updated on February 6, 2023
Related Articles
Categories
How To Tether Your iPhone to Your Linux PC
YatriTrivedi
YatriTrivedi
Writer
Apple, like most companies, doesn’t really offer Linux support, so it’s a great thing when the community can deliver much-desired functionality. By adding a repo and installing a package or two, you can get tethering working via USB or Bluetooth.
Warning!!
You can connect your iPhone to your laptop and share its 3G connection, allowing you to browse the internet in places without WiFi connectivity. This process is called tethering, and you may be required to pay a fee to your carrier to use your data this way. While jailbreak-only apps can enable this kind of functionality without going to your carrier, it remains debatable whether or not your carrier can tell if you are tethering or if this legal. If your mobile carrier finds out, you may be charged extra fees or be switched to a more expense “tethering allowed” data plan. You tether at your own risk; we’re not responsible for any charges you may accrue or other damages that may ensue. With that being said, I’ve never known anyone personally who was charged for tethering using 3rd-party methods. I, myself, use MyWi to get the job done, and I’m sure to restrict my usage to reasonable amounts. I’ve never had any problems. We just wanted to give you some experience-based information. Again, you’re doing this at your own risk.
On Your iPhone
Be sure you have tethering enabled. You can get this enabled by chatting with a AT&T or Verizon representative and signing up for a plan that supports it. Alternatively, if you’re jailbroken, you can install apps such as MyWi or iTether that enable this functionality for a nominal fee. One way or the other, you need to able to tether on your iPhone.
In Ubuntu
Hit Enter, let it do its thing, then update:
Restart your computer. This will not work until after a restart.
Tethering
If you’re tethering via Bluetooth, pair your iPhone with your computer before you enable it. If you’re using USB, enable tethering first, and then plug in the cable to your computer. You’ll see a new wired interface pop up if you’re using USB, and it should automatically connect. This may not work on its own with some systems. If you tried this method and you’re not getting anywhere, try uninstalling the package and then reinstalling it alongside some related ones:
sudo apt-get remove ipheth-utils sudo apt-get autoclean sudo apt-get install gvfs ipheth-dkms ipheth-utils
After a restart, my second system connected fine using this method. Do you tether your iPhone? Share your experiences in the comments.