Tutorial 4 - Make Hotspot using PiTalk and Raspberry Pi
- 27 Jun, 2018
In this tutorial, you will learn how to integrate PiTalk (Smart-phone based on raspberry Pi) with Raspberry Pi' WiFi to make your personal Internet hotspot. It can be used as a router to connect to the internet and also host a local area network.
- Connect your Raspberry Pi to the internet using WiFi or Ethernet.
- Install the required packages:
sudo apt-get install dnsmasq hostapd
- Configure 'wlan0' interface with a static IP. Open configuration file:
sudo nano /etc/dhcpcd.confand add the following line at the bottom:
denyinterfaces wlan0Note: This must be above any 'interface' lines you may have added.
- Now configure static IP using the command:
sudo nano /etc/network/interfacesand edit the file:
allow-hotplug wlan0 iface wlan0 inet static address 172.24.1.1 netmask 255.255.255.0 network 172.24.1.0 broadcast 172.24.1.255
- Now we need to configure 'hostapd'. Create a configuration file by using the command:
sudo nano /etc/hostapd/hostapd.confand add the following content:
# This is the name of the WiFi interface we configured above interface=wlan0 # Use the nl80211 driver with the brcmfmac driver driver=nl80211 # This is the name of the network ssid=PiTalk_WiFi # Use the 2.4GHz band hw_mode=g # Use channel 6 channel=6 # Enable 802.11n ieee80211n=1 # Enable WMM wmm_enabled=1 # Enable 40MHz channels with 20ns guard interval ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] # Accept all MAC addresses macaddr_acl=0 # Use WPA authentication auth_algs=1 # Require clients to know the network name ignore_broadcast_ssid=0 # Use WPA2 wpa=2 # Use a pre-shared key wpa_key_mgmt=WPA-PSK # The network passphrase wpa_passphrase=raspberry # Use AES, instead of TKIP rsn_pairwise=CCMP
- Open up the default configuration file using:
and find the line
sudo nano /etc/default/hostapd
#DAEMON_CONF=""and replace it with
- Configure 'dnsmasq' configuration file:
and paste the following into the new file:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig sudo nano /etc/dnsmasq.conf
interface=wlan0 # Use interface wlan0 listen-address=172.24.1.1 # Explicitly specify the address to listen on bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere server=18.104.22.168 # Forward DNS requests to Google DNS domain-needed # Don't forward short names bogus-priv # Never forward addresses in the non-routed address spaces. dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
- Now enable packet forwarding:
sudo nano /etc/sysctl.confand remove the '#' from the beginning of the line containing:
net.ipv4.ip_forward=1Now reboot your Raspberry Pi or active it immediately with:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
- Now we need to share our Raspberry Pi internet connection to our devices connected over WiFi by configuring:
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
- We need these rules to be applied every time we reboot the Raspberry Pi, so run the command to save the file:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"Now we need to run this after each reboot, so open the 'rc.local' file and add the following line just above the 'exit 0'
iptables-restore < /etc/iptables.ipv4.nat
- Now to start the services type:
sudo service hostapd start sudo service dnsmasq start
- Now to cross check everything configured correctly, reboot the Raspberry Pi: