
Ich möchte eine Ad-hoc-Verbindung zwischen meinem Laptop mit Debian Wheezy und meinem Android Nexus 7-Tablet herstellen. Ich habe es hostapd
mit dieser Konfiguration auf meinem Laptop installiert.
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
Jetzt kann ich den Zugangspunkt in meinen Android-WLAN-Einstellungen sehen. Ich habe in meinen Nexus 7-Einstellungen eine statische IP-Adresse angegeben und „Verbinden“ eingegeben, und die Verbindung wurde hergestellt. Die Einstellungen, die ich in Nexus 7 angegeben habe, sind
IP : 192.168.1.3
Gateway: 192.168.1.1
Network prefix length: 24
DNS: 8.8.8.8
Wie kann ich nun mit meinem Laptop kommunizieren? Ich muss meinem Laptop auch eine IP-Adresse geben? Welche Einstellungen sollte ich verwenden?
Meine ifconfig
gibt
**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)
Antwort1
Sie versuchen offensichtlich, zwei Dinge gleichzeitig zu tun, die möglicherweise überhaupt nicht kompatibel sind oder nur mit einigem Aufwand möglich sind.
Ihrer WLAN0-Karte ist eine private IP zugewiesen, was darauf hinweist, dass Sie sie für die Verbindung mit einem WLAN-Netzwerk verwenden. Gleichzeitig haben Sie hostapd darauf, das die virtuelle Schnittstelle (vif) mon-wlan0 (auf Ihrem physischen Gerät phy0) in den Stationsmodus versetzt. Ist das richtig?
Was möchten Sie tun? Sie haben zwei Möglichkeiten:
1) Konfigurieren Sie alles so, dass Ihr Telefon Zugriff auf den PC hat, während weder der PC noch das Telefon über Internetzugang verfügen:
2) Umgekehrt: Konfigurieren Sie Ihren PC so, dass sowohl das Telefon als auch der PC über dieselbe WLAN-Karte auf das Internet zugreifen können.
Das Erste ist leicht zu arrangieren.
sudo service network-manager stop
sudo sysctl -w net.ipv4.ip_forward=1
sudo ifconfig wlan0 up 192.168.1.1
und schon kann es losgehen.
Die zweite Sache (also mit derselben WLAN-Karte eine Verbindung zu einem bestehenden WLAN herstellen und gleichzeitig anderen Komponenten einen WLAN-Zugangspunkt bieten) kann möglicherweise arrangiert werden. Im Wesentlichen hängt es von den Eigenschaften Ihrer WLAN-Karte ab. Wenn Sie dies erreichen möchten, müssen Sie die Ausgabe von
sudo iw list
Prost.
EDIT: Wenn ich es mir recht überlege, ist es möglich, dass Ihre IFI-Karte die Verwendung von hostapd in keinem Fall zulässt. Könnten Sie also bitte die Ausgabe des letzten Befehls posten?
Antwort2
Sie müssen sich im selben Netzwerk befinden, aber Sie haben zwei: 10.0.3.x und 192.168.1.x.
Ändern Sie einen davon, damit er mit dem anderen übereinstimmt.
Antwort3
Offenbar haben Sie die IP-Adresse auf Nexus nicht richtig definiert. Verwenden Sie eine IP-Adresse wie 10.0.3.14 oder etwas anderes im Bereich 10.0.3.0 mit Gateway 10.0.3.12.
Idealerweise sollten Sie jedoch einen DHCP-Server verwenden, um den Clients IP-Adressen zuzuweisen. Die richtige Vorgehensweise für dieses Setup ist:
- Konfigurieren Sie /etc/network/interfaces, um die IP-Adresseinstellungen für wlan0 zu definieren
- Konfigurieren eines DHCP-Servers wie (udhcpd oder isc-dhcp-server), um den Geräten, die eine Verbindung herstellen, eine IP-Adresse zuzuweisen.
Wenn Sie die Internetverbindung Ihres Laptops mit den verbundenen Geräten teilen möchten, sollten Sie außerdem die Paketweiterleitung aktivieren. Um die Paketweiterleitung zu aktivieren, heben Sie die Kommentierung der folgenden Zeile in /etc/sysctl.conf auf.
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
und erlauben Sie den Datenverkehr über iptables
$ sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
Eine vollständige Anleitung finden SieHier