Сразу скажу, что в сетях на raspberry я полный нуб. Спойлер: Предыстория Передо мной встала задача обеспечить доступ к WiFi в дальнем углу отеля. К сожалению, стены тут, видимо со стальной сеткой, работают как клетка Фарадея, сжирая весь сигнал. По этой причине, WiFi от телефона не виден уже через 1 стену Единственное, что было с собой, это Raspberry pi Zero 1.3 и внешний USB WiFi-адаптер. Помню, как-то давно, я через этот один адаптер на Шиндовс уже делал репитер вафли. Погуглив нашёл массу статей как это организовать на RPI, но почти везде юзают 2 адаптера. Мне же, доступен только 1. И вот, спустя день активного гуглинга, наткнулся на эту статью (не реклама): https://blog.thewalr.us/2017/09/26/raspberry-pi-zero-w-simultaneous-ap-and-managed-mode-wifi/ Тут хоть и для Raspberry pi zero W, но всё же, с лишь одним адаптером, то, что нужно! Сделал я всё по статье. Вдруг пригодится: IP, который телефон присваивает raspberry: 192.168.43.135 Телефон раздаёт вафлю на 11 канале, hostapd.conf тоже настроен на 11 канал Драйвер из lsusb -t моего адаптера: rt2800usb С Raspberry, я общаюсь по UART, через Putty Ниже, содержание файлов, которые я редактировал по статье: Спойлер: /etc/udev/rules.d/70-persistent-net.rules Код (Bash): SUBSYSTEM=="ieee80211", ACTION=="add|change", ATTR{macaddress}=="<МАК АДРЕС wlan0>", KERNEL=="phy0", \ RUN+="/sbin/iw phy phy0 interface add ap0 type __ap", \ RUN+="/bin/ip link set ap0 address <МАК АДРЕС wlan0>" Спойлер: iw dev Код (Bash): phy#0 Interface wlan0 ifindex 2 wdev 0x1 addr <МАК АДРЕС wlan0> type managed txpower 20.00 dBm Спойлер: /etc/dnsmasq.conf Код (Bash): interface=lo,ap0 no-dhcp-interface=lo,wlan0 bind-interfaces server=8.8.8.8 domain-needed bogus-priv dhcp-range=192.168.10.50,192.168.10.150,12h Спойлер: /etc/hostapd/hostapd.conf Код (Bash): ctrl_interface=/var/run/hostapd ctrl_interface_group=0 interface=ap0 driver=rt2800usb ssid=YourApNameHere hw_mode=g channel=11 wmm_enabled=0 macaddr_acl=0 auth_algs=1 wpa=2 wpa_passphrase=YourPassPhraseHere wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP Спойлер: /etc/default/hostapd Код (Bash): DAEMON_CONF="/etc/hostapd/hostapd.conf" Спойлер: /etc/wpa_supplicant/wpa_supplicant.conf Код (Bash): country=PA ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="<SSID вафли телефона>" psk="<Пароль вафли телефона>" id_str="AP1" } Спойлер: /etc/network/interfaces Код (Bash): # interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo auto ap0 auto wlan0 iface lo inet loopback allow-hotplug ap0 iface ap0 inet static address 192.168.10.1 netmask 255.255.255.0 hostapd /etc/hostapd/hostapd.conf allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface AP1 inet dhcp Но в результате, при попытке поднять wlan0: Код (Bash): sudo ifup wlan0 Вылазит сея ошибка: Код (Text): wpa_supplicant: /sbin/wpa_supplicant daemon failed to start run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1 ifup: failed to bring up wlan0 Вот, что пишут логи в этот момент: Спойлер: sudo journalctl Jul 23 15:49:29 raspberrypi sudo[505]: pi : TTY=serial0 ; PWD=/home/pi ; USER=root ; COMMAND=/sbin/ifup wlan0 Jul 23 15:49:29 raspberrypi sudo[505]: pam_unix(sudo:session): session opened for user root by (uid=0) Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: Successfully initialized wpa_supplicant Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: Could not set interface wlan0 flags (UP): Name not unique on network Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: nl80211: Could not set interface 'wlan0' UP Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: nl80211: deinit ifname=wlan0 disabled_11b_rates=0 Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: Could not set interface wlan0 flags (UP): Name not unique on network Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: WEXT: Could not set interface 'wlan0' UP Jul 23 15:49:29 raspberrypi wpa_supplicant[521]: wlan0: Failed to initialize driver interface [/code] Спойлер: ifconfig Код (Text): ap0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255 ether <МАК АДРЕС wlan0> txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 11680 bytes 782560 (764.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11680 bytes 782560 (764.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Спойлер: lsusb -t Код (Text): /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=rt2800usb, 480M Естественно, при перезагрузке wlan0 так же не поднимается, и raspberry к телефону не подключается. И самое интересное, что если удалить из /etc/udev/rules.d/70-persistent-net.rules интерфейс ap0, то, wlan0 появляется и raspberry подключается к тыртырнету, но тогда, невозможно поднять ap0. Не работает даже следующий вариант: Код (Bash): sudo ifdown --force wlan0 sudo ifdown --force ap0 sudo ifup ap0 sudo ifup wlan0 Как я понял, дело тут в том, что у них указаны одинаковые мак-адреса, и raspberry не может понять, какой именно интерфейс я хочу запустить, или же, дело в драйвере. Т.е., судя по lsusb, мой адаптер работает через otg устройство, а на raspberry pi zero w, возможно, напрямую. После всех изменений в iw dev уже 2 устройства, но опять же, с одинаковыми МАК: Код (Text): phy#0 Interface ap0 ifindex 3 wdev 0x2 addr <МАК АДРЕС wlan0> type AP txpower 20.00 dBm Interface wlan0 ifindex 2 wdev 0x1 addr <МАК АДРЕС wlan0> type managed txpower 20.00 dBm Как видим, raspberry упорно не хочет жрать или 2 интерфейса с одинаковыми MAC, или драйвер моего адаптера, хотя винда прекрасно им и принимает, с него и раздаёт. Надеюсь на вашу помощь, товарищи!
Плохо понял задачу... вам надо соединение (как с роутером) один к другому в режиме клиент? И потом к нему подключиться мобильником? https://archlinux.org.ru/forum/topic/14179/ https://pastebin.com/A4jUp2Nq
Задача: сделать репитер WiFi. Сама raspberry подключается к WiFi, который раздаёт телефон. Далее raspberry раздает уже свою точку доступа, перенаправляя всё и вся на телефон
То есть телефон раздает Wi-Fi, к нему подключается Raspberry, а телефон к Raspberry? Круг замкнулся!?
Где я писал что к raspberry подключается телефон? К raspberry подключаются другие устройства, включая телевизор, мак, и т.п.
Вместо выяснения подобной ерунды можно было просто загуглить "WiFi репитор", о котором я писал в начале статьи
Загуглить про "WiFi репитор"? Спасибо за совет! Как я не догадался??? Вы почитайте себя! Загуглить можно, думаете узнаю что то новое? BGP сегодня я уже настроил . Если это Вам что то говорит В Win10 это работает "из коробки", но у Вас Мак , вопросов нет! У меня на работе тоже есть несколько человек с Мак, и мне кажется это для оправдания, когда нужно показать презентацию, но не получается, всегда слышу, "блин у меня же Мак..."
Давайте прекратим идиотское выяснение непонятно чего. Спешу огорчить, мака у меня нет, а вот у родственников есть, что уж тут поделаешь. Взял бы свой ноутбук, этой темы бы не было, ибо на Винде это всё делается одной командой netsh...
Тут попадаются некие wifi адаптеры, которые без ухищрений вообще раздавать не умеют. Другие не могут работать как "мост" и т.п. А умеют только сами к другой сети подключаться. И если на ноуте с виндой установлен нормальный как в роутерах, и система уже заточена, то это не распальцовка для убогой винды. Которая еле еле (и то не всегда) может закрыть "мёртвые" подключения в режиме сервера (к серверу подключились и разорвали соединение... именно разорвали, а не закрыли). Насколько нередко надо перезапускать серверы на винде? А адаптер он и есть адаптер... плохой или хороший. Вот на малине к примеру кто думал, что надо впаять крутой? И то ухищряются делать что-то (ссылки приведены)
Странно, очень странно! Ибо на ноутбуке я отключал встроенный WiFi адаптер, и точка доступа и само подключение организовывалось лишь внешним адаптером. Доказывалось это так же тем, что сам адаптер подключался через удлинитель, и в том месте, где он висел, встроенный ноутбучный адаптер ничего сделать не мог. Да и если подключить адаптер к raspberry, точку доступа она на нём делает, а вот подключиться как устройство уже не может. Как вы написали, именно мост у меня и не получается сделать. Либо адаптер сам к Wifi коннектится, либо раздаёт, как точка доступа. Одновременно никак не выходит. Никак не могу понять, почему на Винде это работало без любых ухищрений, а вот на малине нет!
Сдаётся мне, что дело всё же на стороне малины. Ибо если глянуть логи [UP], при попытке поднять wlan0, она говорит: name not unique on network
Мост, как я понимаю это два канала. Может я не прав??? Про то и говорю, что организовать несколько IP на одном адаптере это нормально, только не всякий умеет два канала сразу. По очереди сколько угодно. Есть предположение, что WIFI адаптер на Вашем ноуте умеет и к двум сетям одновременно подключаться. Не уверен, что родной адаптер встроенный в малину способен на это. Кстати не все роутеры способны на это так же.
Кстати... попробуйте одной задницей сесть на два стула, которые находятся в разных помещениях одновременно. И если выйдет,то мы все не правы!
Интересно получается, винда с физически отключенным встроенным адаптером, на одном лишь внешнем (USB) работает и как AP и как Managed, но по вашему такого быть просто не может! Ох-ох... Что-то мне это напоминает....
https://toster.ru/q/402216 https://www.linux.org.ru/forum/general/11847276 https://forum.ixbt.com/topic.cgi?id=14:61058 и даже невзирая на это (выше) и даже через яндекс ну если угодно и гугл.... с этим: одновременная работа wifi на разных каналах Настоятельно рекомендую одновременно сесть одной своей задницей сразу на два стула стоящих в разных зданиях. Не по очереди как вы думаете и то, что имеете. А именно ОДНОВРЕМЕННО!!!!! В принципе можно использовать один приёмопердатчик для работы сразу на двух частотах одновременно... я не умею так. По очереди ради бога! Вопрос в том как часто переключаться на разные частоты.