How to Create a WiFi Hotspot in Debian 12 Bookworm

Learn how to set up a WiFi hotspot on a Debian 12 (Bookworm) system using both GUI and command line methods.

Creating a WiFi hotspot on a Debian 12 (Bookworm) system allows you to share your internet connection with other devices. This is particularly useful when using a wired connection or when you want to create a private network for specific purposes. In this guide, we will cover the steps required to set up a WiFi hotspot using both Graphical User Interface (GUI) and Command Line Interface (CLI) methods.

Prerequisites

Before setting up a WiFi hotspot, ensure you have the following:

  • A Debian 12 (Bookworm) system.
  • A WiFi adapter that supports Access Point (AP) mode.
  • sudo privileges to execute administrative commands.
  • An active internet connection (optional, if you need internet sharing).

Method 1: Setting Up a WiFi Hotspot Using the GUI

For users who prefer a graphical approach, NetworkManager provides a convenient way to create a WiFi hotspot.

Step 1: Open Network Settings

  1. Click on the Network icon in the system tray.
  2. Select Settings (or “Wi-Fi Settings”).
  3. Navigate to the Wi-Fi section.
  4. Click on the three-dot menu in the top-right corner and select Turn On Wi-Fi Hotspot.

Step 2: Configure the Hotspot

  1. Set the SSID (network name) for your hotspot.
  2. Choose a password for security.
  3. Select the WiFi band (2.4 GHz or 5 GHz, depending on hardware support).
  4. Click Enable to activate the hotspot.

Step 3: Connect Other Devices

Now, your WiFi hotspot is active. Other devices can connect using the SSID and password you configured.


Method 2: Setting Up a WiFi Hotspot Using the Command Line

If you prefer using the terminal, you can configure a WiFi hotspot using hostapd and dnsmasq.

Step 1: Install Required Packages

Run the following command to install the necessary software:

sudo apt update
sudo apt install hostapd dnsmasq

After installation, disable the services (they will be configured later):

sudo systemctl stop hostapd
sudo systemctl stop dnsmasq

Step 2: Configure the Wireless Network Interface

Identify your WiFi interface:

ip link show

Typically, the wireless interface is named wlan0 (it may vary depending on your system).

Edit the network configuration file for static IP setup:

sudo nano /etc/network/interfaces.d/hotspot

Add the following lines:

auto wlan0
iface wlan0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    network 192.168.1.0

Save and exit (Ctrl + X, Y, Enter).

Step 3: Configure Hostapd

Edit the hostapd configuration file:

sudo nano /etc/hostapd/hostapd.conf

Add the following configuration:

interface=wlan0
driver=nl80211
ssid=DebianHotspot
hw_mode=g
channel=7
wmm_enabled=1
auth_algs=1
wpa=2
wpa_passphrase=SecurePass123
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

Save and exit.

Edit the hostapd default file to point to the configuration file:

sudo nano /etc/default/hostapd

Uncomment and modify the line:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Save and exit.

Step 4: Configure Dnsmasq

Edit the dnsmasq configuration file:

sudo nano /etc/dnsmasq.conf

Add the following lines:

interface=wlan0
dhcp-range=192.168.1.10,192.168.1.100,12h

Save and exit.

Step 5: Enable IP Forwarding

Edit the sysctl configuration:

sudo nano /etc/sysctl.conf

Uncomment or add the following line:

net.ipv4.ip_forward=1

Apply the changes:

sudo sysctl -p

Step 6: Configure NAT (Optional, for Internet Sharing)

Run the following commands to enable NAT:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.rules

To restore iptables on reboot, edit /etc/rc.local and add:

iptables-restore < /etc/iptables.rules
exit 0

Step 7: Start the Hotspot Services

Start and enable the services:

sudo systemctl start hostapd
sudo systemctl enable hostapd
sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq

Step 8: Verify the Hotspot

Check if the WiFi hotspot is running:

sudo systemctl status hostapd
sudo systemctl status dnsmasq

If everything is set up correctly, your hotspot should be active and available for other devices to connect.


Troubleshooting

1. Check Wireless Interface Compatibility

Run:

iw list | grep AP

If you don’t see “AP” mode, your WiFi adapter does not support hotspot mode.

2. Check Service Logs

If the hotspot is not working, check the logs:

journalctl -u hostapd --no-pager | tail -20
journalctl -u dnsmasq --no-pager | tail -20

3. Restart Services

Restart services if changes were made:

sudo systemctl restart hostapd
sudo systemctl restart dnsmasq

4. Check Firewall Rules

If you have a firewall enabled, you may need to allow traffic:

sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo ufw allow 53/udp
sudo ufw allow 53/tcp

Conclusion

Setting up a WiFi hotspot in Debian 12 (Bookworm) can be done via the GUI for simplicity or the CLI for more control and advanced configurations. Whether you’re sharing an internet connection or creating a private network, the process is straightforward with the right tools and configurations. If you encounter issues, checking hardware compatibility and service logs can help troubleshoot problems effectively.