Если вам нужна постоянная точка доступа, то ищите документацию по вашему дистрибутиву. Как настроить NAT, DHCP, iptables… Это же руководство про то, как настроить элементарное соединение в две команды, чтобы просто перелить файл с компа на телефон или для чего-нибудь подобного. Ну и про NAT я тоже чуть-чуть скажу.
Нам не понадобится ничего, кроме hostapd
и какого-нибудь
простого web-сервера.
Создаём файл hostapd.conf
примерно такого содержания
interface=wlan0
#bridge=br0
driver=nl80211
logger_stdout=-1
logger_stdout_level=2
# Имя Вашей точки доступа
ssid=mi
hw_mode=g
channel=6
auth_algs=3
max_num_sta=5
wpa=2
# Пароль
wpa_passphrase=xxxxxxxx
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
# Если надо скрыть ssid
#ignore_broadcast_ssid=1
Запускаем демон.
sudo hostapd -d ./hostapd.conf
На подключающемся устройстве настраиваем, скажем,
192.168.1.2
, а на компьютере:
sudo ip addr add 192.168.1.1/24 dev wlan0
Всё.
Тут по-вкусу. Для nginx
конфигурация может быть такой:
server {
server_name x;
access_log /var/log/nginx/x.access.log;
error_log /var/log/nginx/x.error.log error;
charset utf-8;
index index.html;
autoindex on;
listen 8888;
location / {
alias /tmp/;
}
}
Всё. Теперь по адресу http://192.168.1.1:8888/
видна ваша /tmp/
.
Если вам не лень, то настроить NAT и DHCP совсем не сложно. Здесь я расскажу, как всё это запустить на коленке. Как включить запуск демонов на этапе загрузки — читайте в документации к вашему дистрибутиву.
Создаём минимальную конфигурацию в /etc/dhcpd.conf
:
option domain-name-servers 8.8.8.8, 8.8.4.4;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.250;
}
Запускаем демон с отладкой:
dhcpd -f -d
Теперь вы можете проверить, что всё работает. Запускаем
tcpdump
:
tcpdump -i wlp4s0
Подключаемся любым устройством к нашей точке. Пока интернет
на устройстве не появится, но tcpdump
должен показать что-то
вроде:
21:12:11.199623 IP 192.168.1.150.55610 > google-public-dns-b.google.com.domain: 27302+ A? go.trouter.io. (31)
То есть, нашему клиенту выдался адрес и всё работает.
Проверяем и включаем, если надо, форвардинг:
sysctl -a | grep forward
sysctl net.ipv4.ip_forward=1
Настраиваем NAT:
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
iptables -F FORWARD
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlp4s0 -o enp2s -j ACCEPT
Мост настраивается проще, но опыт показывает, что мост работает устойчиво не со всеми устройствами. Если для вас не принципиально, то выбирайте NAT.
Кстати, иногда даже в LTS-ядрах WiFi драйвера оказываются поломанными. Я дважды с этим сталкивался. Я на этот случай держу два ядра: LTS и не-LTS. Сразу оба не ломались ещё ни разу.
Одним словом, будьте готовы к тому, что поддержка вашего чипа может работать не всегда, может ломаться или чиниться при обновлении системы. Сохраняйте пути для отката на предыдущую версию или держите несколько ядер.