配置Linux为无线路由器

配置Linux无线路由器

将Linux配置为无线路由器。使用hostapd,可以配置无线网卡为AP模式。

这里使用buildroot来生成这个工具。Wi-Fi模块使用的是 rt8188eus。

1. 内核配置

配置Linux为无线路由器_第1张图片

配置Linux为无线路由器_第2张图片

配置Linux为无线路由器_第3张图片

2. buildroot配置

配置Linux为无线路由器_第4张图片

配置Linux为无线路由器_第5张图片

开启 rt8188eus 驱动

配置Linux为无线路由器_第6张图片

3. 启动hostapd

系统启动后,会自动加载无线网卡驱动,生成wlan0设备。

可以通过网桥方式上网,也可以通过路由模式上网。这里暂时没有配置NAT,因此使用网桥方式上网。

3.1 创建网桥
brctl addbr br0  # 创建网桥
brctl addif br0 eth0  # 将eth0加入到网桥br0中
ip link set eth0 promisc on  # eth0网卡开启混杂模式:接受和发送任意端口地址的数据包

这里eth0是作为当前设备的 WAN口,可以dhcp一个IP地址:

udhcpc -i br0 
# udhcpc -i br0
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.47.193, server 192.168.47.254
udhcpc: lease of 192.168.47.193 obtained from 192.168.47.254, lease time 1800
adding dns 192.168.47.1

这里上级网络有DHCP server,可以直接获取到一个IP地址。在手机连接到AP热点后,就会通过这个DHCP server获取到IP地址。

3.2 修改 /etc/hostapd.conf

修改 hostapd.conf :

mv /etc/hostapd.conf /etc/hostapd.conf.backup
touch /etc/hostpad.conf

添加内容:

country_code=CN
interface=wlan0
bridge=br0
ssid=Example-Wifi-Name
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

名称是 Example-Wifi-Name ,密码是 12345678

3.3 启动hostapd
hostapd /etc/hostapd.conf -B

启动后,会作为一个后台进程运行。

# hostapd /etc/hostapd.conf -B
rfkill: Cannot open RFKILL control device
nl80211: Could not re-add multicdevice wlan0 entered promiscuous mode
ast membership for vendor events: -2 (Interrupted system call)
wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE
# ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

这里要注意,必须要开启 dhcpd,否则,手机连接这个热点时,无法DHCP到IP地址,会导致连接不上。 由于是使用桥接模式进行上网,因此,DHCP server由上级路由设备提供。这里对应的是WAN口的上级设备。

4. 连接AP

配置Linux为无线路由器_第7张图片

测试手机与本机的连通:

配置Linux为无线路由器_第8张图片

测试手机与上级设备的连通:

配置Linux为无线路由器_第9张图片

这里只要上级设备出来的这个eth0能够上网,那么手机就可以正常上网了。

你可能感兴趣的:(OpenWrt,Linux系统,智能路由器,网络)