З'єднання Wi-Fi до Ethernet на Ubuntu не працює


22

Під час роботи з Windows я зміг підключити свій Wi-Fi підключення через моє підключення Ethernet до ноутбуків, так що цілий ряд пристроїв, що працюють лише в Ethernet, змогли повернути з мого Wi-Fi (Raspberry Pi, Xbox і т. Д.). Зараз я намагаюся зробити те саме в Ubuntu, тобто налаштування було б:

Бездротовий маршрутизатор ---> Wifi на ноутбуці ---> міст до Ethernet ---> Пристрій, якому потрібен Інтернет, підключений до порту Ethernet

Зараз я намагаюся змусити це працювати в Ubuntu за допомогою brctl

Я використав команду нижче:

sudo brctl addif br0 eth0 wlan0

І отримайте таку помилку:

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

Я сподіваюся, що хтось може допомогти, оскільки я відмовляюся вірити в те, що я можу зробити у Windows, дуже легко не може бути зроблено в Linux.

Якщо вам потрібна додаткова інформація, повідомте мене. Спасибі


Дуже схожа проблема вирішується в [ askubuntu.com/questions/155041/…
Legionair

Відповіді:


10

Це неможливо зробити. Ви не можете з'єднати з'єднання з клієнтом WiFi. Якби ти міг, нам не знадобиться WDS, ми просто б'ємо.

Проблема дуже проста - точці доступу заборонено специфікацією WiFi транслювати трафік по мережі WiFi, якщо щось не дозволяє авторизації цієї передачі. Це багато в чому пережиток часів, коли мережі WiFi були дуже повільними і мали слабку, якщо така є, безпеку.

Міст має лише клієнтське підключення до точки доступу. Це дозволяє лише точці доступу для передачі руху, пов'язаного з мостом. Оскільки будь-які машини, підключені до мосту, не є клієнтами точки доступу, точка доступу не має підстав відправляти пов'язаний для них трафік по лінії WiFi. Так це не зробить.

На жаль, WiFi достатньо, як Ethernet, що легко очікувати, що він буде діяти як Ethernet. Але це просто інше, щоб вас вкусити.

Конфігурація WDS - це специфічна авторизація точки доступу для надсилання трафіку, не пов'язаного з жодним із його клієнтів. Коли обидва кінці підтримують WDS, вони включають адресу кінцевої точки, що з'єднується, а також адресу пункту призначення, що дозволяє точці доступу відправляти трафік.

Для цього вам потрібно використовувати щось інше, ніж мости. Наприклад, маршрутизація з NAT. Ви також можете використовувати чотири режими адреси, якщо його підтримують обидва кінці WiFi-ланки.


3
Вирішити цю проблему можна, переписавши mac адреси за допомогою ebtables
ccarton

Я зауважую, що одна людина тут каже, що ви можете в ubuntu..і я теж щось подібне зробив у Windows .. хоча ви кажете, що це неможливо, можливо, ви можете пояснити, в чому різниця між цим і цим. У Windows, коли ви робите це youtube.com/watch?v=96Z1_6rX5qU WiFi, підключений до Інтернету. Немає кабелю в роз'ємі Ethernet .. або кабелю іншого комп’ютера в роз'ємі Ethernet. Потім вибираючи адаптер WiFi та адаптер Ethernet, він з'єднує їх, тоді інший комп'ютер може підключити свій кабель і використовувати підключення до Інтернету. Я думаю, що ноутбук все ще є клієнтом WiFi (а не точкою доступу)
барлоп

1
@DavidSchwartz Якщо у людини є ноутбук без робочого бездротового зв'язку та без мережевого комутатора, щоб підключити його для доступу до Інтернету, але інший ноутбук має бездротовий доступ до Інтернету, і немає запасного бездротового USB-накопичувача. Тоді, здається, єдиним рішенням є мостові фальшивки. Якщо обидва ноутбуки мали працюючий адаптер бездротової мережі, вони могли б просто підключитися до основної точки бездротового доступу, не потрібні додаткові точки доступу та WDS. Я використовував мостовий факери, коли один ноутбук не міг зробити бездротовий зв'язок.
барлоп

1
Неправильно. Для початку WDS - це з'єднання Wi-Fi, не на відміну від інших. По-друге, існують ці пристрої для створення пиріжків, які називаються клієнтськими мостами або медіа-мостами, які з'єднуються через AP і прозоро з'єднують 3-5 дротових гнізда, які можуть бути концентраторами тощо. скільки MAC вони можуть переадресувати, але врешті-решт ... є спосіб. Чорт, навіть Linux дозволить вам використовувати режим WDS як STA, якщо ви встановите 4addr як режим на пристрої за допомогою команди iw і драйвер дозволяє це зробити. Ви можете з’єднати міст ... це просто ... застереження.
Швартальф

1
@DavidSchwartz: Маршрутизація? Серйозно? Ось підказка. У додатку може бути 500+ вузлів у мережі. Чи можете ви змусити маршрутизацію витончено працювати саме так? "Справжня WDS"? Чи можна бути впевненим, що це буде працювати з Cisco, Aruba, Ubiquiti та іншими? Якщо так, то так ... якщо ні ... це передумова - проблема нестандартна. У мене це досить добре працює з божевіллям, яке я намагаюся використовувати в режимі WDS-Station ... але чи буде це працювати з чимось іншим, ніж hostapd або подібним похідним пристроєм Linux?
Свартальф

3

У мене була подібна проблема з LXC, я працював над вирішенням проблеми, пов’язаної з мостом у wifi-пристроях. Спочатку вам потрібен запасний ефірний пристрій у комп’ютері. Хитрість полягає у створенні маршруту від пристрою Ethernet до wifi.

У файлі сервера змініть / etc / network / інтерфейси, виберіть невикористану мережу для своїх віртуальних хостів, тобто 10.0.0.0. Призначте один IP для вашого запасного інтерфейсу Ethernet, ось він eth0, з'єднавши його так:

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

Після того, як це буде зроблено, ви можете піти по маскардному шляху, як відповів Костянтин тут раніше. Вони повинні бути в rc.local або в сценарії, який потрібно запустити під час завантаження або перед запуском віртуальних доменів:

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

На віртуальному сервері конфігуруйте статичні IP-адреси в / etc / network / інтерфейсах. Я використовую мережу 10.0.0.0, я почну використовувати з .2, коли ви створите більше віртуальних хостів, ви, ймовірно, будете використовувати 3 тощо. Якщо у вас їх багато, ви можете розглянути можливість встановлення dhcp-сервера для них. .1 - це шлюз, як було налаштовано раніше.

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

Налаштуйте також DNS-сервер, моїм був мережевий маршрутизатор у /etc/resolv.conf:

nameserver 192.168.1.1

Сподіваюся, це допомагає


Це хитрість шару 3 і насправді не є "мостом" - у момент, коли ви використовуєте iptables, ви здійснюєте маршрутизацію.
Свартальф

0

Я думаю, що вам справді потрібно не міст, а будь-який:

або

  • MASQUERADE (якщо WLAN має динамічний IP - тобто зміни IP)

1) створюйте forwarding_enable_file.shіз наступним вмістом:

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

2) Запустіть файл:

sudo ./forwarding_enable_file.sh

3) на решті вузла вкажіть ваш Ubuntu вікно як шлюз ПРИМІТКА: якщо в деяких ящиках також працює Linux, ви можете зробити це за допомогою цієї команди:

sudo ip route add default via ubuntu-ip

де ubuntu-ip слід замінити на вашу IP-адресу ubuntu-box, тобто 192.168.1.10

4) спробуйте pinging деякий IP, тобто 8.8.8.8 від інших хостів:

ping 8.8.8.8

5) перевірте свої настройки DNS, ввівши певний домен, тобто:

ping slivkoed.ru

6) якщо крок 4) працює і 5) не працює, тоді у вас є проблеми з налаштуваннями DNS. у такому випадку запускайте з правами root:

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

Виконайте крок 5) ще раз.

Більш детальну інформацію про resoluv.conf можна знайти тут .


Залежить від того, що вам потрібно. Якщо вам потрібна прозора (махає рукою), ні, ви цього не хочете. Серйозно. Вам потрібна поведінка, про що свідчать такі речі, як відставний медіа-міст TEW640-MB Trendnet (сеанс режиму STA приєднаний до 4 портів Ethernet.). Це, ймовірно, було б лише в режимі WDS (4addr) або з MAC-маскуваннями ebtables (яке не слід плутати з тим, що ви опублікували) - обидва з них мають свої болі та проблеми.
Швартальф

-1

Потрібно збити інтерфейси, перш ніж з'єднувати їх.

ifconfig eth0 вниз

ifconfig wlan0 вниз


1
Все-таки отримайте однакову помилку з обома інтерфейсами вниз
Зак Пауелл

@Zac Powell Ви використовуєте Network Manager? У мене був досвід минулого, який може заважати. У такому випадку ви можете спробувати зупинити послугу та повернути її знову після цього
Легіонер

Так, добре, значить, я повинен спробувати привести їх і вниз, і зупинити мережевий менеджер, потім робити птахи, а потім повернути все назад?
Зак Пауелл

так, з service network-manager stop, тоді зробіть свою справу, почніть це знову зservice network-manager start
Легіонер

все ще не працює: / все вимкнено, але все-таки отримуємо ту саму помилку
Зак Пауелл

-4
sudo iw dev wlan1 set 4addr on

Хочете пояснити, як це вирішує проблему ОП?
Брайам

@Braiam Моя відповідь в значній мірі пояснює, чому це буде спрацьовувати, якщо його підтримує AP.
Девід Шварц

На жаль, він не працює з багатьма AP. Щодо того, як це МОЖЕ вирішити свою проблему, якщо вона працювала правильно з більшістю AP, це те, що вона дає можливість AP шляхом додавання додаткового MAC до числа, заданого у кожному кадрі 802.11, для ретрансляції кадрів для більш ніж просто аутентифікованого MAC.
Svartalf

З іншої відповіді: serverfault.com/a/554663/280693
jhutar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.