Can I share my iMac's internet to iPhone or iPad over USB?

I have an iMac, connected to the Internet via Ethernet, and an iPhone 4. I would like to share the iMac's Internet connection to my iPhone via the USB Cable (because my wife dreams of a wifi-less household).

I've set up Internet Sharing, specifying "sharing from: Ethernet via: USB IPhone", but when I test, the iPhone cannot connect to the Internet. Is there something I need to activate on the iPhone?

iMac, mac os x version: Mountain Lion, 10.8.4 iPhone 4, IOS Version: 6.1


Solution 1:

The method you described will share your Internet connection to your iPhone on recent Macs and iPhones. Specifically, on macOS Sierra, follow the instructions in the Apple Support Article, macOS Sierra: Share the Internet connection on your Mac but choose to share your Internet to computers using iPhone USB.

  1. On your Mac, open System Preferences and click on Sharing.

  2. Enable Internet Sharing by clicking the checkbox.

  3. In the Share your connection from pop-up menu, select Ethernet (or Thunderbolt Ethernet on MacBooks using the Thunderbolt-Ethernet adapter).

  4. In the To computers using list, select iPhone USB.

Solution 2:

This works on macOS 10.12 and iOS 10 without needing a jailbreak or other app.

Later macOS 10.13 enhanced this feature as part of asset caching and Apple Configurator 2 features for multiple iOS devices sharing the Mac network. This is out of the box support, built in to the OS with no extra first party apps or modifications needed.

Before iOS 10 and macOS 10.13, USB tethering only worked in one direction or for one device. Before macOS 10.12 - internet service used to flow out of iOS but not in to iOS from a Mac over USB.

Solution 3:

Before iOS 10, the only method that existed would be possible with a jailbroken device as Apple didn’t offer this feature before then.

Solution 4:

It is possible by using Apple's development tool what is usually used to intercept app's traffic, but it also do iPhone→Mac→Internet tethering.

Remote Packet Capture for iOS devices is about sniffing apps' traffic, but there is also easy step-by-step guide how to send traffic throught Mac. Just follow paragraphs between "Remote Virtual Interfaces" and "Using tcpdump" headers.

If command rvictl is missing in your computer, you probably need to install the command line tools included in Xcode.