[N1盒子] 利用hostapd启动802.11ac 5G无线AP wifi热点 二级路由 桥接

时间:2024-03-11 16:12:03

参考:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=385337&ordertype=1

        http://www.cnblogs.com/zhyasong/p/5438606.html

    单位的一级路由是802.11n的,手机连接最高只能到72M,今天折腾了一下午的时间。参考大神的资料,终于搞定了ac热点,5G可以跑在433Mbps。将步骤记录一下。

一、802.11ac 5G支持


1、安装对应的包


apt-get install hostapd rng-tools   #我是先在armbian-config里直接开启热点,只能支持到802.11a,不支持ac。但是工具都安装好了,所以直接跳到3、hostapd.conf配置就行了。

2、cat /etc/default/hostapd  取消备注#


DAEMON_CONF="/etc/hostapd.conf"

3、改 /etc/hostapd.conf

interface=wlan0
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
driver=nl80211
channel=44
macaddr_acl=0
wmm_enabled=1         # QoS support
#obss_interval=300
ieee80211n=1
require_ht=1
ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
ieee80211ac=1         # 802.11ac support
require_vht=1
#vht_oper_chwidth=0
#vht_capab=[SHORT-GI-80][SU-BEAMFORMEE]
#个别N1无法使用[SU-BEAMFORMEE] ,请在下面行中自行去除
vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
#beacon_int=50
#dtim_period=20
basic_rates=60 90 120 180 240 360 480 540
disassoc_low_ack=0
ssid=king-5g   #热点名字
#bridge=br0
hw_mode=a
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=G00dpassword  #密码密码
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

以下4-8是大神原文NAT设置,我用桥接直接跳过了。

4、改 /etc/network/interface
在原来的eth0基本上增加
allow-hotplug wlan0
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0
5、确保kernel是Linux aml 4.19.7-aml-s9xxx 最新的包2018-12-18发的那一版本才是最新的
6、systemctl enable hostapd
7、配置dnsmasq.conf
增加:
interface=wlan0
dhcp-range=10.0.0.2,10.0.0.100,12h
dhcp-option=6,10.0.0.1
8、增加iptables masq和forward的配置,其它文章中有,我不细写了
reboot后,通过 ps -ef |grep hostapd 看看是否wifi 5g起来,检查是不是有king-5g的热点,输入对应的密码,即可连上。
如果无法连接网络,则检查分配到的ip及网关是否正常匹配。
信号隔一个房间,10MB/s可以跑得很稳。

二、桥接配置

编辑 /etc/default/hostapd,键入:

# vi /etc/default/hostapd

去掉DAEMON_CONF 前的注释,并设置它的值为hostapd配置文件的绝对路径,这样hostapd会随系统一起启动:

DAEMON_CONF="/etc/default/hostapd.conf"

保存,关闭文件。接着创建一个文本文件: /etc/hostapd/hostapd.conf,键入:

设接口名称:

### Wireless network name ###
interface=wlan0   ### Set your bridge name ###
bridge=br0

设驱动名称

driver=nl80211

设国家名称代码,格式遵循ISO/IEC 3166-1格式。这样做用来设定管理域。根据需要设定,以说明设备在哪个国家操作。这会限定可用的频道和发射功率。

### (IN == INDIA, UK == United Kingdom, US == United Stats and so on ) ###
country_code=IN

设定你的SSID:

ssid=nixcraft

设定操作模式(a=IEEE 802.11a,  b = IEEE 802.11b, g = IEEE 802.11g):

channel=6

设定wpa模式为2:

wpa=2

设定你的密码短语(Wifi连接密码):

wpa_passphrase=MyWiFiPassword

为WPA2设定密钥和认证管理选项

## 密钥管理算法 ##
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   ## 共享密钥认证 ##
auth_algs=1   ## 接受所有mac访问 ###
macaddr_acl=0

保存并关闭这文件。

我怎样启动/停止/重启AP?

使用下列命令:

Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: bridge-utils 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 32.7 kB of archives. After this operation, 176 kB of additional disk space will be used. Get:1 http://debian.osuosl.org/debian/ squeeze/main bridge-utils amd64 1.4-5 [32.7 kB] Fetched 32.7 kB in 1s (25.5 kB/s) Selecting previously deselected package bridge-utils. (Reading database ... 267692 files and directories currently installed.) Unpacking bridge-utils (from .../bridge-utils_1.4-5_amd64.deb) ... Processing triggers for man-db ... Setting up bridge-utils (1.4-5) ...

编辑 /etc/network/interfaces, 输入:

# vi  /etc/network/interfaces

修改,或设置其配置如下:

auto lo br0
iface lo inet loopback   # wireless wlan0
allow-hotplug wlan0
iface wlan0 inet manual   # eth0 connected to the ISP router
allow-hotplug eth0
iface eth1 inet manual   # Setup bridge  
iface br0 inet static
    bridge_ports wlan0 eth0
    address 192.168.1.11
    netmask 255.255.255.0
    network 192.168.1.0
    ## isp router ip, 192.168.1.2 also runs DHCPD ##
    gateway 192.168.1.2
    dns-nameservers 192.168.1.2

保存并并关闭文件。到此,我建议你重启计算机,或者像下面那样重启所有的服务(使用远端ssh会话可能不工作):

# /etc/init.d/networking restart
# /etc/init.d/hostapd restart

或者:

# reboot

关于DHCPD 的注意

既然你让WAP跑在桥接(br0)模式,在WAP上DHCPD不是必需的。它可以使用LAN内任意地方的DHCPD服务器。在本例子中 192.168.1.2是一个ISP路由器,它提供了DHCPD服务。如果你没有使用DHCPD服务器,参照以下安装:

关于防火墙的注意

你可以安装防火墙来抵御进攻。参阅这里:install shorewall on Debian or Ubuntu Linux.

如何处理WAP问题?

WPA的日志信息在 /var/log/syslog文件中:

# tail -f /var/log/syslog

检查DHCPD中继是否工作:

# tcddump -n port 67 或 ort 68

确定防火墙没有阻止需要的端口:

# /sbin/iptables -L -n -v | less

确定br0的mac地址正确,并且它已经在运行:

brctl show

三、自用的hostapd.conf配置:

#
# armbian hostapd configuration example
#
# nl80211 mode
#

interface=wlan0
hw_mode=g
channel=44
bridge=br0
driver=nl80211

logger_syslog=0
logger_syslog_level=0
wmm_enabled=1
wpa=2
preamble=1

wpa_psk=66eb31d2b48d19ba216f2e50c6831ee11be98e2fa3a8075e30b866f4a5ccda27
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

noscan=1

## IEEE 802.11n
ieee80211n=1
ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
country_code=CN
ieee80211d=1
## IEEE 802.11n

## IEEE 802.11a
hw_mode=a
## IEEE 802.11a

### IEEE 802.11ac
ieee80211ac=1
vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
basic_rates=60 90 120 180 240 360 480 540
disassoc_low_ack=0
ssid=N1
### IEEE 802.11ac

# controlling enabled
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0