Linux wifi driver 之深度实践 ap热点创建

概要

Linux 系统中还是使用 TP-Link TL-WN722N v1 创建热点(AP 模式),需要借助工具如 hostapd(创建热点)和 dnsmasq(提供 DHCP 服务)

热点创建

  1. 插入网卡,linux NetworkManager自动加载,先使用iw list查看是否支持ap模式
    在这里插入图片描述
    或者使用iw list | grep “Supported interface modes” -A 8
    在这里插入图片描述

  2. 安装依赖工具
    遇到的问题:更新失败
    在这里插入图片描述
    域名无法解析,定位是dns的问题
    在这里插入图片描述
    在这里插入图片描述
    保存并重启网络配置
    sudo systemctl restart NetworkManager
    问题解决

  3. 安装hostapd
    sudo apt install hostapd
    在这里插入图片描述

  4. 停止冲突服务(不需要linuxwlanmanager来管理wifi了)
    sudo systemctl stop NetworkManager
    sudo systemctl disable NetworkManager

  5. 配置dhcp和dns
    sudo vim /etc/dnsmasq.conf
    在这里插入图片描述
    interface=wlan0
    dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h
    dhcp-option=3,192.168.1.1 # 网关
    server=8.8.8.8 # DNS 服务器

  6. 启动dnsmasq服务
    sudo systemctl restart dnsmasq
    出现了启动失败问题:
    在这里插入图片描述
    查看报错详情:dnsmasq 默认使用端口 53(DNS)和 67(DHCP)。这些端口被其他服务占用,就会导致启动失败
    在这里插入图片描述
    检查端口占用
    sudo netstat --ldtun | grep -E ‘:53|:67’
    在这里插入图片描述
    确实被占用了
    停止冲突服务
    systemd-resolved 占用了端口,可以临时停止它:systemd-resolved是systemd套件的一部分,主要用于DNS解析管理
    sudo systemctl stop systemd-resolved
    sudo systemctl disable systemd-resolved

    在这里插入图片描述
    服务正常启动:
    在这里插入图片描述

  7. 创建配置热点文件(hostapd)
    在这里插入图片描述
    interface=wlan0
    driver=nl80211
    ssid=0000TP-LINK_ath9 # 热点名称
    hw_mode=g
    channel=6
    wmm_enabled=0
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=1234567890 # 密码
    wpa_key_mgmt=WPA-PSK
    rsn_pairwise=CCMP

  8. 启动热点
    sudo hostapd /etc/hostapd/hostapd.conf -B
    出现了初始化失败:
    在这里插入图片描述
    注意:我们需要确认hostapd配置文件的语法规则。hostapd的配置文件是键值对的形式,每行一个参数,不允许在值后面添加注释
    修改后:
    在这里插入图片描述
    再次启动,启动成功:
    在这里插入图片描述

  9. 热点创建验证
    此时已经可以扫描到wifi,并且可以拿到ip地址了:
    在这里插入图片描述

网络连通性

用基础框架说明转发逻辑
在这里插入图片描述

  1. 启用 IP 转发
echo 1 > /proc/sys/net/ipv4/ip_forward

这是默认规则:sudo iptables -S
在这里插入图片描述

  1. 设置 iptables 规则:将 wlan0 的流量通过 ens33 转发
    当连接到 wlan0 的设备访问外网时,其流量会通过 ens33 转发,且源 IP 地址会被替换为 ens33 的 IP 地址,从而实现 NAT 功能必须保留
sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

允许所有从 wlan0 到 ens33 的转发流量

 sudo iptables -A FORWARD -i wlan0 -o ens33 -j ACCEPT

允许所有从 ens33 到 wlan0 的转发流量

sudo iptables -A FORWARD -i ens33 -o wlan0 -j ACCEPT

再次查看规则:
在这里插入图片描述

  1. 为什么有一条规则不在这表里?

就要使用sudo iptables -t nat -S来查看了:
在这里插入图片描述

  1. 终端连接测试网络连通性
    在这里插入图片描述
    可以访问外网

看流量统计

ping百度:
在这里插入图片描述
如果 pkts 和 bytes 增加,说明规则生效

sudo iptables -t nat -L POSTROUTING -v -n

在这里插入图片描述
创建成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值