【7】ubuntu 使用hostapd建立wifi热点

一、下载并安装

wget http://w1.fi/releases/hostapd-2.6.tar.gz
tar xzvf hostapd-2.6.tar.gz
cd hostapd-2.6/hostapd

 然后配置hostapd使得其能够获得nl80211驱动的支持。复制hostapd目录下的deconfig文件为.config,并进行编辑。

cp defconfig .config
vi .config

找到下面这行,去掉#注释

#CONFIG_DRIVER_NL80211=y  (默认应该是取消的)

必须先安装这几个依赖 ,安装libnl和libssl库

sudo apt-get install libssl-dev libnl-3-dev libnl-genl-3-dev

然后就可以对hostapd进行编译了

make

 再安装

sudo make install

如果还是有问题,编辑.config文件,去掉以下语句的注释,然后再次make。

#CONFIG_LIBNL32=y

二、配置hostapd

在下载的hostapd目录中有默认的配置文件hostapd.conf,但配置太多,对于初学者来说不是太好理解,先自己创建一个简单的配置文件hostapd-minimal.conf,对hostapd的功能进行验证。

编辑hostapd-minimal.conf文件

interface=wlan0  #wlan0为你的无线网卡名称
driver=nl80211   #驱动
ssid=test       
hw_mode=g
channel=1        #信道

完成配置后,可以使用命令尝试开启hostapd

sudo hostapd hostapd-minimal.conf

可能会遇到如下错误

Configuration file: hostapd-minimal.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlp9s0b1 disabled_11b_rates=0
nl80211 driver initialization failed.
wlp9s0b1: interface state UNINITIALIZED->DISABLED
wlp9s0b1: AP-DISABLED 
hostapd_free_hapd_data: Interface wlp9s0b1 wasn't started

这是因为有其他的网络程序在占用了无线网卡接口,你必须先关闭系统本身的无线网络管理程序network manager

sudo nmcli radio wifi off
sudo rfkill unblock wlan
sudo ifconfig wlan0 10.5.5.1/24 up  #可以不执行

然后再打开hostapd。如下所示,表示你已经成功启动了hostapd

Configuration file: hostapd-minimal.conf
Using interface wlan0 with hwaddr 68:94:23:8b:88:a3 and ssid "test"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED 

接下来用手机连接wifi,这时候就可以搜到hostapd的wifi “test”。但是手机连不上,这是因为电脑没有安装dhcp服务,不能给连接的终端分配ip地址

第二部分 安装isc-dhcp-server

首先使用命令安装dhcp server服务

sudo apt-get install isc-dhcp-server
然后编辑文件/etc/default/isc-dhcp-server,其中设置INTERFACES为无线网卡名称,如下所示:
INTERFACES="wlan0"
然后编辑文件/etc/dhcp/dhcpd.conf,在文本后面添加
subnet 10.5.5.0 netmask 255.255.255.0 {
  range 10.5.5.26 10.5.5.30;
  option domain-name-servers 8.8.8.8;
  option routers 10.5.5.1;
  option broadcast-address 10.5.5.255;
  default-lease-time 600;
  max-lease-time 7200;
}
启动dhcp server
sudo dhcpd

 

第三部分 启用internet共享

对于Internet连接共享,我们需要IP转发和IP转换。启用IP转发,使用命令:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

 然后配置路由转发表,命令如下,ppp0为你的internet连接名称

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

       现在手机可以连接wifi,能够上网,说明已经配置成功。但是重启电脑后,很多步骤都需要重新来一遍,很麻烦。我们可以写一个启动脚本

#!/bin/bash
sudo nmcli radio wifi off
sudo rfkill unblock wlan
sudo ifconfig wlan0 10.5.5.1/24 up
sleep 4

sudo service isc-dhcp-server restart
echo 1| sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo hostapd hostapd目录/hostapd-minimal.conf
 
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以按照以下步骤在Linux系统上使用hostapd搭建和使用WiFi: 1. 安装hostapd:可以使用以下命令在终端中安装hostapd: ``` sudo apt-get update sudo apt-get install hostapd ``` 2. 配置hostapd:可以使用以下命令来编辑hostapd的配置文件: ``` sudo nano /etc/hostapd/hostapd.conf ``` 在编辑器中,您需要设置一些参数,例如SSID(WiFi名称),密码,通道等等。以下是一个示例: ``` interface=wlan0 driver=nl80211 ssid=my_network hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=my_password wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP ``` 请注意,这只是一个示例配置文件。您需要根据自己的需要进行调整。 3. 启动hostapd:可以使用以下命令来启动hostapd: ``` sudo systemctl start hostapd ``` 4. 配置网络接口:您需要配置网络接口,以便能够将WiFi网络连接到互联网。可以使用以下命令来配置网络接口: ``` sudo nano /etc/network/interfaces ``` 您需要添加以下内容: ``` auto wlan0 iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 ``` 这将为wlan0接口配置静态IP地址。 5. 配置DHCP服务器:您需要配置DHCP服务器,以便为连接到WiFi网络的设备分配IP地址。可以使用以下命令来安装和配置DHCP服务器: ``` sudo apt-get install isc-dhcp-server ``` 然后,您需要编辑DHCP服务器的配置文件: ``` sudo nano /etc/dhcp/dhcpd.conf ``` 在文件末尾添加以下内容: ``` subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.50; option broadcast-address 192.168.1.255; option routers 192.168.1.1; default-lease-time 600; max-lease-time 7200; option domain-name "my_network"; option domain-name-servers 8.8.8.8, 8.8.4.4; } ``` 请注意,这只是一个示例配置文件。您需要根据自己的需要进行调整。 6. 启动DHCP服务器:可以使用以下命令来启动DHCP服务器: ``` sudo systemctl start isc-dhcp-server ``` 现在,您的hostapd WiFi网络已经搭建好了,您可以使用其他设备连接到该网络并访问互联网。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值