Ubuntu 树莓派开启 AP 热点

出于某些原因,我需要在我的树莓派 4B 上打开一个 Ap 热点,用于共享 LAN 接口网络网络

树莓派 4B 拥有一个 千兆 LAN 口,以及一个双频的 802.11ac 无线模块

具体配置可参考 树莓派官网 >>>

具体操作方法

  1. 安装项目
    本文使用项目脚本为 create_ap,该项目已经停更,不过目前仍然适用,不过在作者的 issue 中看到另外一个分叉项目 linux_router 仍然活跃,有兴趣可以去尝试使用一下😄

     git clone https://github.com/oblique/create_ap
     cd create_ap
     sudo make install
    
  2. 安装依赖项

    # 该项目使用到下列依赖项目
    sudo apt update
    sudo apt install -y util-linux procps hostapd iproute2 iw haveged dnsmasq
    
    
  3. 配置 Ap

    # 查看你的网卡,如下图所示,找到你的 LAN 口 和 无线网卡
    ifconfig
    
    # 使用如下命令创建一个简单的 wifi, 其中 wlan0 是你的无线网卡,eth0 是你的 Lan 口,ctrl + c 停止
    sudo create_ap wlan0 eth0 热点名 密码
    
    # create_ap 使用 hostapd 创建 wifi,并使用 dnsmasq 提供 dns 功能, 配置文件位于 /etc/create_ap.conf 中
    # 其中关键的 配置 如 下 ↓↓↓
    IEEE80211N=1  # 启用80211n
    HT_CAPAB=[HT40+]  # 如果不设置默认速率为 75Mbps,设置后速率为 150Mbps
    FREQ_BAND=5 # 参数 5  2.4,分别代表 5G 和 2.4G 频段
    SSID=MyWifi # WIFI 名称
    PASSPHRASE=12345678 # WIFI 密码
    
    ifconfig截图
  4. 服务配置

    # 打开 create_ap 服务
    sudo systemctl start create_ap.service
    # 设置服务开机自启
    sudo systemctl enable create_ap.service
    

过程中遇到的问题

  • 安装了 dnsmasq 后无法开启

    • 这是由于系统 systemd-resolved 服务占用 53 端口导致
    # 关闭系统 systemd-resolved.service
    sudo systemctl stop systemd-resolved.service
    
    ### 关闭后若出现主机名无法解析,先忽略该错误,配置完成即可恢复正常
    
    # 修改配置文件,修改如下两处配置
    sudo vim /etc/systemd/resolved.conf
    
    DNS=114.114.114.114
    DNSStubListener=no
    
    # 重启 systemd-resolved.service
    sudo systemctl start systemd-resolved.service
    
    # 重新覆盖 /etc/resolv.conf 配置
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
    
  • 关于 WIFI 速率的问题

    • 从硬件上看,该网卡支持 802.11ac ,实际在配置方面,尝试过最大只能打开 802.11n,因此速率只有 150Mbps,并且 WIFI 信号一般,并不能作为专业路由器使用,临时用或者辅助使用尚可

本文使用操作系统为: Ubuntu Server 20.04.3 LTS
其他系统版本,均可作为参考