How do I share a Wi-Fi connection via a Wi-Fi hotspot?

This question is an extension of this question. While my answer did answer the question, there was one part that wasn't answered: how do I share a Wi-Fi connection via a Wi-Fi hotspot?


You can't "share" a Wi-Fi connection via a Wi-Fi hotspot.

What is misleading everybody is the inapropriate use of the technical term of sharing when the function we are talking of is a redistribution.

When 2 PC are connected on the same Wi-Fi hotspot they are truly sharing the same connection: they are using the same Wi-Fi channel, they are sharing the router IP public address.

When you start up InternetSharing within System Preferences > Sharing you are not starting a sharing, but the redistribution of a main network access toward a secondary network access. On this secondary network access, you are acting as an access router. You are distributing IP private addresses. On your primary network access you have a public IP address, on your secondary network access, you have a private IP address, and you translate the traffic IP addresses from the public side toward the private side and the other way around. To be able to perform this redistribution of IP traffic coming from your primary network access toward the same physical access your OS should be able to present you this physical interface as 2 differents virtual interfaces, typically en1 and en2.

MacOS X doesn't provide such a virtualisation function.

You can't redistribute your Ethernet connection toward your Ethernet connection.
You can't redistribute your Wi-Fi connection toward your Wi-Fi connection.

Connectify (on Windows 7) is simply selling a standard function of Windows which permit to create 2 virtual Wi-Fi interfaces on top of one physical one (see: Wi-Fi hotspot for Windows 7). Then Windows redistribute the network access of the primary Wi-Fi toward the second one.


Mac OS X has an "internet sharing" feature in the Sharing panel in System Preferences.

As several people have already figured out in the question and answers here, it lets you share the connection from one hardware interface via any other hardware interface, but it can't use a single Wi-Fi interface as both the main connection and to re-share. (Windows 7 can do this, thanks to "network virtualization" features added by Microsoft, which essentially allows a single hardware Wi-Fi interface to respond to multiple SSIDs, and that's the underlying feature that Connectify leverages.)

One option that Mac OS X has that isn't quite an answer to this question, but is useful in some of the same situations, is that it can use Bluetooth to create a Personal Area Network (PAN), and its internet sharing feature can share the internet connection from Wi-Fi over the Bluetooth PAN, as documented here.

I've used this successfully to get an iPad to piggyback on a Macbook's Wi-Fi connection, so both were able to access the internet simultaneously in a hotel where I could only get one device on Wi-Fi. I was not able to get an iPhone 4S to connect to the PAN in the same situation, but supposedly it works for iPod Touches. I don't know if other computers (Mac OS X, Windows, Linux or otherwise) are able to join the PAN and use it as their internet connection.


Install Windows (using rEFIt if you're on a Mac). Install Connectify.

If you're a developer and use Linux, it should be possible to develop a new kernel module that will accomplish the "full duplex endpoint + repeater" functionality. For starters, target one specific device that you can get the wifi chipset datasheets for; you need bus architecure, register numbers, memory addresses, interrupt numbers, signal timings, radio boot routine, and the function list (synchronous and asynchronous).