
Я хочу установить adhoc-соединение между моим ноутбуком под управлением Debian Wheezy и моим планшетом Android Nexus 7. Я установил hostapd
на своем ноутбуке эту конфигурацию.
interface=wlan0
driver=nl80211
ssid=myapppp
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=passpass
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Теперь я вижу точку доступа, указанную в настройках WiFi на моем Android. Я указал статический IP в настройках nexus 7 и дал команду connect, и он подключился. Настройки, которые я указал в nexus 7,
IP : 192.168.1.3
Gateway: 192.168.1.1
Network prefix length: 24
DNS: 8.8.8.8
Теперь как мне связаться с моим ноутбуком? Мне нужно дать IP также моему ноутбуку? Какие настройки мне использовать?
Мой ifconfig
дает
**mon.wlan0 Link encap:UNSPEC HWaddr D0-DF-9A-EC-E6-09-3A-30-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)**
wlan0 Link encap:Ethernet HWaddr d0:df:9a:ec:e6:09
inet addr:10.0.3.12 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::d2df:9aff:feec:e609/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:95004 errors:0 dropped:0 overruns:0 frame:0
TX packets:78421 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:57369956 (54.7 MiB) TX bytes:10218977 (9.7 MiB)
решение1
Судя по всему, вы пытаетесь одновременно делать две вещи, которые могут быть совершенно несовместимы или возможны только после некоторой работы.
Вашей карте wlan0 назначен частный IP, что указывает на то, что вы используете ее для подключения к сети Wi-Fi. В то же время на ней установлен hostapd, который переводит виртуальный интерфейс (vif) mon-wlan0 (на вашем физическом устройстве phy0) в режим станции. Это правильно?
Что бы вы хотели сделать? У вас есть два варианта:
1) настроить все так, чтобы ваш телефон имел доступ к ПК, но при этом ни ПК, ни телефон не имели доступа в Интернет:
2) И наоборот, настройте свой компьютер так, чтобы и телефон, и компьютер имели доступ в Интернет через одну и ту же карту Wi-Fi.
Первое легко организовать.
sudo service network-manager stop
sudo sysctl -w net.ipv4.ip_forward=1
sudo ifconfig wlan0 up 192.168.1.1
и вы готовы идти.
Второе (т.е. с той же картой Wi-Fi, подключиться к существующей беспроводной сети и одновременно предоставить точку доступа Wi-Fi для других компонентов), возможно, можно организовать. В основном, это зависит от свойств вашей карты Wi-Fi. Если это то, чего вы хотите добиться, вам придется опубликовать вывод
sudo iw list
Ваше здоровье.
EDIT: если подумать, возможно, ваша карта ifi в любом случае не позволяет использовать hostapd. Так что не могли бы вы, пожалуйста, опубликовать вывод последней команды?
решение2
Вам необходимо находиться в одной сети, но у вас их две: 10.0.3.x и 192.168.1.x.
Измените одно из них так, чтобы оно согласовывалось с другим.
решение3
Кажется, вы неправильно определили IP-адрес на Nexus. Используйте IP-адрес типа 10.0.3.14 или что-то еще в диапазоне 10.0.3.0, со шлюзом 10.0.3.12.
В идеале вам следует использовать сервер dhcp для выделения IP-адресов клиентам. Правильный способ сделать эту настройку будет таким:
- Настройте /etc/network/interfaces, чтобы определить параметры IP-адреса для wlan0
- Настройка сервера DHCP (например, udhcpd или isc-dhcp-server) для назначения IP-адресов подключаемым устройствам.
Также, предполагая, что вы хотите поделиться интернет-подключением вашего ноутбука с устройствами, которые подключаются, вы также должны включить пересылку пакетов. Чтобы включить пересылку пакетов, раскомментируйте следующую строку в /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
и разрешить трафик через iptables
$ sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
Полные инструкции можно найтиздесь