宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

ubuntu中怎么利用hostapd 搭建无线路由,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

因为公司的IP不固定,不能使用静态IP来配置树莓派的 ap 模式,只能固定一个IP到无线网卡上。如果是固定IP,使用netplan就足够了。

# This file describes the network interfaces available on your system
# For more information, see netplan5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.1/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
  wifis:
    wlp58s0:
      dhcp4: yes
      dhcp6: no
      access-points:
        "your-wifi-SSID-name":
          password: "your-wifi-password"

我使用的是 client <-> dnsmasq + hostapd – wlan0 -> iptables nat -> eth0

hostapd

hostapd 配置: /etc/hostapd/hostpad.conf

interface=wlan0
driver=nl80211
ssid=MyWiFiNetwork
hw_mode=g
channel=7
wmm_enabled=0
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

修改 hostapd 默认加载配置文件: /etc/default/hostapd

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

重新加载 systemd 服务,重启 hostapd

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

dnsmasq

dnsmasq 上游 dns 配置: /etc/resolv.dnsmasq

nameserver 223.5.5.5
nameserver 8.8.8.8

dnsmasq 配置: /etc/dnsmasq.conf

listen-address=192.168.89.1
resolv-file=/etc/resolv.dnsmasq
interface=wlan0
dhcp-range=192.168.89.2,192.168.89.20,255.255.255.0,24h

取消 systemd-resolv 配置:/etc/systemd/resolv.conf,取消绑定 53 端口:

[Resolve]
DNS=192.168.89.1
DNSStubListener=no

修改 dnsmasq systemd service 文件: /lib/systemd/system/dnsmasq.service , 让 dnsmasq 可以绑定固定 IP

[Unit]
After=network-online.target
Wants=network-online.target

重新加载服务,重启服务

systemctl daemon-reload
systemctl restart  systemd-resolved.service
systemctl restart dnsmasq

配置网络

netplan 文件: /etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
        wlan0:
            dhcp4: false
            addresses:
            - 192.168.89.1/24
    version: 2

应用配置:

netplan apply

NAT 配置

配置内核允许转发:/etc/sysctl.d/99-sysctl.conf 新增:

net.ipv4.conf.all.forwarding=1

应用配置:

sysctl -p

iptables:

sudo iptables -t nat -A POSTROUTING -s 192.168.89.0/24 -o eth0 -j MASQUERADE

安装 iptables-persistent 保存iptables, 开机启动自动加载:

sudo apt install iptables-persistent

安装后会交互询问是否保存当前的iptables,也可以手动保存:

sudo su -c 'iptables-save > /etc/iptables/rules.v4'