Podczas pracy w systemie Windows byłem w stanie zmostkować połączenie Wi-Fi za pośrednictwem połączenia Ethernet mojego laptopa, dzięki czemu tylko urządzenia Ethernet mogą odłączyć się od mojego Wi-Fi (Raspberry Pi, Xbox itp.). Próbuję teraz zrobić to samo w Ubuntu, tzn. Konfiguracja będzie następująca:
Router bezprzewodowy ---> Wi-Fi na laptopie ---> most do Ethernetu ---> Urządzenie, które wymaga internetu podłączonego do portu Ethernet
Teraz staram się, aby działało to w Ubuntu przy użyciu brctl
Użyłem poniższego polecenia:
sudo brctl addif br0 eth0 wlan0
I otrzymaj następujący błąd:
can't add wlan0 to bridge br0: Operation not supported
Mam nadzieję, że ktoś może pomóc, ponieważ nie wierzę, że coś, co mogę zrobić w systemie Windows, jest bardzo łatwe w Linuksie.
Jeśli potrzebujesz więcej informacji, daj mi znać. Dzięki
ubuntu
networking
wireless-networking
ethernet
bridge
Zac Powell
źródło
źródło
Odpowiedzi:
Tego nie da się zrobić. Nie można zmostkować połączenia klienta Wi-Fi. Gdybyś mógł, nie potrzebowalibyśmy WDS, po prostu pomostilibyśmy.
Problem jest bardzo prosty - punkt dostępu jest zabroniony przez specyfikację WiFi nadawania ruchu przez sieć WiFi, chyba że coś autoryzuje tę transmisję. Jest to w dużej mierze relikt z czasów, gdy sieci Wi-Fi działały bardzo wolno i miały słabe zabezpieczenia, jeśli w ogóle.
Most ma tylko połączenie klienta z punktem dostępu. Upoważnia to tylko punkt dostępu do przesyłania ruchu związanego z mostem. Ponieważ wszystkie maszyny podłączone do mostu nie są klientami punktu dostępu, punkt dostępu nie ma powodu, aby wysyłać dla nich ruch związany przez łącze WiFi. Więc tak się nie stanie.
Niestety Wi-Fi wystarcza jak Ethernet, więc łatwo oczekiwać, że będzie działało jak Ethernet. Ale jest wystarczająco inny, aby cię ugryźć.
Konfiguracja WDS to specyficzna autoryzacja dla punktu dostępu do wysyłania ruchu niezwiązanego z żadnym z jego klientów. Gdy oba końce obsługują WDS, zawierają adres mostkowego punktu końcowego oraz adres miejsca docelowego, upoważniając punkt dostępu do wysłania ruchu.
Aby to zrobić, musisz użyć czegoś innego niż mostkowanie. Na przykład routing z NAT. Możesz także użyć trybu czterech adresów, jeśli oba końce łącza Wi-Fi go obsługują.
źródło
Miałem podobny problem z LXC, pracowałem nad problemem mostkowania w urządzeniach Wi-Fi. Najpierw potrzebujesz zapasowego urządzenia Ethernet w komputerze. Sztuką jest stworzenie trasy z urządzenia Ethernet do Wi-Fi.
W pliku serwera zmień / etc / network / interfaces, wybierz nieużywaną sieć dla swoich wirtualnych hostów, tj. 10.0.0.0. Przypisz jeden adres IP do zapasowego interfejsu Ethernet, tutaj jest eth0, łącząc go w następujący sposób:
Po zakończeniu możesz przejść MASQUERADE w sposób, w jaki Kostyantyn odpowiedział tu wcześniej. Powinny one znajdować się w pliku rc.local lub w skrypcie, który należy uruchomić podczas rozruchu lub przed uruchomieniem domen wirtualnych:
Na serwerze wirtualnym skonfiguruj statyczne adresy IP w / etc / network / interfaces. Używam sieci 10.0.0.0, zacznę używać od .2, kiedy utworzysz więcej wirtualnych hostów, prawdopodobnie będziesz używać 3, i tak dalej. Jeśli masz wiele, możesz rozważyć zainstalowanie dla nich serwera dhcp. .1 to brama skonfigurowana wcześniej.
Skonfiguruj także serwer DNS, mój był routerem sieciowym, w /etc/resolv.conf:
Mam nadzieję że to pomoże
źródło
Myślę, że tak naprawdę nie potrzebujesz pomostu, ale:
lub
1) utwórz
forwarding_enable_file.sh
z następującą zawartością:2) Uruchom plik:
3) na pozostałej części hosta określ bramę Ubuntu jako bramę UWAGA: jeśli niektóre z tych skrzynek również działają pod Linuksem, możesz to zrobić za pomocą tego polecenia:
gdzie ubuntu-ip należy zastąpić adresem IP ubuntu-box, tj. 192.168.1.10
4) spróbuj pingować część adresu IP, tj. 8.8.8.8 z innych hostów:
5) sprawdź ustawienia DNS, wysyłając polecenie ping do pewnej domeny, tj .:
6) jeśli krok 4) działa, a 5) nie, to masz problemy z ustawieniami DNS. w takim przypadku uruchom z uprawnieniami roota:
Uruchom ponownie krok 5).
Więcej informacji na temat resolv.conf można znaleźć tutaj .
źródło
Musisz obniżyć interfejsy przed ich połączeniem.
ifconfig eth0 w dół
ifconfig wlan0 w dół
źródło
service network-manager stop
, a następnie zrób swoje, zacznij od nowaservice network-manager start
źródło