Linux 中 WIFI 和热点的使用

linux,wifi · 浏览次数 : 21

小编点评

一、网卡命令 显示所有网络信息:`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` - 开启代理 agent:`sudo connmanctl enable wifi` - 扫描 wifiscan wifi - 列出扫描的 wifi 列表,包括已连接的 services - 连接 wificonnect <UUID> - 断开 wifidisconnect <UUID> - 检查当前连接的网络信息:`info <UUID>` - 删除连接记录:`remove <UUID>` - 退出:`exit` 三、热点使用 打开热点主要使用的工具是 hostapd,配置文件如下: ``` interface=wlan0 driver=nl80211 ssid=MyHotspot hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 wpa=2 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 使用安装: 参考链接:https://www.cnblogs.com/schips/p/12132115.html 配置服务端信息: ``` 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 #Examplesopt dns 222.201.130.30 222.201.130.33 #dns服务器 option subnet 255.255.255.0opt 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 localoption lease 864000 # 10 days of seconds ``` 启动服务: ``` sudo udhcpd ``` 主要:这个和热点的启动无先后顺序,但是需要启动动态 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

正文

之前一直在 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 <UUID>

# 断开wifi
disconnect <UUID>

# 检查当前连接的网络信息
info <UUID>

# 删除连接记录
remove <UUID>

# 退出
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

与Linux 中 WIFI 和热点的使用相似的内容:

Linux 中 WIFI 和热点的使用

之前一直在 ubuntu 的图形界面中使用,突然需要在 ARM 板上打开热点,一时给弄蒙了,在此记录一下 一、网卡命令 显示所有网络信息 sudo ip link show 关闭或打开网络 sudo ip link set wlan0 down sudo ip link set wlan0 up 激

Linux 中 uid、gid、euid、egid、groups 之间的关系

导航 1 权限匹配流程 2 五种身份变化 3 有效用户/组 4 特权对 Shell 脚本无效 5 Sudo 与 SUID/SGID 的优先级 6 SUID、SGID、Sticky 各自的功能 Linux最优秀的地方之一,就在于他的多人多工环境。而为了让各个使用者具有较保密的档案资料,因此档案的权限管

[转帖]linux中关于带宽 MTU的一些命令

linux中关于带宽 MTU的一些命令 https://blog.51cto.com/xiaoliuer/1882208 查看协商的带宽大小 sudo ethtools eth0 Linux更改网卡MTU方法: 1. 打开终端,查看当前网卡设置:ifconfig 2. 对需要改MTU的网卡进行设置(

[转帖]Linux 中用 dd 命令来测试硬盘读写速度

https://www.cnblogs.com/xiexun/p/13935443.html hdparm -T /dev/sdb iostat 磁盘性能监控 由sysstat包提供 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转

[转帖]Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息

Linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令。你可能需要执行多个命令来收集这些信息。同时,记住所有的命令和他们的选项也是有难度。-- Magesh Maruthamuthu(作者) Linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令。你可能需

[转帖]如何理解 iowait

Linux中,%iowait 过高可能是个问题,严重的时候,它能使服务停止, 但问题是,多高才算高? 什么时候应该担心呢? 本文将讨论 iowait 的含义、相关的统计数据、原理以及 iowait的瓶颈问题 什么是 iowait Linux 中的解释 Show the percentage of t

[转帖]linux的硬链接和软连接的区别

Linux中有两种链接文件: 1)软链接(符号链接symbol),等同于Windows中快捷方式 ln -s 源文件名 符号链接文件名,源文件名和符号链接文件名是主从关系,源被删了,符号链接也就失效了 eg: ln -s src.c linker.c (linker.c就是src.c的一个符号链接文

[转帖]关于Linux操作系统中LUN的队列深度(queue_depth)

Linux中的queue_depth(队列深度),可以用lsscsi查看。不过今天在我的vm 虚拟机环境中(无外界存储),是没有lsscsi命令。不过,从网上,搜到了如下的信息:$ lsscsi -l[0:0:1:0] disk FUJITSU MAM3184MP 0105 /dev/sda sta

Linux 中的内部命令和外部命令

Linux 中的内部命令和外部命令 作者:Grey 原文地址: 博客园:Linux 中的内部命令和外部命令 CSDN:Linux 中的内部命令和外部命令 什么是 bash shell ? bash shell,就是一个程序,就是 Linux 系统安装的一个软件,用户通过 SSH 输入用户名密码登录操

Linux 中的文件简单说明

Linux 中的文件简单说明 作者:Grey 原文地址: 博客园:Linux 中的文件简单说明 CSDN:Linux 中的文件简单说明 说明 本文基于 CentOS 7 根目录(/)下文件夹主要作用 [root@linux /]# ll / total 16 lrwxrwxrwx. 1 root r