如何在 Linux 桥接中禁用 AP 隔离?

如何在 Linux 桥接中禁用 AP 隔离?

语境:我正在尝试通过桥接以太网连接在 Raspberry Pi 上设置 WiFi 热点。

问题:如何禁用 AP 隔离或客户端隔离?

前期工作:这是我迄今所做的事情。

  1. 安装以下模块。

    apt-get install hostapd bridge-utils
    
  2. 停止 hostapd 服务。

    systemctl stop hostapd
    
  3. 防止 eth0/wlan0 端口被 DHCP 分配。

    vi /etc/dhcpcd.conf
    
  4. 在文件末尾但在任何接口块上方添加以下行。

    denyinterfaces wlan0
    denyinterfaces eth0
    
  5. 添加桥梁。

    brctl addbr br0
    
  6. 连接eth0br0

    brctl addif br0 eth0
    
  7. 添加到接口。

    vi /etc/network/interfaces
    auto br0
    iface br0 inet manual
    bridge_ports eth0 wlan0
    
  8. 配置接入点。

    vi /etc/hostapd/hostapd.conf
    interface=wlan0
    ssid=wifi-ssid
    hw_mode=g
    channel=7
    wmm_enabled=0
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=passphrase
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
  9. 点系统使用此文件。

    vi /etc/default/hostapd
    DAEMON_CONF="/etc/hostapd/hostapd.conf"
    
  10. 重启

    systemctl start hostapd
    reboot
    

答案1

看着hostapd.conf, 它说

# Client isolation can be used to prevent low-level bridging of frames between
# associated stations in the BSS. By default, this bridging is allowed.
#ap_isolate=1

所以客户端隔离(同一 AP 上的 WLAN 客户端可以相互通信)默认情况下处于禁用状态。除非您的构建hostapd默认启用了此功能,否则客户端应该能够相互通信。如果是这种情况,请在配置文件中启用它。

您如何确定 WLAN 客户端无法相互通信,并且启用了客户端隔离?两个 WLAN 客户端是否相互 ping 通?

如果您的问题不是关于客户端隔离,而是关于桥接器eth0无法wlan0正常工作:再次,您如何测试它是否无法正常工作?让 LAN 上的主机和 WLAN 上的主机互相 ping 吗?您是否检查了每台主机上的 IP 配置?主机如何获取其 IP 地址(从哪个 DHCP 服务器?还是静态的?)您是否检查了路由?您可以在tcpdump -ni interface_name每个重要接口的终端窗口中进行调试,并查看数据包卡在哪里。

实际上隔离LAN 与 WLAN 通常使用ebtables规则,而且您不太可能意外插入正确的规则...因此可以肯定您的设置中存在某些无法正常工作的问题。

相关内容