树莓派4B配置wifi热点,可访问http协议

首先需要更换源

bash 复制代码
1、备份sources.list
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo touch /etc/apt/sources.list
2、将下面的代码写入sources.list文件中
sudo echo "deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi" | sudo tee -a /etc/apt/sources.list
sudo echo "deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi" | sudo tee -a /etc/apt/sources.list

#dabian:12 使用下面这个
# 默认注释了源码镜像以提高apt update速度,如有需要可自行取消注释
deb https://mirrors4.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors4.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors4.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://mirrors4.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
#dabian:12 使用下面这个


3、备份raspi.list文件(这个可以不用配置)
sudo mv /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
sudo touch /etc/apt/sources.list.d/raspi.list
sudo echo "deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi" | sudo tee -a /etc/apt/sources.list.d/raspi.list
sudo echo "deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi" | sudo tee -a /etc/apt/sources.list.d/raspi.list

一、安装必要的软件包

bash 复制代码
sudo apt update && sudo apt install hostapd dnsmasq dhcpcd5 -y && sudo systemctl stop hostapd && sudo systemctl stop dnsmasq

二、配置网络接口

bash 复制代码
sudo echo "interface wlan0" | sudo tee -a /etc/dhcpcd.conf && sudo echo "static ip_address=192.168.4.1/24" | sudo tee -a /etc/dhcpcd.conf && sudo echo "nohook wpa_supplicant" | sudo tee -a /etc/dhcpcd.conf

sudo systemctl restart dhcpcd

三、配置dhcp和dns服务

bash 复制代码
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.back && sudo touch /etc/dnsmasq.conf
sudo echo "interface=wlan0" | sudo tee -a /etc/dnsmasq.conf && sudo echo "dhcp-range=192.168.4.2,192.168.4.100,255.255.255.0,24h" | sudo tee -a /etc/dnsmasq.conf && sudo echo "dhcp-option=3,192.168.4.1" | sudo tee -a /etc/dnsmasq.conf && sudo echo "dhcp-option=6,8.8.8.8" | sudo tee -a /etc/dnsmasq.conf && sudo echo "server=8.8.8.8" | sudo tee -a /etc/dnsmasq.conf && sudo echo "log-queries" | sudo tee -a /etc/dnsmasq.conf && sudo echo "log-dhcp" | sudo tee -a /etc/dnsmasq.conf 

四、配置wifi热点(先判断文件是否存在)

bash 复制代码
sudo touch /etc/hostapd/hostapd.conf
sudo echo "country_code=CN" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "interface=wlan0" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "ssid=zhiRaspbeery" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "hw_mode=g" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "channel=6" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "macaddr_acl=0" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "auth_algs=1" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "ignore_broadcast_ssid=0" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "wpa=2" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "wpa_passphrase=12345678" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "wpa_key_mgmt=WPA-PSK" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "wpa_pairwise=TKIP" | sudo tee -a /etc/hostapd/hostapd.conf && sudo echo "rsn_pairwise=CCMP" | sudo tee -a /etc/hostapd/hostapd.conf 

echo "DAEMON_CONF=\"/etc/hostapd/hostapd.conf\"" | sudo tee -a /etc/default/hostapd # 将上面的文件挂在到hostapd文件中

sudo systemctl unmask hostapd && sudo rfkill list && sudo rfkill unblock wlan && sudo systemctl restart networking && sudo systemctl restart hostapd

五、启用IP转发和防火墙规则

1、启用IP转发(将wifi网卡指向有线网卡)

bash 复制代码
sudo echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2、防火墙规则

BASH 复制代码
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
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
# 编辑 /etc/rc.local 文件,在 exit 0 之前添加以下行,以在系统启动时恢复防火墙规则:
sudo echo "iptables-restore < /etc/iptables.ipv4.nat" | sudo tee -a /etc/rc.local

六、启动

bash 复制代码
sudo systemctl start hostapd
sudo systemctl start dnsmasq
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
相关推荐
GetcharZp7 小时前
玩转 Linux 机器视觉:手把手带你搞定 Ubuntu 下海康工业相机 C++ SDK
后端
星星在线10 小时前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒11 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x11 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
袋鱼不重13 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
用户83562907805113 小时前
使用 Python 操作 Word 内容控件
后端·python
像我这样帅的人丶你还13 小时前
啥? 前端也要会干Java?🛵🛵🛵
后端
摇滚侠13 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
Hommy8813 小时前
【剪映小助手】添加贴纸接口(Add Sticker)
后端·github·剪映小助手·视频剪辑自动化·剪映api
bush413 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式