我正在尝试在 Debian GNU/Linux 上使用 brctl 和 hostapd 设置 wifi 热点,但似乎不起作用。我遵循的步骤如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
brctl addbr br0
brctl addif br0 eth0
dhclient br0
到目前为止,它都可以正常工作,我可以使用有线连接上网。然后,我启动hostapd
。它添加wlan0
到桥接器,有线连接停止工作:我无法上网,智能手机(使用 Android)能够通过热点进行身份验证,但无法获取 IP 地址并显示“连接受限”。
我读过几份指南和操作方法,但还是找不到解决方案。有什么建议吗?
答案1
有几个关键点需要考虑:
您必须禁用网络管理器:
sudo service network-manager stop
你必须开始hostapd桥前:
sudo hostapd -B /etc/hostapd/hostapd.conf
现在你只需添加eth0到现有的桥梁:
sudo brctl addif br0 eth0
并将网桥接入网络:
sudo dhclient br0
现在你必须检查你的路由表是否正常工作:
sudo add -net 0.0.0.0/0 gw IP_address_of_your_router dev br0 sudo del -net 0.0.0.0/0 gw IP_address_of_your_router dev eth0
现在将名称服务器添加到 /etc/resolv.conf:以 sudo 形式,
echo nameserver 8.8.8.8 >> /etc/resolv.conf echo nameserver 8.8.4.4 >> /etc/resolv.conf
我的工作方式如上所述:我现在正在通过它进行写作。
答案2
我最终选择了另一种方式来做同样的事情,根据此处的指南- 如果您需要始终在线的 hostapd AP,使用 /etc/networks 可能会更好,但是否则可能用处较少。
这是我的 /etc/networks 文件 - 我已将 wlan0 设置为手动,并桥接了 eth0。
# wireless wlan0
allow-hotplug wlan0
iface wlan0 inet manual
# eth0 connected to the ISP router
allow-hotplug eth0
iface eth0 inet manual
#iface eth0 inet6 auto
# Setup bridge
iface br0 inet static
bridge_ports wlan0 eth0
address 192.168.1.127
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
您的 hostapd.conf 可能也值得关注 - 这是我的精简版,因为我选择编辑“库存”版本。我怀疑您的问题很可能就在那里。
### Wireless network name ###
interface=wlan0
### Set your bridge name ###
bridge=br0
driver=nl80211
###CHANGE ANYTHING BELOW THIS TO SUIT!###
### (IN == INDIA, UK == United Kingdom, US == United Stats and so on ) ###
country_code=SG
hw_mode=g
channel=6
wpa=2
## Key management algorithms ##
wpa_key_mgmt=WPA-PSK
## Set cipher suites (encryption algorithms) ##
## TKIP = Temporal Key Integrity Protocol
## CCMP = AES in Counter mode with CBC-MAC
wpa_pairwise=TKIP
rsn_pairwise=CCMP
## Shared Key Authentication ##
auth_algs=1
## Accept all MAC address ###
macaddr_acl=0