Имеем: 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_ом. Но в этом случае снимать нужно только галку "Беспроводная сеть".