Как раздать интернет по wifi в Ubuntu/Linux

В этой статье я расскажу как я раздаю WiFi в Ubuntu 14.04, этот способ также будет работать в Debian Jessie и других версиях Linux. Для раздачи wifi нам понадобится пакет hostapd, который нужен для включения режима точки доступа на wifi адаптере, а также пакет dnsmasq в качестве dhcp сервера, для автоматического назначения IP адреса клиентам.

1. Проверка возможности создания точки доступа
Перед тем как приступать к раздаче WiFi, нужно убедиться, что ваш wifi адаптер поддерживает режим точки доступа. Для этого откройте терминал и введите команду (если команда не найдена, то установите пакет iw: “sudo aptitude install iw”):
sudo iw list

В разделе “Supported interface modes” вы должны увидеть опцию “AP”:

Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * WDS
		 * monitor
		 * mesh point
		 * P2P-client
		 * P2P-GO

Если опции AP нет, то значит ваш wifi адаптер не поддерживает режим точки доступа.

2. Установка hostapd и dnsmasq
Сначала установим нужные пакеты:

sudo apt-get install hostapd dnsmasq

Затем остановим сервисы и уберем их из автозагрузки (я запускаю их вручную только когда нужно раздать wifi):

sudo service hostapd stop
sudo service dnsmasq stop
sudo update-rc.d hostapd disable
sudo update-rc.d dnsmasq disable

3. Настройка dnsmasq
Откройте файл:

sudo nano /etc/dnsmasq.conf

Найдите и пропишите следующие опции:

bind-interfaces
#ваш wifi интерфейс, с моем случае wlan0
interface=wlan0
#диапазон ip адресов
dhcp-range=192.168.150.2,192.168.150.10

4. Найтройка hostapd
Откройте файл:

sudo nano /etc/hostapd.conf

и добавьте следующие строки:

interface=wlan0
driver=nl80211
ssid=mywifi
hw_mode=g
channel=6
wpa=2
wpa_passphrase=mypassword

где измените соответствующие значения для interface (ваш интерфейс wifi),ssid (имя точки доступа), wpa_passphrase (пароль для точки доступа)

5. Скрипт запуска точки доступа
В домашней директории создайте файл start_ap.sh и добавьте содержимое:

#!/bin/bash

#если адаптер заблокирован, то раскомментируйте строку:
#sudo rfkill unblock wlan

sudo ifconfig wlan0 192.168.150.1
sudo service dnsmasq restart
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
sudo hostapd /etc/hostapd.conf

#останавливаем запущенные сервисы, после нажатия Ctrl+C или если точка не запустилась:
sudo iptables -D POSTROUTING -t nat -o wwan0 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=0
sudo service dnsmasq stop
sudo service hostapd stop

В моем случае я выхожу в интернет через интерфейс wwan0 (3g модем), в вашем случае это может быть какой-то другой интерфейс, например eth0 или ppp0. Поэтому замените wwan0 на соответствующий интерфейс в вашей системе.

Разрешим запуск скрипта:

chmod +x start_ap.sh

6. Запуск точки доступа
Запускать точку доступа и раздавать интернет по wifi теперь можно одной простой командой:

~/start_ap.sh

На этом у меня все. Если есть что добавить, пишите в коментариях.

Похожие записи:

Комментарии к записи “Как раздать интернет по wifi в Ubuntu/Linux

  1. Constantine

    root@samsung-r40-debian8:/home/constantine# sh start_ap.sh
    net.ipv4.ip_forward = 1
    Configuration file: /etc/hostapd.conf
    nl80211: Could not configure driver mode
    nl80211 driver initialization failed.
    hostapd_free_hapd_data: Interface wlan0 wasn’t started
    net.ipv4.ip_forward = 0

  2. Ростислав

    А как она будет запущена, если она остановлена? (sudo service hostapd stop)

  3. user

    Ростислав, точка доступа запускается командой:
    sudo hostapd /etc/hostapd.conf
    и она блокирует выполнение остальных, до тех пор пока вы не нажмете Ctrc+C