树莓派开机自启动热点(使用有线eth0上网,使用wlan0进行热点)
一、背景内容
其实就是接了一单,有人需要我帮忙配置一下树莓派开机启动热点。这边做个记录,该方式树莓派4B、3B都可以使用。
二、实际操作
1、使用网线连接路由器和树莓派
树莓派的网络接口一共有三个,分别是:
- eth0:有线网络接口(以太网接口)
- wlan0:无线网络接口(WiFi接口)
- lo:本地回环接口(用于本地通信,localhost:127.0.0.1)
由于需要配置热点,所以需要对wlan0进行配置,故其WiFi功能需要被关闭,这里使用eth0进行网络的连接,其已经默认配置为通过DHCP来自动获取IP地址。连上网线之后通过
ifconfig
查看eth0是否有固定的IP地址,用于判断网络是否连接。

2、关闭wlan0的网络连接
终端输入:
ip route
可以看到:

说明我的设备通过eth0和wlan0连接到了网络,第一点已经提到了需要用到wlan0来开启热点,故这里需要断开wlan0的wifi连接功能再进行配置。
终端输入:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
删除里面的全部内容,然后保存退出重启服务,一键三连~~~
3、树莓派换源
因为后续需要使用apt install来安装Linux软件包,请确保自己的树莓派的apt源是没问题的。这里不过多展开,后续会添加一些其他链接。
4、hostapd
hostapd可以将设备的无线网络接口配置为热点模式,使其成为一个软AP,接受其他设备的连接。
(1)安装且停止服务
终端输入指令进行安装:
sudo apt install hostapd
停止hostapd的服务:
sudo systemctl stop hostapd
(2)热点参数的配置
终端输入:(如果没用这个文件,在这个路径下新建一个即可)
sudo nano /etc/hostapd/hostapd.conf
填入:
interface=wlan0
driver=nl80211
ssid=???
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=???
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid是热点名称;wpa_passphrase是热点密码,根据需要修改。
填完之后如图:

(3)给hostapd指定热点配置文件的路径
终端输入:
sudo nano /etc/default/hostapd
去掉DAEMON_CONF的注释,并配置成/etc/hostapd/hostapd.conf,如图所示。意思就是告诉hostapd要从/etc/hostapd/hostapd.conf读取配置参数。具体如图:

最后重启hostapd服务,终端输入:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
稍等就可以看到产生的热点信号了。但是此时热点无法连接,因为此热点信号没有连接网络,也无法给客户端分配IP。

5、dhcpcd
dhcpcd是用于进行IP地址相关操作的软件包,这里我们用这个软件包来进行热点IP地址的固定。
终端输入指令进行安装:
(1)安装dhcpcd
sudo apt install dhcpcd
(2)编辑配置文件
编辑dhcpcd配置文件,终端输入:
sudo nano /etc/dhcpcd.conf
删除当中的全部内容,然后输入:
interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant
这里设置的static ip_address最好不要和你周围的无线网络在同一个网段,比如你家无线网络的网段是192.168.2.X,那么这里的静态IP的第三位就设置成其他的就好。
保存好之后,重启dhcpcd 服务,终端输入:
sudo systemctl restart dhcpcd
(3)检查
之后检查wlan0的IP地址,终端输入
ifconfig
可以看到IP地址被固定了,如图:

6、dnsmasq
dnsmasq软件包用于给连接热带的设备自动分配IP地址
(1)安装dnsmasq
终端输入:
sudo apt install dnsmasq
停止其服务:
sudo systemctl stop dnsmasq
(2)配置参数
终端输入:
sudo nano /etc/dnsmasq.conf
删除其全部内容,填入:
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
含义:dhcp 服务会给客户端分配 192.168.4.2 到 192.168.4.20 的 IP 空间,24 小时租期。
如图:

之后重启服务。终端输入:
sudo systemctl reload dnsmasq
如果报错了,就执行如下指令:
sudo systemctl unmask dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq
(3)尝试连接热点
服务重启之后,热点就可以连接了。因为树莓派给连接热点的设备分配了IP。不过此时还无法上网。

7、启用IP转发
终端输入:
sudo nano /etc/sysctl.conf
找到并且取消注释以下行:
net.ipv4.ip_forward=1
如图:

8、配置树莓派防火墙
终端输入:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
之后保存防火墙规则:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
之后让设备每次重启都重载这个防火墙规则:
sudo nano /etc/rc.local
将iptables-restore < /etc/iptables.ipv4.nat加到最后一行exit 0的前面,如图:

9、重启设备,enjoy yourself~
重启全部服务:
sudo systemctl unmask hostapd
sudo systemctl unmask dnsmasq
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
sudo systemctl start hostapd
sudo systemctl start dnsmasq
重启设备:
sudo reboot
树莓派开机自启动热点(使用有线eth0上网,使用wlan0进行热点)的更多相关文章
- ArchLinux For Arm 树莓派开机自启动脚本rc.local
今天折腾了下树莓派的迅雷固件,迅雷的安装很顺利,解压直接运行portal 就搞定了, 但是自启动就有问题了,由于新版的ArchLinux切换到systemd,不但rc.conf省了,连rc.local ...
- 【树莓派】开机自启动脚本方法之一(.Desktop文件)
转载处: 又一个让树莓派开机运行Python脚本的方法 Linux 创建启动器(.Desktop文件) 首先,树莓派使用的是官方推荐的镜像:RASPBIAN: 在树莓派上常常会需要开机自启动pytho ...
- 树莓派开机发送IP地址到邮箱
树莓派使用的wifi联网,在宿舍使用的是公共网络,不能设置静态ip,每次树莓派上电开机后ip地址可能会改变,所以让树莓派开机联网后自动发送ip地址到QQ邮箱 一.安装mutt和msmtp mutt: ...
- Linux/Ubuntu 16.04 使用校园网客户端Dr.com DrClient 有线连网,同时开启WiFi热点
前面写过Ubuntu 16.04 使用校园网客户端 DrClient 无线上网,在这篇文章中将要介绍下,在Ubuntu 16.04上如何使用校园网客户端实现有线登录,这个问题也让博主困惑了很久,但是问 ...
- 【Linux】Cent OS 虚拟机开机自启动配置
一次断电,导致实体机关机了,虚拟机也连不上去,只好手动来起来. 我想增加一下自启动,让硬件开机的时候,自动启动虚拟机: 其实是有办法的,尝试了一下,也成功了,这里简单标记下. virsh autost ...
- 设置开机自启动VirtualBox虚拟机系统
如果常用VirtualBox虚拟机系统的话,设置个随开机启动也是很方便的.不需要打开VirtualBox窗口,直接就是系统启动了. 又继续上网搜索学习了.(设置开机自启动VirtualBox虚拟机系统 ...
- CentOS开机自启动
CentOS 配置的开机自启动. vim /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other ...
- win7系统用笔记本共享wifi热点 让手机免费上网
之前一直在用这个方法把自己的笔记本变成一个wifi热点,让手机也可以直接连wifi上网,节省网费和路由器购买费. 其实就是开启了windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP ...
- redis的安装与设置开机自启动
redis 的安装配置: 可以直接去官网下载((https://redis.io/download) 解压文件到指定目录下 tar zxvf redis-5.0.7.tar.gz -C /opt/ ...
- apache 开机自启动脚本设置
默认我们源码编译安装apache,是不能使用service这个命令来启动的,通常我们启动的命令是: [root@localhost httpd-2.2.16]# /usr/local/apache2/ ...
随机推荐
- CRC算法原理、推导及实现
CRC, Cyclic Redundancy Check, 循环冗余校验 1. 基本原理 CRC的本质是除法,把待检验的数据当作一个很大(很长)的被除数,两边选定一个除数(有的文献叫poly),最后得 ...
- 需要多久才能看完linux内核源码?
代码中自由颜如玉!代码中自有黄金屋! 一.内核行数 Linux内核分为CPU调度.内存管理.网络和存储四大子系统,针对硬件的驱动成百上千.代码的数量更是大的惊人. 先说说最早的内核linux 0.11 ...
- 手把手教你搭建国产嵌入式模拟器SkyEye开发环境
SkyEye介绍 SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目".SkyEye的目标是在通用的Linux和Windows平台上实现一个 ...
- Linux内核如何判断地址是否位于用户空间?
一. 问题描述 access_ok函数是什么原理? 二.问题分析 我们在内核空间和用户空间进行数据拷贝的时候必须判断用户空间地址是否合法. 主要通过偶函数access_ok来判断. 1. Linux用 ...
- mariadbl数据库环境迁移
前言: 数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作.为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略.保证数据安全的最重要的一个措 ...
- redux开发中的一个小坑
redux的actiontypes,不可以重名,重名将会报错 When called with an action of type "inserttoken", the slice ...
- C语言数据的存储
目录 类型的基本归类 整形在内存中的存储 原码.反码.补码 大小端介绍 练习 浮点型在内存中的存储 浮点数存储的例子 浮点数存储规则 类型的基本归类 整形家族: char unsigned char ...
- 走进Docker的世界--(库存学习笔记)
第一天 走进Docker的世界 介绍docker的前世今生,了解docker的实现原理,以Django项目为例,带大家如何编写最佳的Dockerfile构建镜像.通过本章的学习,大家会知道docker ...
- 人脸伪造图像检测:Deepfake魔高一尺,TextIn道高一丈
只因开了一个视频会议,直接被骗1.8个亿 今年2月,一家跨国公司的香港分公司财务人员被一场精心策划的Deepfake视频会议诈骗,导致公司损失2亿港币(约1.8亿人民币). 事件起因是财务人员收到 ...
- 704 二分查找 golang实现
二分查找(Binary Search)是一种高效的查找算法,适用于 有序数组 或 有序列表.它的基本思想是通过将搜索范围逐渐缩小到目标元素所在的一半,从而大大减少查找的次数. 二分查找的基本原理 排序 ...