Cat73 Blog

喵星人占领地球战略指挥部

0%

树莓派4b AP 折腾记

前言

最近入手了一个树莓派 4b,准备当低成本家用服务器,第一个折腾的就是把它做成一个路由器

Raspbian

在树莓派官方系统下,可以直接无脑安装RaspAP来提供 AP 功能

  1. 请插上网线,因为无线网卡需要用于 AP

  2. 执行一键安装脚本

    1
    curl -sL https://install.raspap.com | bash
  3. 直接在树莓派中的浏览器上访问http://127.0.0.1,账号:admin,密码:secret

  4. 简单配置下 AP 设置即可

  • 由于一些你懂得的原因,你可能无法直接访问此域名,可能需要配置前置代理,这里就不展开了

Ubuntu

由于 Raspbian 暂时没支持 64 位,很多软件不能用,性能也无法 100% 发挥,这实在不能忍,所以换 Ubuntu 了

而 Ubuntu 下的 RaspAP 在写这篇文章时还没有稳定版,尝试安装了下报了一堆错,还顺便把系统网络整炸了

于是决定自己动手做了😂

  1. 安装必要的软件

    1
    apt-get install dnsmasq hostapd haveged ifupdown2
  2. 为无线网卡设置静态 IP

    编辑/etc/network/interfaces,在最后追加如下内容:

    1
    2
    3
    4
    auto wlan0
    iface wlan0 inet static
    address 192.168.3.1
    netmask 24

    同时,观察此文件如果没有类似下面的内容的话,追加一下:

    1
    2
    3
    auto lo eth0
    iface lo inet loopback
    iface eth0 inet dhcp

    执行下面的命令来让设置生效:

    1
    2
    ifdown wlan0
    ifup wlan0
  3. hostapd 配置(AP)

    编辑/etc/default/hostapd,修改下面的配置:

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

    创建/etc/hostapd/hostapd.conf,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # base
    driver=nl80211
    interface=wlan0
    country_code=CN

    # SSID
    ssid=Cat73
    hw_mode=a
    channel=149

    # secret
    auth_algs=2
    wpa=2
    wpa_passphrase=ChangeMe
    wpa_pairwise=TKIP CCMP
    wpa_key_mgmt=WPA-PSK

    # misc
    wmm_enabled=1
    ieee80211d=0
    ieee80211h=0
    beacon_int=100
    fragm_threshold=2346
    rts_threshold=2347
    ignore_broadcast_ssid=0
    max_num_sta=50

    # N
    ieee80211n=1
    require_ht=1
    ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]

    # AC
    ieee80211ac=1
    require_vht=1
    vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
    vht_oper_chwidth=0
    vht_oper_centr_freq_seg0_idx=151

    执行下面的命令启用hostapd

    1
    2
    3
    systemctl unmask hostapd.service
    systemctl enable hostapd.service
    service hostapd start

    这时你应该已经可以搜到热点Cat73了,密码ChangeMe,但连接后不会分配 IP

  4. dnsmasq 配置(DHCP)

    编辑/etc/dnsmasq.conf,修改下面的配置项:

    1
    2
    3
    4
    5
    6
    7
    # DNS 服务器
    server=1.2.4.8
    interface=wlan0
    # DHCP 池范围、子网掩码、有效期
    dhcp-range=192.168.3.100,192.168.3.199,255.255.255.0,12h
    # DHCP 下发的 DNS 设置
    dhcp-option=6,192.168.3.1

    执行下面的命令重启dnsmasq

    1
    service dnsmasq restart

    这时你再连接会发现,可以正常分配 IP 了

  5. sysctl 开启 IP 包转发

    编辑/etc/sysctl.conf,在最后追加如下内容:

    1
    2
    net.ipv4.ip_forward=1
    net.ipv6.conf.all.forwarding=1

    然后执行sysctl -p生效

  6. 设置无线管制区域:

    1
    iw reg set CN
  7. 配置防火墙:

    1
    2
    3
    iptables -F
    iptables -X
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    这时,你应该已经能正常的用这个热点联网了

    然后把这个配置保存一下,不然重启之后又不能用了:

    1
    2
    3
    4
    iptables-save > /etc/iptables.up.rules
    echo '#!/bin/bash' > /etc/network/if-up.d/iptables
    echo '/sbin/iptables-restore < /etc/iptables.up.rules' >> /etc/network/if-up.d/iptables
    chmod +x /etc/iptables.up.rules

参考内容