Linux'ta tek bir arabirimde WiFi Erişim noktası oluşturma


14

Linux dizüstü bilgisayarımda bir WiFi erişim noktası veya erişim noktası oluşturmaya çalışıyorum. Opensuse Kde 12.3 kullanıyorum.

hostapdHotspot oluşturmanıza izin veren bir yazılım buldum, ancak iki arayüz gerektiriyor. Biri internete bağlı ve diğeri üzerinde erişim noktası oluşturmak istediğiniz ( burada öğretici ). Sahip olduğum sorun Ethernet bağlantımın olmaması. wlanArayüz internete bağlanmak için kullanılıyor.

İnternete bağlı olan aynı arayüzde etkin noktayı oluşturmanın herhangi bir yolu var mı (connectify'ın Windows'ta yaptığı gibi)? (Biri airmon-ngwifi izlemek için oluşturur gibi) bir sanal arayüz oluşturmayı ve ikinci arayüz olarak kullanmayı düşünüyordum. Mümkün mü?

GÜNCELLEME

İşte şimdiye kadar yapabildiklerim:

1) 2 arabirim oluşturun (biri istasyon, diğeri erişim noktası olarak)

  iw phy phy0 interface add mySta type station
  iw phy phy0 interface add myAcc type __ap

2) Onlara ayrı Mac kimliği verin

ifconfig myAcc hw ether A4:17:FE:6E:00:53
ifconfig myAcc 192.168.27.1 up

3) myAcc arayüzünde hostapd başlatın

4) Bağlanan cihazlara IP adresi sağlamak için dnsmasq'ı başlatın

Tüm bunlar işe yarıyor. Cihazlar bu ağa bağlanabilir ve IP Adresi alabilir. Bir sonraki adım ip masquerading sağlamaktır

iptables --table nat --append POSTROUTING --out-interface mySta -j MASQUERADE
iptables --append FORWARD --in-interface myAcc -j ACCEPT

Ancak mySta arayüzü artık internete bağlanamıyor. Essid'i elde edebilir, ancak ip adresini alamaz.

Dhclient mySta komutu herhangi bir mesaj göstermez ve bir süre sonra hata verir:

ls: cannot access /var/run/netconfig//mySta/: No such file or directory

Birisi ip adresi almak için nasıl anlayabilir?


Modül olarak "Dummy net driver support" (Çekirdek sürücüsü) ile denediniz mi? Sana bundan daha fazla yardım edemem çünkü openSUSE bilmiyorum. Ancak Yast ile oluşturulduğunda 11 ve daha sonraki sürümlerde bildirilen hatalar olduğunu görebiliyorum. Yani dikkatli ol.
Diblo Dk

Gentoo, Debian veya Ubuntu ile aynı şekilde yapılabilirse (Çekirdek yapılandırması, ağ kurulumu) elbette size yardımcı olabilirim.
Diblo Dk

Herhangi bir yardım takdir edilecektir. Yast araçlarını bu şekilde kullanmıyorum. Konfigürasyonlar Ubuntu'daki bir öğreticiden alındı. Dosya sistemi ve yapılandırmalar hemen hemen aynı.
adityap174

Çekirdek sürümünüz nedir?
Diblo Dk

Çekirdek: x86_64 Linux 3.7.10-1.16-masaüstü
adityap174

Yanıtlar:


9

Bu sorunla karşılaşan herkes için, sorun mac adresindeydi. Erişim noktası arayüzünü başlattım, bir mac adresi verdim. Sonra hostapd çalıştırdıktan sonra, istasyon arayüzünü ekledi, farklı bir mac adresi verdi ve ağa bağladı ve istasyonun ip adresini dnsmasq aracılığıyla istemcilerin varsayılan ağ geçidi olarak verdi.

Şimdi her şey düzgün çalışıyor.

Diblo Dk'nin işaret ettiği gibi, sanal ve kukla arayüzler kullanabilirsiniz, ancak hostapd onlarla çalışmadı. Neden bilmiyorum.

İşte adımlar:

  1. sanal arabirimlere müdahale ettiği için ağ yöneticisi hizmetini kapat
  2. ifconfig wlan0'ı kullanarak wlan0'ı azaltın
  3. iw komutunu kullanarak erişim noktası arabirimi oluşturun (__ap yazın), farklı bir mac ve ip adresi atayın
  4. bu erişim arayüzünde hostapd'ı aç
  5. bu arabirime, istemcilere bağlanan istemcileri atamak için dnsmasq kullanın ve oluşturulacak istasyon arabiriminin ipi olarak varsayılan ağ geçidini verin
  6. erişim arayüzünde dnsmasq'i açın. Artık istemci erişim noktasına bağlanıp ip adresleri alabilecek.
  7. yeni arayüz oluştur (tip istasyonu) ayrı bir mac adresi atayın ve essid atayarak ve dhclient kullanarak ip adresi elde etmek için ağa bağlayın.
  8. gerekirse iptables komutu ile ip masquerading işlemini gerçekleştirin

Açıkça söylemek gerekirse, WTF hostapd :)
Diblo Dk

Cevabınızı yaptığınız adımlarla güncelleyebilir misiniz? Bu kesinlikle kaydetmek istediğim bir cevap.
Diblo Dk

güncellendi :) daha fazla ayrıntı ister misiniz?
adityap174

Sorunu çözmek için harika bir yol :)
Diblo Dk

Hangi dongle / yonga setini kullanıyordunuz?
Alvin

2

Sahte bir ağ kurma

1 Konsolu açın

su -

2 Sahte bir sürücünüz olup olmadığını görün

modprobe -l | grep /net/dummy.ko

(!) Sahte bir sürücünüz yoksa, " Çekirdek modülü oluştur " a gidin .

3 Yüklü kukla sürücü

modprobe dummy

(!) Başarısız olursa başlatmaya eklemeyin.

4 Kukla0'ı koyarak test edin

ifconfig dummy0 10.246.75.1 netmask 255.255.255.0 broadcast 10.246.75.255 up

ifconfig

Size benzer bir çıktı verecektir.

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 Başlangıç ​​için kukla sürücü ekleyin

Çekirdek sys dosyasını düzenleyin.

nano /etc/sysconfig/kernel

ve MODULES_LOADED_ON_BOOT klasörüne " kukla " ekleyin .

MODULES_LOADED_ON_BOOT = "..."

Ör. MODULES_LOADED_ON_BOOT = "vmcp kukla".

6 dummy0 için ağ ayarlarını yapılandırın

İfcfg-dummy0 dosyası oluşturun.

nano /etc/sysconfig/network/ifcfg-dummy0

İfcfg-dummy0 dosyasına ekleyin:

# 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



Çekirdek modülü oluştur

1 İlk önce gerekli şeyleri kurmak

YaST'ı açın.

Software-> öğesine gidin Software Management.

Tick:

Development 

[X] Base Development
[X] Linux Kernel Development
[X] C/C++ Development

2 Konsola geri dönün ve çekirdek kaynağına gidin

cd /usr/src/linux

3 Geçerli çekirdek yapılandırmasını içe aktarma

zcat /proc/config.gz > .config

4 Çekirdek menü yapılandırmasını açın

make menuconfig

5 Dummy net sürücü desteği ekle

Şuraya git Device Drivers->Network device support

* Network core driver support
    M Dummy net driver support

(!) "Ağ çekirdek sürücüsü desteği" nin yanında yıldız işareti varsa, 7. ve 9. adımları atlayabilirsiniz.

6 Çekirdeği derleyin

make -j(n+1)

Burada (n + 1) = CPU çekirdeği sayısı artı derlemeyi hızlandırmak için kullanılan çekirdek sayısı. Dört çekirdek için make -j5 kullanın.

7 Yeni çekirdeği kurun

make install

8 Modülleri takma

make modules_install

9 Yeni çekirdeği yükleyin

reboot



VIPA tanımlama (Modül ve ifcfg-dummy0'ı yükleme bölümü): http://wiki.linuxvm.org/wiki/Defining_a_VIPA
Statik IP'leri Yapılandırma: https://www.linode.com/wiki/index.php/Configure_Static_IPs
openSUSE 12.3 ve kernel.org'dan Yeni Linux Çekirdek Sürümlerini Kurmak: http://forums.opensuse.org/blogs/jdmcdaniel3/opensuse-instal-new-linux-kernel-versions-134/
OpenSUSE 11.2 - Yeni Çekirdekler için bir çekirdek nasıl derlenir : http://linuxtweaking.blogspot.dk/2010/04/opensuse-112-how-to-compile-kernel-for.html


Böyle ayrıntılı bir açıklama için teşekkürler. Bu yöntemi denedim. Ben dummy0 arayüzü oluşturmak ve önyükleme başlatmak başardı. Ancak kablosuz bir arabirimi nasıl yaparsınız? iwconfig verir: dummy0 kablosuz uzantı yok. hostapd bununla çalışmaz. Hata veriyor: nl80211 sürücü başlatılamadı
adityap174

Evet, sorun bir IP çakışması olması. Ancak Pseudo modülü (Birden çok IP adresi ata) ile yapılabilir. Sistemini aramam için bana biraz zaman ver.
Diblo Dk

Ayrıca buradan bakabilirsiniz linode.com/wiki/index.php/Configure_Static_IPs#OpenSUSE Size :) wlan ile nasıl görebilirsiniz olabilir
Diblo Dk

, sorun şu ki bir IP çakışması elde edeceksiniz *
Diblo Dk

1

Sanal arayüz oluştur

İfcfg-wlan0: 0 dosyası oluşturun

nano /etc/sysconfig/network/ifcfg-wlan0:0

İfcfg-wlan0: 0 dosyasına ekle:

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

Arabirimi etkinleştirme komutları

ifup wlan0:0

Not: Ana arayüzü kapatmak da diğer takma adlarını da kapatır. Takma adlar, diğer arabirimlerden bağımsız olarak kapatılabilir.

Arayüzün çalışıp çalışmadığını kontrol edin

ifconfig

Size benzer bir çıktı verecektir.

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
         ...

http://forums.opensuse.org/english/get-technical-help-here/network-internet/461132-os-11-4-network-manager-default-connection-can-handle-virtual-interfaces.html# post2350426


bu hostapd ile bile çalışmıyordu. Aynı hata verdi: / sys / class / net / dummy0 / phy80211 / name dosyası açılamadı: dummy0 ile böyle bir dosya veya dizin açılamadı ve / sys / class / net / wlan0: 0 / phy80211 / name dosyası açılamadı: Sanal arabirime sahip böyle bir dosya veya dizin yok. Yardımların için teşekkür ederim. :) Sorun mac adresi ile oldu. Yanıtlarınızı iptal ettim ve çözümü başkaları için gönderiyorum.
adityap174
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.