• Linux 中 WIFI 和热点的使用


    之前一直在 ubuntu 的图形界面中使用,突然需要在 ARM 板上打开热点,一时给弄蒙了,在此记录一下

    一、网卡命令

    • 显示所有网络信息

      sudo ip link show
    • 关闭或打开网络

      sudo ip link set wlan0 down
      sudo ip link set wlan0 up
    • 激活或启动网络

      sudo ifconfig wlan0 up
    • 设置 ip 地址

      sudo ifconfig wlan0 192.168.1.102
    • 查看是否支持 ap 模式

      sudo iw dev wlan0 info

    二、WIFI 连接工具

    在 linux 中管理 WIFI 的工具有很多,比如 wpa_supplicant、iw、netctl、connmanctl等

    connmanctl 工具

    # 进入管理工具
    sudo connmanctl
    # 是能wifi
    connmanctl enable wifi
    # 开启代理
    agent on
    # 扫描 wifi
    scan wifi
    # 列出扫描的wifi列表,包括已连接的
    services
    # 连接wifi
    connect
    # 断开wifi
    disconnect
    # 检查当前连接的网络信息
    info
    # 删除连接记录
    remove
    # 退出
    exit

    三、热点使用

    打开热点主要使用的工具是 hostapd

    • 编写热线 /etc/hostapd/hostapd.conf 配置文件,文件名可以任意

      interface=wlan0 # 你的无线接口名
      driver=nl80211 # 无线驱动类型
      ssid=MyHotspot # 热点名称
      hw_mode=g # 工作模式,g为802.11g,n为802.11n
      channel=6 # 无线频道
      macaddr_acl=0 # 不限制MAC地址
      auth_algs=1 # 认证算法
      ignore_broadcast_ssid=0
      wpa=2 # WPA2安全
      wpa_passphrase=MyPassPhrase # 密码
      wpa_key_mgmt=WPA-PSK
      wpa_pairwise=TKIP
      rsn_pairwise=CCMP

      注意: 通畅情况下这么配置没问题,需要注意的是不热模块之间可能有细微的区别,主要查看对应的手册

    • 启动热点

      sudo hostapd -B /etc/hostapd/hostapd.conf

      注意:此时启动的热点可以扫描到,但是无法连接,因为热点还无法为设备自动分配ip

    四、动态 ip 分配

    目前常用的工具有 dnsmasq 和 udhcp,可以更具自己的需要进行选择,需要注意的是这两个工具都分为服务端和客户端,想要为热点分配 动态 ip 时,工具都要作为服务端才行

    udhcp 使用

    • 安装 udhcp
      安装的过程这里就不介绍了,可以参考这位大佬的博客:https://www.cnblogs.com/schips/p/12132115.html

    • 在 /etc/udhcpd.conf 中配置服务端信息,文件不存在创建即可

      # The start and end of the IP lease block
      start 192.168.1.20 #default: 192.168.0.20 客户端分配的地址范围
      end 192.168.1.25 #default: 192.168.0.254
      # The interface that udhcpd will use
      interface wlan0 #default: eth 0 #目标板子上的无线网卡wlan0
      #Examles
      opt dns 222.201.130.30 222.201.130.33 #dns服务器
      option subnet 255.255.255.0
      opt router 192.168.1.10 #wlan的 ip地址,做为网关地址
      option dns 192.168.1.10 # appened to above DNS servers for a total of 3
      option domain local
      option lease 864000 # 10 days of seconds
    • 启动服务

      sudo udhcpd

    主要:这个和热点的启动无先后顺序,但是需要启动动态 ip 分配热点才能连接,但是会发现此时的热点还不能上网,需要进行 ip 转发才行

    五、IP 转发

    • 配置 ip 转发

      # 检查是否启用了IP转发
      sudo sysctl net.ipv4.ip_forward
      # 临时启动转发
      sudo sysctl -w net.ipv4.ip_forward=1
      # 永久启动转发,文件不存在时创建即可
      sudo vi /etc/sysctl.conf
      # 在文件中添加
      net.ipv4.ip_forward=1
      # 立即生效
      sudo sysctl -p /etc/sysctl.conf
      # 检查是否应用
      cat /proc/sys/net/ipv4/ip_forward
    • 设置 NAT 规则

      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    参考链接

    arm linux 移植 udhcp 与 使用:https://www.cnblogs.com/schips/p/12132115.html

  • 相关阅读:
    Docker - Oracle Database 23ai Free
    【精读Uboot】SPL阶段的board_init_r详细分析
    Say Goodbye to OOM Crashes
    泰国数字加密平台Bitkub创始人到访和数集团:以数字化创新探索科技前沿密码
    双调旅行商问题
    Nodejs 第十六章(ffmpeg)
    KEGG信号通路富集分析
    C语言基础篇 —— 4.3 共用体union详解
    金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(3. MySQL 数据库移植实战)
    为什么RIP使用UDP,OSPF使用IP,而BGP使用TCP?为什么RIP周期性地和邻站交换路由信息而BGP却不这样做?
  • 原文地址:https://www.cnblogs.com/jzcn/p/18299643