Ubuntu'da Wifi'yi Ethernet'e bağlamak çalışmıyor


22

Windows çalıştırırken benim wifi bağlamak benim dizüstü Ethernet bağlantısı üzerinden köprü başardı böylece ethernet sadece cihazlar bir dizi benim wifi (Ahududu Pi, Xbox vb vb) geri piggy olabilir. Şimdi aynı Ubuntu içinde yapmaya çalışıyorum, yani kurmak olurdu:

Kablosuz Yönlendirici ---> dizüstü bilgisayarda Wifi --- Ethernet'e köprü ---> Ethernet bağlantı noktasına internete ihtiyaç duyan cihaz

Şimdi brctl kullanarak Ubuntu bu çalışma almaya çalışıyorum

Aşağıdaki komutu kullandım:

sudo brctl addif br0 eth0 wlan0

Ve aşağıdaki hatayı alın:

can't add wlan0 to bridge br0: Operation not supported

Windows'da yapabileceğim bir şeyin çok kolay Linux'ta yapılamayacağına inanmayı reddettiğimden birinin yardımcı olabileceğini umuyorum.

Daha fazla bilgiye ihtiyacınız varsa bana bildirin. Teşekkürler


Çok benzer Sorun ele alındı ​​[ askubuntu.com/questions/155041/…
Legionair

Yanıtlar:


10

Bu yapılamaz. Bir WiFi istemci bağlantısını köprüleyemezsiniz. Yapabilseydin, WDS'ye ihtiyacımız olmazdı, sadece köprü olurduk.

Sorun çok basit - bir erişim noktası, WiFi özelliği tarafından bir şey bu iletime izin vermedikçe WiFi ağı üzerinden trafik yayınlaması için yasaklanmıştır. Bu, WiFi ağlarının çok yavaş olduğu ve eğer varsa, güvenliği zayıf olduğu günlerden büyük ölçüde bir kalıntıdır.

Köprünün yalnızca erişim noktasına bir istemci bağlantısı vardır. Bu, yalnızca erişim noktasına köprü için bağlı trafiği iletme yetkisi verir. Köprüye bağlı herhangi bir makine erişim noktasının istemcisi olmadığından, erişim noktasının WiFi bağlantısı üzerinden kendileri için trafik göndermesi için bir neden yoktur. Yani böyle olmayacak.

Ne yazık ki, WiFi Ethernet gibi yeterlidir, Ethernet gibi davranmasını beklemek kolaydır. Ama seni ısırmaya yetecek kadar farklı.

WDS yapılandırması, bir erişim noktasının istemcilerinin hiçbirine bağlı olmayan trafik göndermesine yönelik özel bir yetkilendirmedir. Her iki uç da WDS'yi desteklediğinde, köprüleme uç noktasının adresini ve hedefin adresini içerir ve erişim noktasını trafiği göndermeye yetkilendirir.

Bunu yapmak için köprüleme dışında bir şey kullanmalısınız. Örneğin NAT ile yönlendirme. WiFi bağlantısının her iki ucu da destekliyorsa, dört adres modunu da kullanabilirsiniz.


3
Mac adreslerini ebtables
ccarton

Buradaki bir kişinin ubuntu'da yapabileceğinizi söylediğini fark ettim ... ve ben de pencerelerde böyle bir şey yaptım .. imkansız olduğunu söylüyorsanız, belki de bu ve bu arasındaki farkın ne olduğunu açıklayabilirsiniz. Windows'ta u yaptığınız zaman youtube.com/watch?v=96Z1_6rX5qU WiFi internete bağlı. Ethernet konektöründe kablo yok ... veya Ethernet konektöründe başka bir comp kablosu yok. Daha sonra WiFi bağdaştırıcısını ve Ethernet bağdaştırıcısını seçerek, köprüler, n sonra başka bir bilgisayar kablosunu takabilir ve Internet bağlantısını kullanabilir Dizüstü bilgisayar hala sanırım (erişim noktası değil) bir WiFi istemcisi
Nisan'da barlop

1
@DavidSchwartz Bir kişinin internet erişimi için çalışan kablosuz ve ağ anahtarı olmayan bir dizüstü bilgisayarı varsa, ancak başka bir dizüstü bilgisayarın kablosuz internet erişimi vardır ve yedek kablosuz usb çubuğu yoktur. Sonra tek çözüm köprü taklitidir. Her iki dizüstü bilgisayar da çalışan bir kablosuz ağ bağdaştırıcısına sahipse, her ikisi de sadece ana kablosuz erişim noktasına bağlanabilir, ekstra erişim noktalarına ve WDS'ye gerek yoktur .. Bir dizüstü bilgisayar kablosuz yapamadığı zaman köprü taklitini kullandım.
barlop

1
Yanlış. Yeni başlayanlar için WDS, diğerlerinden farklı olarak bir WiFi bağlantısıdır. İkincisi, bir AP aracılığıyla bağlanan ve hub, vb. Olabilen 3-5 Kablolu jakları şeffaf olarak köprüleyen istemci köprüleri veya medya köprüleri olarak adlandırılan bu tatlı pasta cihazları var. Emin olmak için, bunların nasıl çalıştığı ve kaç MAC için köprü kurabilirler, ama sonunda ... bir yol var. Cehennem, hatta 4addr'ı iw komutu ile aygıtta bir mod olarak ayarlarsanız ve sürücü bunu yapmanıza izin verirse, Linux bile WDS modunu STA olarak kullanmanıza izin verir. Köprü kurabilirsin ... sadece ... şartlar var.
Svartalf

1
@DavidSchwartz: Yönlendirme? Ciddi anlamda? İşte bir ipucu. Uygulama ağda 500+ düğüme sahip olabilir. Yönlendirmenin incelikle bu şekilde çalışmasını sağlayabilir misiniz? "Gerçek WDS"? Cisco, Aruba, Ubiquiti ve diğerleriyle çalışacağından emin olabilir miyim? Eğer öyleyse, evet ... değilse ... öncül kutunun dışında bir problemdir. WDS-Station moduyla çalıştığım delilikle oldukça güzel çalıştım ... ama bir hostapd veya benzer bir türetilmiş Linux cihazından başka bir şeyle çalışacak mı?
Svartalf

3

LXC ile benzer bir sorun vardı, wifi cihazlarda köprüleme sorunu etrafında çalıştı. Öncelikle bilgisayarda yedek bir ethernet cihazına ihtiyacınız var. İşin püf noktası, ethernet cihazından wifi'ye bir rota oluşturmaktır.

Sunucu dosyasında, / etc / network / interfaces öğesini değiştirin, sanal ana bilgisayarlarınız için kullanılmayan bir ağ seçin, yani 10.0.0.0. Yedek ethernet arabiriminize bir IP atayın, işte eth0, bu şekilde köprülüyor:

auto br0
iface br0 inet static
    address 10.0.0.1
    netmask 255.255.255.0
    bridge_ports eth0
    bridge_fd 0
    bridge_maxwait 0

Bir kez bittiğinde, daha önce Kostyantyn tarafından cevaplandığı gibi MASQUERADE yoluna gidebilirsiniz. Bunlar rc.local veya önyükleme sırasında veya sanal etki alanlarına başlamadan önce çalıştırmanız gereken bir komut dosyasında olmalıdır:

# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# echo "1" > /proc/sys/net/ipv4/ip_forward

Sanal sunucuda / etc / network / arabirimindeki statik IP'leri yapılandırın. 10.0.0.0 ağını kullanıyorum, .2'den kullanmaya başlayacağım, muhtemelen daha fazla sanal ana bilgisayar oluşturduğunuzda 3 kullanacaksınız vb. Çok sayıda varsa, onlar için bir dhcp sunucusu yüklemeyi düşünebilirsiniz. .1, daha önce yapılandırıldığı gibi ağ geçididir.

auto eth0
iface eth0 inet static
    address 10.0.0.2
    netmask 255.255.255.0
    broadcast 10.0.0.255
    gateway 10.0.0.1

Ayrıca bir DNS sunucusu da yapılandırın, benimki ağ yönlendiricisiydi, /etc/resolv.conf içinde:

nameserver 192.168.1.1

Bu yardımcı olur umarım


Bu katman 3 hile ve gerçekten "köprü" değil - iptables kullandığınız anda, yönlendiriyorsunuz.
Svartalf

0

Gerçekten ihtiyacınız olan bir köprü değil ya da:

veya

  • MASQUERADE (WLAN'ın dinamik IP'si varsa - yani IP değişir)

1) forwarding_enable_file.shaşağıdaki içerikle oluşturun:

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

2) Dosyayı çalıştırın:

sudo ./forwarding_enable_file.sh

3) ana bilgisayarın geri kalanında Ubuntu kutunuzu ağ geçidi olarak belirtin NOT: kutulardan bazıları Linux çalıştırıyorsa bu komutla yapabilirsiniz:

sudo ip route add default via ubuntu-ip

burada ubuntu-ip , ubuntu kutusu IP adresinizle değiştirilmelidir, yani 192.168.1.10

4) bazı IP'lere ping işlemi yapmayı deneyin, yani diğer ana bilgisayarlardan 8.8.8.8:

ping 8.8.8.8

5) bazı alanlara ping yaparak DNS ayarlarınızı kontrol edin, yani:

ping slivkoed.ru

6) adım 4) çalışıyorsa ve 5) çalışmıyorsa, DNS ayarlarınızla ilgili sorunlarınız var demektir. bu durumda root ayrıcalıklarıyla çalıştırın:

# echo "nameserver 8.8.8.8" > /etc/resolv.conf

Adım 5) 'i tekrar çalıştırın.

Resolv.conf hakkında daha fazla bilgiyi burada bulabilirsiniz .


İhtiyacınız olan şeye bağlıdır. Eğer saydamlığa ihtiyacınız varsa (el dalgaları) hayır, bunu istemezsiniz. Ciddi anlamda. Trendnet'in emekli TEW640-MB medya köprüsü (4 Ethernet bağlantı noktasına bağlı STA modu oturumu) gibi şeylerin kanıtladığı davranışa ihtiyacınız var. Bu sadece WDS (4addr) modu işlemi veya her ikisi de kendi ağrıları ve problemleri olan ebtables MAC masquerading (yayınladığınızla karıştırılmamalıdır) ile olacaktır.
Svartalf

-1

Köprülemeden önce arayüzleri indirmeniz gerekir.

ifconfig eth0 aşağı

ifconfig wlan0 aşağı


1
Yine de her iki arabirimde de aynı hatayı alıyorum
Zac Powell

@Zac Powell, Network Manager kullanıyor musunuz? Müdahale edebileceği bazı geçmiş deneyimlerim vardı. Bu durumda hizmeti durdurmayı ve daha sonra tekrar geri getirmeyi deneyebilirsiniz
Legionair

Evet, tamam, bu yüzden ikisini de aşağı indirmeyi ve ağ yöneticisini durdurmayı ve sonra birdge'yi yapmayı ve sonra her şeyi geri getirmeyi denemeliyim?
Zac Powell

evet, ile service network-manager stop, o zaman bir şey yap, tekrar başlamakservice network-manager start
Legionair

hala çalışmıyor: / her şey kapatıldı ama yine de aynı hatayı alıyor
Zac Powell

-4
sudo iw dev wlan1 set 4addr on

Bunun OP'nin problemini nasıl çözdüğünü açıklamak ister misiniz?
Braiam

@Braiam Cevabım, AP tarafından destekleniyorsa bunun neden işe yarayacağını hemen hemen açıklıyor.
David Schwartz

Ne yazık ki, birçok AP ile çalışmaz. Çoğu AP ile doğru çalışırsa sorununu nasıl çözebilirse, doğrulanmış MAC'dan daha fazlasını karelere aktarmak için her 802.11 çerçevesinde verilen sayıya ek bir MAC ekleyerek AP yeteneği kazandırmasıdır.
Svartalf

Başka bir cevaptan: serverfault.com/a/554663/280693
jhutar
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.