树莓派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
相关推荐
子洋几秒前
群晖 DSM 更新后 Cloudflare DDNS 失效的排查记录
前端·后端·dns
路由侠内网穿透.3 分钟前
外部访问 Python 搭建的 HTTP 服务器
运维·服务器·网络·网络协议·http·远程工作
charlie1145141914 分钟前
勇闯前后端Week2:后端基础——HTTP与REST
开发语言·网络·笔记·网络协议·学习·http
z***94848 分钟前
springboot和springframework版本依赖关系
java·spring boot·后端
秃秃秃秃哇16 分钟前
C语言实现循环链表demo
linux·c语言·链表
杰克逊的日记16 分钟前
MPLS(多协议标签交换)
运维·网络·mlps
雾岛听风眠22 分钟前
串口通信代码的一些解释
linux·运维·服务器
怀旧,25 分钟前
【Linux系统编程】8. 进程的概念(下)
linux·运维·服务器
励志成为糕手27 分钟前
基于SpringBoot的企业考勤管理系统设计与实现
java·spring boot·后端·web·企业应用
路人甲ing..28 分钟前
Ubuntu怎么安装tar.gz (android-studio为例)
linux·ubuntu·kotlin·android studio