我的 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 视为桥接器中包含的接口之一。添加这将是开始的地方。