Ligando Wifi a Ethernet no Ubuntu não funciona

19

Ao rodar o Windows, eu consegui conectar meu wifi através da conexão Ethernet de laptops, de modo que uma variedade de dispositivos ethernet só poderia aproveitar meu wifi (Raspberry Pi, Xbox etc etc). Agora estou tentando fazer o mesmo no Ubuntu, ou seja, a configuração seria:

Roteador sem fio --- > Wifi no laptop --- > ponte para Ethernet --- > Dispositivo que precisa de internet conectado à porta Ethernet

Agora eu tenho tentado fazer isso funcionar no Ubuntu usando o brctl

Eu usei o comando abaixo:

sudo brctl addif br0 eth0 wlan0

E receba o seguinte erro:

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

Espero que alguém possa ajudar, já que me recuso a acreditar que algo que eu possa fazer no Windows facilmente não pode ser feito no Linux.

Se precisar de mais informações, avise-me. Obrigado

    
por Zac Powell 20.05.2013 / 22:07

5 respostas

8

Isso não pode ser feito. Você não pode vincular uma conexão de cliente WiFi. Se você pudesse, nós não precisaríamos de WDS, nós apenas passaríamos.

O problema é muito simples - um ponto de acesso é proibido pela especificação WiFi da transmissão de tráfego pela rede WiFi, a menos que algo autorize essa transmissão. Isso é em grande parte uma relíquia dos dias em que as redes WiFi eram muito lentas e tinham pouca ou nenhuma segurança.

A bridge só tem uma conexão do cliente com o ponto de acesso. Isso só autoriza o ponto de acesso a transmitir tráfego para a ponte. Como as máquinas conectadas à ponte não são clientes do ponto de acesso, o ponto de acesso não tem motivo para enviar tráfego para elas por meio do link WiFi. Então, isso não acontecerá.

Infelizmente, o Wi-Fi é suficiente como a Ethernet, e é fácil esperar que ele aja como uma Ethernet. Mas é diferente o suficiente para te morder.

A configuração do WDS é uma autorização específica para um ponto de acesso para enviar tráfego não vinculado a nenhum de seus clientes. Quando ambas as extremidades suportam o WDS, elas incluem o endereço do ponto de extremidade de ponte e o endereço do destino, autorizando o ponto de acesso a enviar o tráfego.

Você precisa usar algo diferente de ponte para fazer isso. Roteamento com NAT, por exemplo. Você também pode usar o modo de quatro endereços, se ambas as extremidades do link WiFi o suportarem.

    
por 13.10.2013 / 05:43
3

Eu tive um problema semelhante com o LXC, trabalhei em torno do problema de ligação em dispositivos Wi-Fi. Primeiro você precisa de um dispositivo Ethernet de reserva no computador. O truque é criar uma rota do dispositivo ethernet para o wifi.

No arquivo do servidor, altere / etc / network / interfaces, escolha uma rede não usada para seus hosts virtuais, isto é, 10.0.0.0. Atribuir um IP à sua interface ethernet sobressalente, aqui está a eth0, colmatando assim:

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

Uma vez feito isso, você pode seguir o caminho da MASQUERADE como foi respondido por Kostyantyn aqui antes. Esses devem estar em rc.local ou em um script que você deve executar na inicialização ou antes de iniciar os domínios virtuais:

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

No servidor virtual, configure os IPs estáticos em / etc / network / interfaces. Eu estou usando a rede 10.0.0.0, vou começar a usar a partir de 0,2, quando você cria mais hosts virtuais, você provavelmente usará 3 e assim por diante. Se você tiver muitos, pode considerar instalar um servidor dhcp para eles. O .1 é o gateway, conforme configurado anteriormente.

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

Configure também um servidor DNS, o meu era o roteador da rede, em /etc/resolv.conf:

nameserver 192.168.1.1

Espero que isso ajude

    
por 19.11.2014 / 12:33
0

Acho que o que você realmente precisa não é uma ponte, mas também:

ou

  • MASQUERADE (se a WLAN tiver IP dinâmico - ou seja, alterações de IP)

1) crie forwarding_enable_file.sh com o seguinte conteúdo:

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

2) Execute o arquivo:

sudo ./forwarding_enable_file.sh

3) no resto do host, especifique sua caixa do Ubuntu como um gateway NOTA: se algumas das caixas também estiverem executando o Linux, você pode fazê-lo com este comando:

sudo ip route add default via ubuntu-ip

onde ubuntu-ip deve ser substituído pelo seu endereço IP do ubuntu-box, ou seja, 192.168.1.10

4) tente pingar algum IP, ou seja, 8.8.8.8 de outros hosts:

ping 8.8.8.8

5) verifique suas configurações de DNS fazendo ping em algum domínio, por exemplo:

ping slivkoed.ru

6) se o passo 4) funciona e 5) não, do que você tem problemas com suas configurações de DNS. Nesse caso, execute com privilégios de root:

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

Execute o passo 5) novamente.

Mais informações sobre o resolv.conf podem ser encontradas aqui .

    
por 10.01.2014 / 20:49
-1

Você precisa derrubar as interfaces antes de conectá-las.

ifconfig eth0 down

ifconfig wlan0 inoperante

    
por 20.05.2013 / 22:27
-4
sudo iw dev wlan1 set 4addr on
    
por 13.10.2013 / 03:42