How to setup Access Point (WiFi hotspot) on Debian
Here are scripts for creating WiFi AP:
SetupWiFi.sh
- Sets up WiFi network and shares eth0 with wlan0. Change "ssid" and "wpa_passphrase" for setting WiFi SSID (AP name) and password.StartWifi.sh
- Starts WiFi. (SetupWiFi.sh
already starts it so you can skip it first time.)StopWiFi.sh
- Stops it.
SetupWiFi.sh:
#!/bin/bash
apt-get install -y hostapd dnsmasq wireless-tools iw wvdial
sed -i 's#^DAEMON_CONF=.*#DAEMON_CONF=/etc/hostapd/hostapd.conf#' /etc/init.d/hostapd
cat <<EOF > /etc/dnsmasq.conf
log-facility=/var/log/dnsmasq.log
#address=/#/10.0.0.1
#address=/google.com/10.0.0.1
interface=wlan0
dhcp-range=10.0.0.10,10.0.0.250,12h
dhcp-option=3,10.0.0.1
dhcp-option=6,10.0.0.1
#no-resolv
log-queries
EOF
service dnsmasq start
ifconfig wlan0 up
ifconfig wlan0 10.0.0.1/24
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
echo '1' > /proc/sys/net/ipv4/ip_forward
cat <<EOF > /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
channel=1
ssid=WiFiAP
wpa=2
wpa_passphrase=YOUR_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
# Change the broadcasted/multicasted keys after this many seconds.
wpa_group_rekey=600
# Change the master key after this many seconds. Master key is used as a basis
wpa_gmk_rekey=86400
EOF
service hostapd start
StartWiFi.sh:
#!/bin/bash
service hostapd start
service dnsmasq start
StopWiFi.sh:
#!/bin/bash
service hostapd stop
service dnsmasq stop
Notes:
- Tested on Debian 7, but should work on newer version.
- Make sure you are running superuser. (For newbies) make these files executable by using
chmod +x 'SetupWiFi.sh'
Hope it helps.
Related videos on Youtube
WagnerMatosUK
Updated on September 18, 2022Comments
-
WagnerMatosUK over 1 year
I'm trying to setup an AP got stuck. I'm using an Odroid U3 and the WiFi adapter is the Module 3 from Hardkernel. I'm also using a Debian Jessie.
Not, I've got it to almost work: the Odroid has access to the internet and other devices (my phone and my tablet) can see the network, however when I try to connect to the network, I get the message: Unable to join the network "myNetwork".
My hosts file is as follow:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). auto lo br0 iface lo inet loopback allow-hotplug eth0 iface eth0 inet manual allow-hotplug wlan0 iface wlan0 inet manual # Bridge setup # for dhcp address #iface br0 inet dhcp # bridge_ports eth0 wlan0 # for static ip iface br0 inet static bridge_ports eth0 wlan0 # adapt with your network settings address 192.168.1.250 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.1.1 fns-search localdomain
my hostapd.conf file is:
interface=wlan0 driver=nl80211 ctrl_interface=/var/run/hostapd ctrl_interface_group=0 ssid=RaspAP hw_mode=g wpa=2 channel=8 wpa_passphrase=raspiwlan wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP beacon_int=100 auth_algs=3 wmm_enabled=1
and the result of ifconfig is:
br0 Link encap:Ethernet HWaddr 1e:fb:50:05:6b:da inet addr:192.168.1.250 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::1cfb:50ff:fe05:6bda/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:803 errors:0 dropped:0 overruns:0 frame:0 TX packets:466 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:90238 (88.1 KiB) TX bytes:48926 (47.7 KiB) eth0 Link encap:Ethernet HWaddr 1e:fb:50:05:6b:da UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1838 errors:0 dropped:0 overruns:0 frame:0 TX packets:466 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:557975 (544.8 KiB) TX bytes:54146 (52.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:390 errors:0 dropped:0 overruns:0 frame:0 TX packets:390 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:25662 (25.0 KiB) TX bytes:25662 (25.0 KiB) mon.wlan0 Link encap:UNSPEC HWaddr 00-A8-2B-00-05-4D-00-00-00-00-00-00-00-00-00-00 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:21913 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6729206 (6.4 MiB) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr 00:a8:2b:00:05:4d UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:17 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2828 (2.7 KiB) TX bytes:2490 (2.4 KiB)
After some research, I've found an answer on SO (unfortunately lost the link) where suggests that the problem might be related to dynamic ip addresses for the devices connecting to the Odroid, but I'm not sure that's case. Any suggestions?
Many thanks
-
WagnerMatosUK about 10 yearsFor anyone interested in the subject, it turns out the problem is the WiFi adaptor (at least it seems that way), so I've ordered a new one with an Atheros chipset. Once it arrives I'll test and post the results.
-
Raymond Lagonda over 9 yearsdo you have any dhcp running? Your problems probably because of your client can not obtain ip.
-
edumgui over 9 yearsRecently I tested hostapd at home. Very easy with this post: nims11.wordpress.com/2012/04/27/… Take a look and tell us if you missed something ;-)
-
jredd almost 9 yearsI have done this on my Rasberry Pi with Debian 7. There are a LOT of guides out there for doing this on a RPi, so I will not mention any one in particular. However, I suggest using dnsmasqd + hostapd. If you have an issue, make sure to not only restart the services, but also restarting networking-service can solve many issues. /etc/init.d/networking restart
-
-
haxpanel about 8 yearshey there, these scripts look very handy so that I'm trying to use them. The only difference is that I'm using wlan1 instead of eth0 for accessing the internet and wlan0 for sharing it. I just simply replaced the eth0 with wlan1 but no luck. Also, I set up the wlan1 in the interfaces file in order to connect to the hotspot. Any idea? :) Thanks
-
haxpanel about 8 yearsI managed to make it work - this answer needs some fix
-
e-info128 about 7 yearsThe source of response: offensive-security.com/kali-linux/…
-
Paulin Trognon over 6 yearsifconfig has been deprecated in debian 9, does someone know how to update this script to make it work with debian 9?