将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

news/2024/10/27 20:34:46/

本文是基于在某东购买的usb无线网卡(RTL8188CUS芯片)来制作无线热点。本来想制作一个一键脚本。只是先把实现的过程记录下来。

參考文章
Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)
Why won’t dnsmasq’s DHCP server work when using hostapd?

1、更新系统,安装须要的软件

我们首先须要更新系统。然后安装必备的软件,以备随后编译hostapd。

sudo apt-get update
sudo apt-get install bridge-utils udhcpd make libnl-dev

2、编译安装hostpad

如今在git库中的hostpad是2.6版。已经支持了最新的RTL8188CUS芯片,所以我们直接编译安装就可以。

#从官网直接克隆代码
git clone git://w1.fi/srv/git/hostap.git
#若你想指定版本号库则能够直接checkout
git checkout hostap_2_5
cd hostap/hostapd/
#使用默认配置文件
cp defconfig .config
#编译安装
make
sudo make install
#这时能够看到已经将hostpad安装至`install -D hostapd /usr/local/bin//hostapd`

3.1、桥接方式设置wifi热点

若不想使用桥接方式则能够跳过此步。使用路由器方式来设置热点

编辑网卡配置文件:

sudo nano /etc/network/interfaces

然后将配置文件改动成例如以下配置:

auto loiface lo inet loopback
iface eth0 inet dhcp
#增加桥接
auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0

配置hostapd:

sudo nano /etc/hostapd/hostapd.conf

配置成例如以下:

#macaddr_acl:指定MAC地址过滤规则。0表示除非在禁止列表否则同意,1表示除非在同意列表否则禁止。2表示使用外部RADIUS服务器
#accept_mac_file:指定同意MAC列表文件所在
#deny_mac_file:指定禁止MAC列表文件所在
#ignore_broadcast_ssid改为1为隐藏SSID
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/hostapd.accept
ignore_broadcast_ssid=0
interface=wlan0
driver=rtl871xdrv
#ssid
ssid=My_SSID_Name
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
#password
wpa_passphrase=MYPASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

然后将配置文件增加hostapd并使其生效:

sudo nano /etc/default/hostapd

去掉凝视符号,并将上面的配置文件的路径填写在DAEMON_CONF下:

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

最后重新启动:

sudo reboot

3.2、用路由器的方式设置WiFI热点

这里主要使用udhcpd工具来为连接到Wifi的设备自己主动分配IP地址,当然也能够替换成其它的dhcpd工具。

改动udhcpd配置文件:

sudo mv /etc/udhcpd.conf /etc/udhcpd.conf.bak
sudo nano /etc/udhcpd.conf

将配置文件改动成例如以下内容:

#设置路由器分配的起始IP与终止IP
start 192.168.42.1
end 192.168.42.20
interface wlan0
remaining yes
#设置DNS
opt dns 8.8.8.8 4.2.2.2
opt subnet 255.255.255.0
#设置树莓派网卡的IP
opt router 192.168.42.1
#设置IP过期时间
opt lease 864000

然后编辑/etc/default/udhcpd使DHCP Server正常工作:

#将这行的凝视取消
DHCPD_ENABLED="no"

设置树莓派无线网卡的静态IP:

sudo ifconfig wlan0 192.168.42.1

改动网卡配置文件,使其永久生效:

sudo nano /etc/network/interfaces

将配置文件改动成例如以下内容:

auto loiface lo inet loopback
iface eth0 inet dhcpallow-hotplug wlan0
iface wlan0 inet staticaddress 192.168.42.1netmask 255.255.255.0
#每次开机自己主动载入iptables
up iptables-restore < /etc/iptables.ipv4.nat

配置hostapd:

sudo nano /etc/hostapd/hostapd.conf

配置成例如以下:

interface=wlan0
driver=rtl871xdrv
#ssid
ssid=My_SSID_Name
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
#password
wpa_passphrase=MYPASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

然后将配置文件增加hostapd并使其生效:

sudo nano /etc/default/hostapd

去掉凝视符号。并将上面的配置文件的路径填写在DAEMON_CONF下:

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

启动IP转向功能以便于开通NAT:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

编辑sudo vim /etc/sysctl.conf改动net.ipv4.ip_forward设置为1:

net.ipv4.ip_forward=1

配置iptable防火墙

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

这时NAT功能已被启用。然后将当前改动的内容存储在iptables配置文件里:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

/etc/default/ifplugd内容改动成例如以下配置:

INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

然后启动对应的服务。并将其增加启动项:

sudo service hostapd start
sudo service udhcpd start
sudo update-rc.d hostapd enable
sudo update-rc.d udhcpd enable

最后重新启动:

sudo reboot

此时就完毕了无线热点的配置。然后就能够依据设置的ssid与password进行wifi的连接,将hostapd升级至2.6以后连接速度很之快。但有一个问题是。在将信道设置为6时,手机连接无法分配到IP。

等待兴许更新处理。

转载于:https://www.cnblogs.com/jhcelue/p/7109669.html


http://www.ppmy.cn/news/702076.html

相关文章

andorid/iphone 手机通过 wifi 连接笔记本 无线网卡 共享上网

目的 andorid/iphone 手机通过 wifi 连接笔记本 无线网卡 共享上网&#xff01; 环境 OS ubuntu 10.04 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011 x86_64 GNU/Linux wlan Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (…

Jetson nano部署Yolov5 ——从烧录到运行 1:1复刻全过程

前言 因为一次竞赛接触了jetson nano和yolov5&#xff0c;网上的资料大多重复也有许多的坑&#xff0c;在配置过程中摸爬滚打了好几天&#xff0c;出坑后决定写下这份教程供大家参考 事先声明&#xff0c;这篇文章的许多内容本身并不是原创&#xff0c;而是将配置过程中的文献…

手机音质变差_手机听歌音质差?这些音质大坑你跳了几个

随着手机的普及&#xff0c;MP3随身听的市场已经被挤压成为了绝对的非主流&#xff0c;手机听歌成为了越来越多人的日常。 不过&#xff0c;大多数人手机听歌只是图个方便&#xff0c;一旦讨论起手机的音质&#xff0c;大家似乎都不怎么抱以期待。 的确&#xff0c;除了某些内置…

【AI简报20210730期】黑芝麻A1000 Pro自动驾驶芯片流片成功、地平线征程 5 芯片发布...

超级盛会&#xff01;哈哈&#xff0c;不是奥运会&#xff0c;不过同样激动人心~ 1. RT-Thread首届全球技术峰会开放报名&#xff01; 原文: https://mp.weixin.qq.com/s/VA1EkB9zfkx3vZMRwWE-QA 经过多年的努力&#xff0c;在多方的支持和倡议下&#xff0c;RT-Thread决定发起…

rman将rac环境恢复到单机,删除redo告警ORA-01623 ORA-00312

将rac环境迁移单机后&#xff0c;删除redo的thread 2告警&#xff0c;告警信息如下 SQL> select thread#,status,enabled from v$thread; THREAD# STATUS ENABLED ---------- ------ -------- 1 OPEN PUBLIC 2 CLOSED PUBLIC SQL> select group#,thread#,a…

35岁程序员现状,太真实!

“未来每年&#xff0c;我们将会为社会输送1000名工作10年以上的人才。” 这是之前马云在演讲中提到的关于阿里巴巴这样的大厂老员工的问题。总的来讲就是——“毕业”。 也经常能够看到在各个平台有程序员讲到自己35岁的焦虑。 之前&#xff0c;在某平台上就有一个有意思的…

vue插件(vue-print-nb)实现打印功能

vue插件vue-print-nb实现打印功能 1、安装vue-print-nb2、引入Vue项目3、在组件中使用4、vue-print-nb插件优化 1、安装vue-print-nb Vue2.0版本安装方法&#xff1a; npm install vue-print-nb --saveVue3.0版本安装方法&#xff1a; npm install vue3-print-nb --save2、引入…

利用auto_explain查看sql、procedure、function实时执行计划

文章目录 1.简介1.1 实时的执行计划1.2 查看procedure、function的执行计划 2.load auto_explain3.相关参数设定4.创建测试表5.测试用的function6.运行测试function7.查看执行过程8.关闭auto_explain 1.简介 postgresql中&#xff0c;利用explain 结合一些选项&#xff0c;如a…