Печать
Категория: Ubuntu

Имеем: USB WiFi адаптер TP LINK TL-WN722N, которой безпроблем работает в Ubuntu в режиме Ad-hoc через Network Manager.Но к сожалению многие устройства не могут работать в этом режиме, а Network Manager в Ubuntu 12.04 14.04 16.04 не умеет работать в режиме точки доступа. Это мы и будем исправлять.

Итак в нашем примере используется вышеописанный адаптер, компьютер под управлением Ubuntu 14.04, который подключен к интернету покабелю. Нужно раздавать интернет с этого компьютера по воздуху на другие устройства.

1) Отключаем управление сетью в NetworkManager, нажатием на значек сети в панели и снимаем галочки с пункта "Управление сетью".

2) Настраиваем сеть вручную в файле /etc/network/interfaces (посмотрите примечание в конце статьи)
sudo nano /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
        post-up iptables-restore < /etc/iptables.up.rules
# Проводной интерфейс
iface eth0 inet static
        address 192.168.1.35          # Адрес компьютера в сети
        netmask 255.255.255.0       # Маска
        gateway 192.168.1.1           # Шлюз
        dns-nameservers 127.0.0.1 192.168.1.1 8.8.8.8 # Серверы DNS
auto eth0
# Беспроводной интерфейс
auto wlan0
iface wlan0 inet static
  address 192.168.0.1
  netmask 255.255.255.0
  broadcast 192.168.0.255
dns-nameservers 127.0.0.1 192.168.1.1 8.8.8.8

Добавляем правила в IPTABLES

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Сохраняем настройки фаервола в файл(В настройках сети выше мы как раз его загружаем при поднятии интерфейса)

sudo iptables-save > /etc/iptables.up.rules

Этим мы разрешаем прохождение пакетов из проводной сети в WiFi сеть и обратно

Так же нужно разрешить перенаправление трафика.

sudo nano /etc/sysctl.conf

Раскомментируем строку "net.ipv4.ip_forward=1"  и сохраним изменения.

Перезагрузимся. Интернет должен работать. WIFi еще нет.

Установим следующие пакеты:

sudo apt-get install wireless-tools bridge-utils hostapd dnsmasq

3) Настройка hostapd

sudo nano /etc/default/hostapd

Добавляем

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

Открываем

sudo nano /etc/hostapd/hostapd.conf

Прописываем следующее

#Name:Default
#Type:Hostapd
interface=wlan0
driver=nl80211#Драйвер
ssid=MyWiFI_AP# Имя создаваемой сети
country_code=RU
hw_mode=g# режим
channel=7# канал
macaddr_acl=0

4) Настройка DNSMASQ

sudo nano /etc/dnsmasq.conf
#Name:Default
#Type:DNSMASQ
interface=wlan0
dhcp-range=192.168.0.2,192.168.0.255,1h

Сохраняем.

 Проверяем работоспособность:

sudo /etc/init.d/networking restart
sudo /etc/init.d/dnsmasq restart
sudo /etc/init.d/hostapd restart

не должно быть никаких ошибок.

Возможные ошибки:

Operation not possible due to RF-kill - при попытке поднять WLAN0. Означает что устройство отключено програмно или физически.
Что бы включить:

rfkill list
rfkill unblock all

И передергиваем вайфай свисток.


Не запускается hostapd:
Запускаем так - sudo hostapd -B /etc/hostapd/hostapd.conf
Если есть ошибки в конфиге, то он покажет где.

PS: Если Вы скопировали код для конфигфайлов со страницы, то почистите пробелы.

В файле /etc/network/interfaces можно пропусить настройку проводного интерфейса eth0, если Вы хотите, что бы он управлялся network_Manager_ом. Но в этом случае снимать нужно только галку "Беспроводная сеть".