无法使用与两个以太网适配器 (bridge-utils) 桥接的 DHCP (dnsmasq) 从 WiFi 接入点 (hostapd) 获取 IP 地址

无法使用与两个以太网适配器 (bridge-utils) 桥接的 DHCP (dnsmasq) 从 WiFi 接入点 (hostapd) 获取 IP 地址

我的 Android 手机尝试通过 WiFi 连接获取 DHCP 地址,但失败。

显然,我可能搞砸了我的设置,因为我找不到一个完整的指南,可以让我一次完成所有事情,因此我不得不结合多个指南,但我仍然对 Linux 上的网络配置感到有点陌生。

我想要实现的目标:

- 创建一个 WiFi 接入点和 DHCP 服务器,所有设备都在同一网络中接收 IP 地址。不需要互联网接入,因此不需要路由 - 只是一个本地网络,我的服务器充当交换机(桥),为通过 WiFi 或以太网连接到它的所有设备提供 IP 地址。

这是我所拥有的:

  • 一台Linux机器(实际上是带有Raspbian的Raspberry Pi),带有Ralink RT5370 WiFi dongle(声称支持Access Point)和两个以太网端口 - 一个是RPi的内置端口,另一个是Trendnet TU2-ET100(芯片AX88772)

  • 我已经安装了bridge-utils和dnsmasq,并且以太网连接一切正常 - 连接到RPi以太网端口的所有设备都通过dnsmasq从RPi接收IP地址

  • 对于初学者来说,我已经安装了 hostapd 并将其配置为开放 AP。我尝试使用 WPA,但在我的 Android 手机上也因“身份验证失败”而失败,因此我禁用了身份验证。现在我的 Android 设备在获取 IP 地址时卡住了,然后失败了。

这是我的配置文件:

/etc/default/hostapd:

interface=wlan0
hw_mode=g
bridge=br0
channel=1
ssid=FakeTestServer_AP
auth_algs=1
wmm_enabled=0

/etc/default/hostapd:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

/etc/网络/接口:

auto lo

iface lo inet loopback

auto br0
iface eth0 inet manual
iface eth1 inet manual

iface br0 inet static
        bridge_ports eth0 eth1 wlan0
        bridge_stp off
        bridge_fd 0
        bridge_waitport 0
        bridge_maxwait 0
        address 10.0.0.1
        netmask 255.255.255.0

/etc/dnsmasq.conf:

interface=br0
dhcp-range=10.0.0.2,10.0.0.254,255.255.255.0,12h

这是ifconfig显示的内容:

br0       Link encap:Ethernet  HWaddr 00:14:d1:da:c7:dc
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::214:d1ff:feda:c7dc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1343 errors:0 dropped:0 overruns:0 frame:0
          TX packets:212 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:83674 (81.7 KiB)  TX bytes:16750 (16.3 KiB)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:74:1f:8c
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:5824 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2800 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1448587 (1.3 MiB)  TX bytes:1057796 (1.0 MiB)

eth1      Link encap:Ethernet  HWaddr 00:14:d1:da:c7:dc
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1145578 (1.0 MiB)  TX bytes:414153 (404.4 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:52 errors:0 dropped:0 overruns:0 frame:0
          TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3744 (3.6 KiB)  TX bytes:3744 (3.6 KiB)

mon.wlan0 Link encap:UNSPEC  HWaddr 00-C1-40-95-0D-43-00-00-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7417 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2107086 (2.0 MiB)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:c1:40:95:0d:43
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:182 errors:0 dropped:0 overruns:0 frame:0
          TX packets:122 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:31498 (30.7 KiB)  TX bytes:21682 (21.1 KiB)

为了清楚起见,我重复一遍 - 网桥和两个以太网连接工作正常,并且运行时没有任何错误:

sudo service hostapd restart
sudo service dnsmasq restart
sudo service networking restart

一开始,bridge-utils 失败并显示一条消息

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

但在我添加bridge=br0到 hostapd 设置后,bridge-utils 不再抱怨,所以我猜想,wlan0 已添加到网桥中,但我不确定那里发生了什么。

如何让我的 WiFi 在接入点模式下工作并与 eth0 和 eth1 属于同一个网桥?

答案1

查看您的 /etc/network/interfaces,我没有将 wlan0 视为桥接器中包含的接口之一。添加这将是开始的地方。

相关内容