使用 Linux 托管接入点,无需流量转发

使用 Linux 托管接入点,无需流量转发

如何将 Linux 计算机设置为“接入点”,但不“桥接”/转发往返于有线网络的流量(使用 WPA2 并禁用 SSID 广播)?

这样做的原因是为了即使计算机未连接到任何其他网络,也可以通过无线方式访问计算机本身上的内容。

似乎应该有一种方法可以使用hostapd某种 dhcp 来提供 IP 地址。

该计算机当前运行的是 Debian squeeze,并且有一个使用 b43 驱动程序的网络卡。该教程大部分时候有效,但在尝试获取 IP 地址时无法停止,此外,它适用于传统的路由器设置。

似乎还有其他方法可以做到这一点(见这里, 和这里有关在 中使用 WPA 的信息/etc/network/interfaces)。

更新:感谢上帝,现在可以正常工作了。通过运行禁用 IP 转发echo 0 > /proc/sys/net/ipv4/ip_forward。无法获取 IP 地址的原因是 1) 接口没有设置 IP 地址,2) 没有运行 DHCP 服务器。

因此我使用 ifconfig 设置 IP。示例:ifconfig wlan0 <ipaddress> netmask <subnet-mask>。我安装了 dnsmasq 作为 DHCP 服务器。此外,Android 手机大约每 5 秒就会断开连接;beacon_int=15在 hostapd.conf 中进行设置可解决此问题。

答案1

能够路由的系统的默认配置应该是禁用路由。

您可以添加以下几行以/etc/sysctl.conf使其更加明显:

net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.default.mc_forwarding = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.default.forwarding = 0

您可能仍想运行某种 DHCP 服务器,该服务器不会在特定接口上配置默认路由。(默认dhcpd.conf路由作为示例,您需要禁用它)

相关内容