通过 Hostapd 进行 WIFI 热点共享上网

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 操作系统:Debian Gnu/Linux Jessie 内核: linux-image-4.3.0-0.bpo.1-amd64 网卡:腾达(Tenda) W311M 150M Mini无线USB网卡 最近发现自己的Debian之前可以使用GNOME3下的networkmanager进行WIFI共享上网功能因为内核升级导致无法使用。

操作系统:Debian Gnu/Linux Jessie

内核: linux-image-4.3.0-0.bpo.1-amd64

网卡:腾达(Tenda) W311M 150M Mini无线USB网卡

最近发现自己的Debian之前可以使用GNOME3下的networkmanager进行WIFI共享上网功能因为内核升级导致无法使用。无奈只好再次通过Hostapd来进行WIFI热点设置,同时为了更块的DNS解析,本次顺便也在本地安装了dnsmasq软件实现了本地化的DNS查询服务,成功恢复了我的小本本作为热点的能力。总结方法如下:

1、准备环境:

1.1执行vi /etc/apt/sources.list,并添加如下源地址:

deb http://ftp.cn.debian.org/debian/ jessie-backports main contrib non-free

1.2安装最新内核,及相关软件组件包,避免编译Hostapd出错,依次执行如下命令:

apt-get update
apt-get install linux-image-4.3.0-0.bpo.1-amd64
apt-get install linux-headers-4.3.0-0.bpo.1-all-amd64
apt-get install pkg-config libssl-dev  gettext openssl hostapd
apt-get install libnl-genl-3-dev libnl-genl-3-200 libnl-3-dev libnl-3-200

2.编译、配置hostapd软件:

2.1 进入http://w1.fi/hostapd/网站下载hostapd-2.5.tar.gz文件

2.2 执行命令tar -zxvf hostapd-2.5.tar.gz对hostapd-2.5.tar.gz进行解压,当前目录下将生成hostapd-2.5文件夹,使用cd hostapd-2.5进入该文件夹,并执行cp defconfig .config命令,使用vi .config命令对该文件进行修改,修改内容如下:

# Use libnl v2.0 (or 3.0) libraries.
CONFIG_LIBNL20=y
# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored)
CONFIG_LIBNL32=y
# IEEE 802.11n (High Throughput) support
CONFIG_IEEE80211N=y

之后使用 make && make install 命令进行编译。系统将在 /usr/local/bin 目录下生成两个文件名为 hostapd、hostapd_cli 的可执行文件。

2.3 使用命令 cp hostapd.conf /etc/hostapd/ 将 hostapd 配置文件复制到 /etc/hostapd/ 文件夹下,并将相关字段修改为如下内容:

interface=wlan1
driver=nl80211
ssid=CMSS
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wmm_enabled=1
ieee80211n=1
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
wpa=2
wpa_passphrase=debian.cn
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

2.4 使用vi /etc/default/hostapd对该文件进行编辑,修改内容如下:

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

2.5 使用vi /etc/init.d/hostapd对hostapd服务脚本进行编辑,修改内容如下:

DAEMON_SBIN=/usr/local/bin/hostapd

并在start)下一行添加如下内容:

sed -i '/\[keyfile\]/a unmanaged-devices=mac:c8:3a:35:cb:18:e0' /etc/NetworkManager/NetworkManager.conf
ip addr add 192.168.11.1/24 dev wlan1
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sleep 2

在stop)下一行添加如下内容:

sed -i '/^unmanaged-devices=mac:c8:3a:35:cb:18:e0/d' /etc/NetworkManager/NetworkManager.conf
echo "0" >/proc/sys/net/ipv4/ip_forward
ip addr del 192.168.11.1/24 dev wlan1
iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE
sleep 2

在reload)下一行添加如下内容:

sed -i '/^unmanaged-devices=mac:c8:3a:35:cb:18:e0/d' /etc/NetworkManager/NetworkManager.conf
echo "0" >/proc/sys/net/ipv4/ip_forward
ip addr del 192.168.11.1/24 dev wlan1
iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE
sed -i '/\[keyfile\]/a unmanaged-devices=mac:c8:3a:35:cb:18:e0' /etc/NetworkManager/NetworkManager.conf
ip addr add 192.168.11.1/24 dev wlan1
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sleep 2

使用命令systemctl daemon-reload对脚本文件进行重新配置。

3.安装、配置dnsmasq软件:

3.1 使用命令apt-get install dnsmasq安装dnsmasq软件。

3.2 使用vi /etc/dnsmasq.conf命令对该文件进行修改,修改内容如下:

resolv-file=/etc/resolv.dnsmasq.conf
server=/cn/114.114.114.114
server=/taobao.com/114.114.114.114
server=/google.com/8.8.8.8
listen-address=127.0.0.1,192.168.11.1
dhcp-range=192.168.11.50,192.168.11.150,12h
dhcp-option=3,192.168.11.1
dhcp-option=6,192.168.11.1
cache-size=1024
conf-dir=/etc/dnsmasq.d

3.3 使用命令vi /etc/resolv.dnsmasq.conf编辑该文件,并添加如下内容:

nameserver 114.114.114.114
nameserver 223.5.5.5
nameserver 223.6.6.6

3.4 使用命令vi /etc/resolv.conf编辑该文件,并添加如下内容:

nameserver 127.0.0.1

4、启动相关服务:

4.1.分别使用命令:

systemctl enable dnsmasq.service
systemctl disable hostapd.service

开启和关闭两项服务,之后在需要使用热点模式时使用命令:

systemctl start hostpad.serive

进行开启,用户即可使用热点名为 CMSS, 密码为 debian.cn, 网关地址和DNS均为 192.168.11.1 的 80211N 协议无限热点进行上网连接啦!


原文发布时间:2017-05-28
本文来自云栖社区合作伙伴“ Debian社区”,了解相关信息可以关注“ Debian社区”。
相关文章
|
Android开发
Android获取已连接wifi的热点信息(上位机开发学习之多个界面切换编程)
Android获取已连接wifi的热点信息(上位机开发学习之多个界面切换编程)
260 0
|
物联网 Android开发
Android获取已连接wifi的热点信息
Android获取已连接wifi的热点信息
298 0
|
安全 网络协议 Windows
Win10连WiFi显示无internet,安全 却可以正常上网
1.现象: win10连WiFi显示无internet,安全 可以正常上网 影响:大部分程序不受影响,小部分程序可能受到影响,例如傻呼呼的Outlook 2.原因: Wind10升级系统补丁后,更新了系统检查是否联网的注册表配置,新的域名在国内存在无法连接情况。
2953 0
Win10连WiFi显示无internet,安全 却可以正常上网
|
开发者
关于Win11系统PC连上WiFi后能正常使用各大App,但浏览器无法正常上网访问之详细解决办法
我个人近期遇到了一个问题,正如标题所说“关于Win11系统PC连上WiFi后能正常使用各大App,但浏览器无法正常上网访问”,这个bug困扰过不少开发者,今天来简单分享一下解决办法
1538 1
|
网络安全 Android开发 Windows
如何让手机共享电脑代理网络的WIFI热点
如何让手机共享电脑代理网络的WIFI热点
3819 0
如何让手机共享电脑代理网络的WIFI热点
|
网络协议 数据安全/隐私保护 Windows
Windows Win7建立wifi热点,手机共享WIFI上网
Windows Win7建立wifi热点,手机共享WIFI上网
217 0
|
Ubuntu 数据安全/隐私保护
Ubuntu使用linux-wifi-hotspot创建WIFI热点
Ubuntu使用linux-wifi-hotspot创建WIFI热点
1703 0
Ubuntu使用linux-wifi-hotspot创建WIFI热点
|
Linux 开发工具 数据安全/隐私保护
Linux操作系统下开启wifi热点的方法
在很多场合下,网络使用是非常重要的,如果有一个Linux可以发出wifi热点,那么很多时候可以对于开发者来说是非常方便的。
1264 1
|
网络协议 API Android开发
Android wifi上网跟4G上网的区别
Android wifi上网跟4G上网的区别
321 0
Android wifi上网跟4G上网的区别