Android phones can't connect to Adhoc connections bu default. They need to be rooted and the default wpa_supplicant binary has to be replaced by a custom binary.
Linux seems to miss a "Connectify for Linux" but creating a software access point isn't that difficult.
This post is stolen from here and only contains the part which is important without overflowing the reader with the details.
First install the two packages, hostapd & dnsmasq. Ensure that your hostapd.conf looks similar to this.
interface=wlan0 driver=nl80211 logger_stdout=-1 logger_stdout_level=2 ssid=shadyabhi's ThinkpadX220 hw_mode=g channel=6 auth_algs=3 max_num_sta=255 # max number of clients wpa=2 # use WPA2 wpa_passphrase=tryyourbest wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP
Uncomment the line
/etc/dnsmasq.conf that includes all the conf files from
/etc/dnsmasq.d/. Create a file
/etc/dnsmasq.d/dhcpd (create the folder if required) with the following contents.
Some final steps include giving ip to wlan0, enabling IP forwarding & adding a masquerade rule (replace eth0 with whatever interface has the default route).
sysctl net.ipv4.ip_forward=1 ifconfig wlan0 192.168.0.1 #IP is this because our dns server will service ips from 192.168.0.50 to 18.104.22.168 with 12h lease time iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE # setup NAT
I assume that everyone has left the past and now everyone uses systemd. Start the two daemons..
systemctl start hostapd.service systemctl start dnsmasq.service
You should have a working Software Access Point by now! I told you, it wasn't that hard.
(You might want to add
/etc/default/hostapd in Ubuntu)
Well, this post shouldn't entirely be a copy of wiki so what if you want to see what all connects are your clients making in a pretty GUI, use iftop for that. Fireup the program with command $iftop -i wlan0 and you'll have pretty GUI like
If you want to see, what all IPs have been given by your DHCP server, checkout the file
[root@archlinux shadyabhi]# cat /var/lib/misc/dnsmasq.leases 1353095739 31:32:33:34:0a:48 192.168.0.114 android-9asdc9de3c88b1d9 * [root@archlinux shadyabhi]#
The first column tells when was the lease given.