当前位置: 首页>>技术教程>>正文


在Ubuntu上将Wifi桥接到以太网无法正常工作

, , , ,

问题描述

当运行Windows时,我能够通过笔记本电脑的以太网连接桥接我的wifi连接,因此只有一系列以太网设备才能支持我的wifi(Raspberry Pi,Xbox等)。我现在正在尝试在Ubuntu中做同样的事情,即设置是:

无线路由器—>笔记本电脑上的Wifi —>桥接到以太网—>需要将Internet连接到以太网端口的设备

现在我一直在尝试使用brctl在Ubuntu中工作

我使用以下命令:

sudo brctl addif br0 eth0 wlan0

并得到以下错误:

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

我希望有人能提供帮助,因为我拒绝相信我可以在Windows中轻松完成的工作无法在Linux中完成。

如果您需要更多信息,请告诉我。谢谢

最佳答案

无法做到这一点。您无法桥接WiFi客户端连接。如果可以的话,我们将不需要WDS,只需桥接即可。

问题非常简单-WiFi规范禁止访问点通过WiFi网络广播流量,除非获得授权进行该传输。这是WiFi网络非常缓慢且安全性差(如果有的话)时代的遗物。

桥接器仅具有到接入点的客户端连接。这仅授权接入点传输绑定到网桥的流量。由于连接到网桥的任何计算机都不是访问点的客户端,因此访问点没有理由通过WiFi链接发送绑定到它们的流量。因此它不会这样做。

不幸的是,WiFi就像以太网一样足够,很容易期望它像以太网一样起作用。但这足以咬你。

WDS配置是访问点的特定授权,可以发送不受其任何客户端约束的流量。当两端都支持WDS时,它们将包括桥接端点的地址以及目的地的地址,从而授权访问点发送流量。

您必须使用桥接以外的方法来执行此操作。例如,使用NAT进行路由。如果WiFi链接的两端都支持,则也可以使用四个地址模式。

次佳答案

LXC也有类似的问题,我解决了wifi设备中的桥接问题。首先,您在计算机中需要一个备用的以太网设备。诀窍是创建从以太网设备到wifi的路由。

在服务器文件中,更改/etc /network /interfaces,为虚拟主机选择一个未使用的网络,即10.0.0.0。为您的备用以太网接口分配一个IP,这里是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

完成后,您可以按照Kostyantyn之前在此处回答的MASQUERADE方式进行操作。这些应该位于rc.local或必须在boot-up上运行的脚本中,或者在启动虚拟域之前:

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

在虚拟服务器中,在/etc /network /interfaces中配置静态IP。我正在使用网络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

在/etc/resolv.conf中还配置一个DNS服务器,我的是网络路由器:

nameserver 192.168.1.1

希望这可以帮助

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10076.html,未经允许,请勿转载。