Erstellen eines WLAN-Zugangspunkts auf einer einzigen Oberfläche in Linux
27405
adityap174
Ich versuche, auf meinem Linux-Laptop einen WLAN-Hotspot oder einen Zugangspunkt zu erstellen. Ich benutze Opensuse Kde 12.3.
Ich habe eine Software mit dem Namen " hostapdHotspot" gefunden, die zwei Schnittstellen erfordert. Einer ist mit dem Internet verbunden und der andere, auf dem Sie den Zugangspunkt erstellen möchten ( Tutorial hier ). Mein Problem ist, dass ich keine Ethernet-Verbindung habe. Die wlanSchnittstelle wird verwendet, um eine Verbindung zum Internet herzustellen.
Gibt es eine Möglichkeit, den Hotspot auf derselben Schnittstelle zu erstellen, die mit dem Internet verbunden ist (wie die Software, die connectify unter Windows ausführt)? Ich dachte daran, eine virtuelle Schnittstelle zu erstellen (wie die, airmon-ngdie zur Überwachung von Wifi erstellt wird) und sie als zweite Schnittstelle zu verwenden. Ist das möglich?
AKTUALISIEREN
Folgendes konnte ich bisher tun:
1) Erstellen Sie 2 Schnittstellen (eine als Station und die andere als Zugangspunkt).
iw phy phy0 interface add mySta type station iw phy phy0 interface add myAcc type __ap
2) Geben Sie ihnen eine separate Mac-ID
ifconfig myAcc hw ether A4:17:FE:6E:00:53 ifconfig myAcc 192.168.27.1 up
3) Starten Sie hostapd auf der myAcc-Schnittstelle
4) Starten Sie dnsmasq, um den angeschlossenen Geräten eine IP-Adresse bereitzustellen
All das funktioniert. Geräte können sich mit diesem Netzwerk verbinden und erhalten eine IP-Adresse. Der nächste Schritt ist das Bereitstellen von IP-Masquerading
Die mySta-Schnittstelle kann jedoch keine Verbindung zum Internet herstellen. Es ist in der Lage, das Essid, aber nicht die IP-Adresse zu erhalten.
Der Befehl dhclient mySta zeigt keine Nachricht an und gibt nach einiger Zeit den Fehler aus:
ls: cannot access /var/run/netconfig//mySta/: No such file or directory
Kann jemand herausfinden, wie man die IP-Adresse erhält?
Habe es mit "Dummy-Netz-Treiberunterstützung" (Kernel-Treiber) als Modul versucht. Ich kann Ihnen nicht mehr helfen, weil ich openSUSE nicht kenne. Aber ich kann sehen, dass es Fehler gibt, die ab Version 11 gemeldet werden, wenn sie mit Yast erstellt wird. Also sei vorsichtig.
Diblo Dk vor 11 Jahren
0
Ich kann Ihnen natürlich helfen, wenn es auf die gleiche Weise (Kernel-Konfiguration, Netzwerk-Setup) wie in Gentoo, Debian oder Ubuntu möglich ist.
Diblo Dk vor 11 Jahren
0
Jede Hilfe wird geschätzt. Ich verwende die Yast-Tools nicht als solche. Die Konfigurationen stammen aus einem Tutorial zu Ubuntu. Das Dateisystem und die Konfigurationen sind nahezu identisch.
adityap174 vor 11 Jahren
0
Was ist deine Kernelversion?
Diblo Dk vor 11 Jahren
0
Kernel: x86_64 Linux 3.7.10-1.16-Desktop
adityap174 vor 11 Jahren
0
Sie müssen wissen, welche Probleme Sie selbst gelöst haben, damit die Antwort möglicherweise aktualisiert wird. :)
Diblo Dk vor 11 Jahren
0
Dieselbe Frage noch einmal: http://superuser.com/questions/639479/linux-share-wireless-connection-through-the-same-wireless-interface/639496#639496 Und nochmal: http://superuser.com/questions/ 649220 / a-wifi-ap-with-a-single-nic / 656574 # 656574
imz -- Ivan Zakharyaschev vor 10 Jahren
0
3 Antworten auf die Frage
8
adityap174
Für alle anderen, die mit diesem Problem konfrontiert waren, war das Problem die Adresse des Mac. Ich habe die Zugangspunktschnittstelle gestartet und eine MAC-Adresse angegeben. Nachdem Hostapd ausgeführt wurde, fügte er die Stationsschnittstelle hinzu, gab eine andere MAC-Adresse an, verband sie mit dem Netzwerk und gab die IP-Adresse der Station als Standardgateway der Clients über dnsmasq an.
Jetzt funktioniert alles einwandfrei.
Wie von Diblo Dk erläutert, konnten Sie virtuelle und Dummy-Schnittstellen verwenden, aber Hostapd arbeitete nicht mit ihnen. Ich weiß nicht warum.
Hier sind die Schritte:
Deaktivieren Sie den Network Manager-Dienst, da er virtuelle Schnittstellen stört
Schalten Sie wlan0 mit ifconfig wlan0 herunter
Erstellen Sie eine Zugriffspunktschnittstelle mit dem Befehl iw (Typ __ap) und weisen Sie eine andere MAC- und IP-Adresse zu
Aktivieren Sie hostapd an dieser Zugriffsschnittstelle
Verwenden Sie dnsmasq, um den verbindenden Clients an dieser Schnittstelle IP-Adressen zuzuweisen, und geben Sie das Standard-Gateway als IP-Adresse der zu erstellenden Stationsschnittstelle an
Aktivieren Sie dnsmasq an der Zugriffsschnittstelle. Nun kann sich der Client mit dem Zugangspunkt verbinden und IP-Adressen erhalten.
Erstellen Sie eine neue Schnittstelle (Typstation), weisen Sie dieser eine separate MAC-Adresse zu, und verbinden Sie sie mit dem Netzwerk, indem Sie essid zuweisen und mithilfe von dhclient die IP-Adresse erhalten.
Falls erforderlich, führen Sie das IP-Masquerading über den Befehl iptables aus
Um es einfach zu sagen, WTF hostapd :)
Diblo Dk vor 11 Jahren
0
Können Sie Ihre Antwort mit den genauen Schritten aktualisieren, die Sie gemacht haben? Dies ist definitiv eine Antwort, die ich speichern möchte.
Diblo Dk vor 11 Jahren
0
updated :) want more details ?
adityap174 vor 11 Jahren
0
Cooler Weg, um das Problem zu umgehen :)
Diblo Dk vor 11 Jahren
0
Welchen Dongle / Chipsatz hast du benutzt?
Alvin vor 9 Jahren
0
@ adityap174 Hallo, ich bin mir immer noch nicht sicher, wie du das Setup eingerichtet hast? Können Sie meine Frage unter https://unix.stackexchange.com/questions/411478/hostapd-on-single-interface überprüfen
Veerendra vor 6 Jahren
0
2
Diblo Dk
Richten Sie ein Dummy-Netzwerk ein
1 Öffnen Sie die Konsole
su -
2 Prüfen Sie, ob Sie einen Dummy-Treiber haben
modprobe -l | grep /net/dummy.ko
(!) Wenn Sie keinen Dummy-Treiber haben, gehen Sie zu " Kernel-Modul erstellen ".
3 Laden Sie den Dummy-Treiber
modprobe dummy
(!) Fügen Sie es nicht dem Start hinzu, wenn es fehlschlägt.
4 Testen Sie das Dummy0, indem Sie es aufstellen
ifconfig dummy0 10.246.75.1 netmask 255.255.255.0 broadcast 10.246.75.255 up ifconfig
Sie erhalten eine ähnliche Ausgabe.
dummy0 Link encap:Ethernet HWaddr 00:2D:32:3E:39:3B inet addr:10.246.75.1 Bcast:10.246.75.255 Mask:255.255.255.0 ...
5 Fügen Sie dem Start einen Dummy-Treiber hinzu
Bearbeiten Sie die sys-Datei des Kernels.
nano /etc/sysconfig/kernel
und füge " dummy " zu MODULES_LOADED_ON_BOOT hinzu.
MODULES_LOADED_ON_BOOT = "..."
Ex. MODULES_LOADED_ON_BOOT = "vmcp-Dummy".
6 Konfigurieren Sie die Netzwerkeinstellungen für Dummy0
Erstellen Sie die Datei ifcfg-dummy0.
nano /etc/sysconfig/network/ifcfg-dummy0
Hinzufügen zur ifcfg-dummy0-Datei:
# Configuration for dummy0 BOOTPROTO=static # This line ensures that the interface will be brought up during boot. STARTMODE=onboot # dummy0 - This is the main IP address that will be used for most outbound connections. # The address, netmask and gateway are all necessary. The metric is not necessary but # ensures you always talk to the same gateway if you have multiple public IPs from # different subnets. IPADDR=10.246.75.1 NETMASK=255.255.255.0 BROADCAST=10.246.75.255 GATEWAY=10.246.75.1
Kernel-Modul erstellen
1 Zuerst die notwendigen Dinge installieren
Öffnen Sie YaST.
Navigieren Sie zu Software-> Software Management.
Tick:
Development [X] Base Development [X] Linux Kernel Development [X] C/C++ Development
2 Kehren Sie zur Konsole zurück und navigieren Sie zur Kernel-Quelle
cd /usr/src/linux
3 Importieren Sie die aktuelle Kernelkonfiguration
zcat /proc/config.gz > .config
4 Öffnen Sie das Kernel menuconfig
make menuconfig
5 Fügen Sie die Unterstützung für Dummy-Netztreiber hinzu
Navigieren Sie zu Device Drivers->Network device support
* Network core driver support M Dummy net driver support
(!) Wenn Sie ein Sternchen neben "Unterstützung für Netzwerkkerntreiber" haben, können Sie die Schritte 7 und 9 überspringen.
6 Kompilieren Sie den Kernel
make -j(n+1)
Dabei ist (n + 1) = Anzahl der CPU-Kerne plus einer, die zum Beschleunigen des Kompilierens verwendet wird. Verwenden Sie für vier Kerne make -j5.
Thanks for such a detailed explanation. I tried this method. I was able to create dummy0 interface and start in on boot. But how do you make it a wireless interface ? iwconfig gives : dummy0 no wireless extensions. hostapd doesn't work with this. It gives error : nl80211 driver initialization failed
adityap174 vor 11 Jahren
0
Ja, das Problem ist, dass Sie einen IP-Konflikt haben. Es könnte jedoch mit Pseudo-Modul (mehrere IP-Adressen zuweisen) durchgeführt werden. Gib mir etwas Zeit, um nach deinem System zu suchen.
Diblo Dk vor 11 Jahren
0
Sie können auch hier https://www.linode.com/wiki/index.php/Configure_Static_IPs#OpenSUSE nachsehen. Es könnte sein, dass Sie sehen, wie Sie mit wlan umgehen können :)
Diblo Dk vor 11 Jahren
0
, das Problem ist, dass Sie einen IP-Konflikt bekommen *
Diblo Dk vor 11 Jahren
0
1
Diblo Dk
Virtuelle Schnittstelle erstellen
Erstellen Sie die Datei ifcfg-wlan0: 0
nano /etc/sysconfig/network/ifcfg-wlan0:0
Zu ifcfg-wlan0: 0 Datei hinzufügen:
DEVICE=wlan0:0 # Configuration for wlan0:0 ONBOOT=yes # This line ensures that the interface will be brought up during boot. BOOTPROTO=static # wlan0:0 - This is the main IP address that will be used for most outbound connections. # The address, netmask and gateway are all necessary. The metric is not necessary but # ensures you always talk to the same gateway if you have multiple public IPs from # different subnets. IPADDR=10.246.75.1 NETMASK=255.255.255.0 BROADCAST=10.246.75.255 GATEWAY=10.246.75.1
Die Befehle zum Aktivieren der Schnittstelle
ifup wlan0:0
Hinweis: Durch das Herunterfahren der Hauptschnittstelle werden auch alle Aliasnamen heruntergefahren. Aliase können unabhängig von anderen Schnittstellen heruntergefahren werden.
Prüfen Sie, ob die Schnittstelle funktioniert
ifconfig
Sie erhalten eine ähnliche Ausgabe.
wlan0:0 Link encap:Ethernet HWaddr 00:2D:32:3E:39:3B inet addr:10.246.75.1 Bcast:10.246.75.255 Mask:255.255.255.0 ...
even this was not working with hostapd. It gave the same error : Could not open file /sys/class/net/dummy0/phy80211/name: No such file or directory with dummy0 and Could not open file /sys/class/net/wlan0:0/phy80211/name: No such file or directory with the virtual interface. Thanks for all your help. :) The problem was with mac address. I have upvoted your answers and i am posting the solution for others.
adityap174 vor 11 Jahren
0