我把我的树莓派做成了路由器。
eth0连接互联网,wlan0作为可访问点。
所以我创建了一个 br0,然后将 eth0 和 wlan0 都添加到 br0。启动 dhcpd(这样我的手机就可以从 wlan0 获取 ip)和 hostapd。一切正常,我通过与 raspberry pi 的 wifi 连接在手机上上网。
但是,我无法使用 wlan0 IP 或 eth0 IP ping pi。我注意到我获得了一个与 eth0 位于同一子网的 IP。但我仍然无法 ping 它。
为什么?或者还有什么方法可以 ping 其中两个?我知道 iptables 是一个选项。但我很好奇用网桥是否可以实现。
答案1
我把我的树莓派做成了路由器。
我创建了一个 br0,然后将 eth0 和 wlan0 都添加到 br0。
那不是路由器。(如果它将两个网络连接在一起,它就是路由器,但现在你有一个 桥– 这意味着双方具有相同的子网。)
启动 dhcpd 和 hostapd
有点担心这个——你的树莓派是仅有的LAN 中的 DHCP 服务器,或者您是否意外设置了第二个 DHCP 服务器?
但是,我无法使用 wlan0 IP 或 eth0 IP ping pi。
当你转弯eth0
进入wlan0
桥梁港口时,它们就变成了而已比桥接端口更甚。即使配置了,它们也不再使用 IP。
相反,您需要在桥接接口上设置相同的 IP 地址br0
(并且可以从“端口”接口中删除所有地址)。
答案2
添加桥接后,就不能再 ping 通了。需要检查一下route -n
。然后删除已经桥接的接口的条目。删除该条目后,就可以 ping 通了。下面是 virtualbox 中的一个实际演示:两台使用主机专用适配器的 Virtualbox 机器。关键命令是:
route del -net 192.168.3.0 gw 0.0.0.0 netmask 255.255.255.0 dev enp0s8