本文系统基于uBuntu OS,其他系统可以参照进行,注意对应的命令与语法。事情的原因是大家在群里讨论在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.100.110
查看是否支持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
安装的过程这里就不介绍了,可以参考这位大佬的博客:arm linux 移植 udhcp 与 使用 - schips - 博客园 -
在 /etc/udhcpd.conf 中配置服务端信息,文件不存在创建即可
# The start and end of the IP lease block
start 192.168.110.100 #default: 192.168.110.200 客户端分配的地址范围
end 192.168.110.200 #default: 192.168.110.254
# The interface that udhcpd will use
interface wlan0 #default: eth 0 #目标板子上的无线网卡wlan0
#Examles
opt dns 180.184.1.1 180.184.2.2 #dns服务器
option subnet 255.255.255.0
opt router 192.168.110.220 #wlan的 ip地址,做为网关地址
option dns 192.168.110.220 # 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 与 使用:arm linux 移植 udhcp 与 使用 - schips - 博客园
5422

被折叠的 条评论
为什么被折叠?



