配置树莓派作为一个Access Point(AP)
WLAN实验配置树莓派的内容:
-
SSH(使用Laptop方便打开树莓派命令行界面)
-
Hostapd v2.3或者最新版本
-
iperf2
配置SSH连接
SSH(Secure Shell)是一种用于安全远程登录和执行网络服务的网络协议。它通过加密通信和身份验证机制,提供了一种安全的方式来远程连接到远程计算机或设备。
-
树莓派用网线(cable)连接Laptop或者PC
-
在树莓派界面打开SSH
- 注意下载树莓派的图形界面
- 烧录树莓派OS系统(烧录工具balenaEtcher或者官方工具)
- 打开树莓派SSH功能,一般默认情况下是关闭的(太懒了所以从别人那盗一张图.doge)
-
查询树莓派IP地址
sudo ifconfig
注意查看eth0端口的IP地址
- 通常情况下会配置static IP,静态IP方便使用树莓派的eth0端口进行SSH连接
//进入dhcpcd的配置文件 //需要提前下载安装dhcpcd功能 sudo nano /etc/dhcpcd.config//在dhcpcd.config中写入静态IP地址 interface eth0 // 确定要修改的接口 static_ip_address=192.168.11.10/24 // 192.168.11.10为WLAN实验常用SSH端口IP,可以根据自己的喜好进行任意设置,/24表示子网掩码为255.255.255.0// ctrl+X 退出并进行保存
-
经过上一步之后,我们的树莓派IP地址将变为192.168.11.10
-
在Laptop或者PC上打开终端(ctrl+alt+T),输入
ssh pi@192.168.11.10 //自己设置的IP地址
-
输入ssh之后会显示输入树莓派的用户密码,用户名字一般设置为PI,用户密码建议设置为raspberry
-
可能存在的问题
Permission denied# 用户名或密码错误:请确保输入的用户名和密码是正确的。默认情况下,树莓派的用户名是"pi",密码是"raspberry"。如果已更改用户名或密码,请相应地使用新的凭据进行连接。 # SSH服务未启用:在树莓派上默认情况下,SSH服务是禁用的。需要通过树莓派上的其他连接方式(例如显示器和键盘)启用SSH服务。请参考之前的"在树莓派上启用SSH服务"部分来启用SSH。 # IP地址或主机名错误:确保输入的是正确的树莓派IP地址或主机名。可以使用树莓派上的ifconfig命令来获取正确的IP地址。publickey password # 通过以下指令查询log日志 /var/log/auth.log # 一般出现在修改过IP之后 # 大概率可能是用户名错误或者密码错误 # 也可能是使用ssh pi@的主机出现了调用别的设备的情况导致密码不匹配# 指定用户名强行登录 sudo ssh -l pi# 查询地址登录 cat /var/lib/misc/dnsmasq.leases ssh pi@xxx# 查询树莓派SSH配置 sudo cat /etc/ssh/sshd_config #PasswordAuthentication yes sudo service ssh restart# 修复SSH权限 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chown -R <username> ~/.ssh# 最后的办法 # 备份当前的 /etc/ssh/sshd_config 文件,然后删除它,然后重新安装 OpenSSH 服务器: sudo apt purge openssh-server sudo apt install openssh-server# 最后最后最后的方法 # 重装系统吧...
下载和安装配置hostapd
参考网页https://thepi.io/how-to-use-your-raspberry-pi-as-a-wireless-access-point/
-
使用apt指令下载
sudo apt-get upgrade # 更新系统(可以跳过)sudo apt-get install hostapd
-
下载dnsmasq
sudo apt-get dnsmasq
下载和配置dnsmasq是为了提供一个完整的无线访问点解决方案。hostapd负责管理和控制无线接入点的功能,而dnsmasq则提供了DNS和DHCP服务。
-
我们稍后要编辑程序的配置文件,所以让先关闭程序
sudo systemctl stop hostapd sudo systemctl stop dnsmasq
-
为无线接口配置静态IP
sudo nano /etc/dhcpcd.config# 添加wlan1的接口信息(因为我们使用external NIC作为无线网卡,所以接口不是树莓派板载的wlan0,而是使用wlan1,通常为了防止干扰会禁用wlan0)
进入到dhcpcd.config配置文件之后添加如下:
interface wlan1 static ip_address=192.168.11.1/24 //任意IP地址都可以,但是不要重复! denyinterfaces eth0 denyinterfaces wlan1 # denyinterfaces eth0:禁止eth0接口使用DHCP客户端。其实不写也没问题,因为在上边的步骤中我们给树莓派分配了eth0的静态IP, 写不写DHCP服务都不会生效。 # denyinterfaces wlan1:禁止wlan0接口使用DHCP客户端。这意味着树莓派上的wlan0接口将不会尝试通过DHCP协议来获取IP地址。
*这里科普一下DHCP协议
DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配IP地址和其他网络配置参数给网络上的设备。主要作用是IP地址分配,DHCP服务器(通常是网络中的路由器或专用服务器)负责管理和分配IP地址给网络上的设备。当设备加入网络或需要续约IP地址时,它可以向DHCP服务器发送请求,并从服务器获取可用的IP地址。
-
用上边下载的dnsmasq作为server去进行DHCP的服务
dnsmasq的默认配置文件包含了很多不必要的信息,所以我们更容易从头开始。让我们重命名默认配置文件并编写一个新配置文件:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig sudo nano /etc/dnsmasq.conf # mv: 是 "move"(移动)的缩写,用于移动或重命名文件。 #/etc/dnsmasq.conf: 是要移动或重命名的目标文件的路径。 #/etc/dnsmasq.conf.orig: 是目标文件的新路径和名称。
-
新的dnsmasq.config文件中添加如下:
interface=wlan1 #这里表示dnsmasq要监听的接口,我们使用的是wlan1接口dhcp-range=192.168.11.10,192.168.11.100,255.255.255.0,24h # 这里定义了分配的IP地址范围 # 192:常见的家庭网络标识号 # 168.11:子网号 # 10:具体的主机 # 要保持分配的IP地址的子网号与wlan1的相同,同时不能包含wlan1的主机号,避免冲突
-
配置hostapd的config文件
sudo nano /etc/hostapd/hostapd.conf
interface=wlan1 # 接口 bridge=br0 #使用br0桥接接口 hw_mode=g #指定无线接口模式 hw_mode=a启动5GHz channel=7 #频道 wmm_enabled=0 #禁用WMM macaddr_acl=0 #禁用mac地址访问控制 auth_algs=1 #认证算法类型 ignore_broadcast_ssid=0 #不忽略广播SSID wpa=2 #Wi-Fi Protected Access版本 wpa_key_mgmt=WPA-PSK #指定WPA的密钥管理类型 wpa_pairwise=TKIP #指定WPA的数据加密方式 rsn_pairwise=CCMP #指定RSN(Robust Security Network)的数据加密方式 ssid=NETWORK #SSID wpa_passphrase=PASSWORD #密码
具体更多设置请参考:https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
-
进入/etc/default文件夹修改默认配置
sudo nano /etc/default/hostapd #修改为如下形式 DAEMON_CONF="/etc/hostapd/hostapd.conf
-
进入内核参数配置文件启用数据转发
sudo nano /etc/sysctl.conf # net.ipv4.ip_forward=1修改为: net.ipv4.ip_forward=1
开启hostapd方法
很简单,设置好你需要的hostapd.config之后,执行:
sudo su #root权限
/usr/sbin/hostapd /etc/hostapd/hostapd.config
iperf设置
以下内容来自ChatGPT的科普:
iperf2 是一个用于测量网络带宽和性能的工具,它提供了以下功能:
- 带宽测量:iperf2 可以用于测量网络连接的带宽,包括上传和下载速度。通过在服务器和客户端之间进行数据传输并计算传输速率,可以评估网络的吞吐量。
- 传输模式:iperf2 支持多种传输模式,包括 TCP 和 UDP。TCP 模式用于测量可靠性传输的带宽和延迟,而 UDP 模式用于测量无连接传输的带宽和丢包率。
- 测量参数:iperf2 允许设置各种参数来进行测量,包括数据包大小、传输时间、并发连接数等。通过调整这些参数,可以模拟不同负载和网络环境下的性能。
- 服务器-客户端架构:iperf2 使用服务器-客户端架构进行测量。服务器端监听指定的端口,而客户端通过连接到服务器发送和接收数据。这种架构允许同时进行多个并发连接,从而模拟真实的网络负载。
- 报告统计:iperf2 提供详细的统计信息和报告,包括带宽、延迟、丢包率、数据传输量等。这些报告可以帮助分析网络性能和瓶颈,并进行性能优化。
下面来配置iperf:
-
下载iperf(我们使用iperf2.0.5版本)
wget https://downloads.sourceforge.net/project/iperf/iperf-2.0.5.tar.gz # 此处使用wget下载,避免没有源 # 使用apt也可以 sudo apt-get install iperf 2.0.5 # 或者从网页上手动下载,安装
-
如果使用wget,继续执行:
tar -xvf iperf-2.0.5.tar.gz
-
进入解压后的目录编译:
cd iperf-2.0.5./configure make sudo make install #验证iperf版本 iperf -v
下面来运行iperf:
-
在树莓派端输入:
iperf -s # 作为server
-
在你的host端,我们使用laptop:
# 首先连接到树莓派共享的Access Point iperf -c<服务器IP> -t<测量时间> -i<打印间隔> -w<窗口大小> # 默认情况下使用TCP服务,可以通过-u开启UDP
科普一下TCP和UDP:
TCP 提供可靠性和顺序性的数据传输,适合对数据完整性要求较高的应用,而 UDP 提供了较低的延迟和较高的传输速度,适合实时性要求较高的应用。
这里我们使用TCP作为传输协议,因为要解决TCP的问题…
常用的Linux系统知识
这里科普一下常用的Linux系统知识:
Linux根目录
在 Linux 系统中,根目录(root directory)是整个文件系统的最顶层目录,用 /
表示。根目录是文件系统的起点,所有其他目录和文件都是从根目录开始的。
根目录包含了许多重要的系统目录和文件,以下是一些常见的根目录下的子目录和文件:
/bin
:存放系统的基本命令和可执行程序(二进制文件)。/boot
:存放启动和引导相关的文件,如内核文件、启动加载程序(GRUB)等。/dev
:存放设备文件,用于与硬件设备进行交互。/etc
:存放系统的配置文件,如网络配置、用户账户配置、服务配置等。/home
:默认的用户主目录,每个用户在此目录下有一个对应的子目录,用于存放个人文件和配置。/lib
:存放系统库文件,包含许多共享的系统函数库。/mnt
:用于挂载其他文件系统的临时挂载点。/proc
:虚拟文件系统,提供对内核和进程信息的访问。/root
:超级用户(root)的主目录。/sbin
:存放系统管理命令和管理员使用的可执行程序。/tmp
:用于存放临时文件。/usr
:存放系统软件资源,包括应用程序、库文件、文档等。/var
:存放变量数据,如日志文件、缓存文件、临时文件等。
Linux基础指令
文件操作指令:
ls
:列出目录内容。cd
:切换目录。pwd
:显示当前工作目录的路径。mkdir
:创建新目录。rm
:删除文件或目录。cp
:复制文件或目录。mv
:移动文件或目录。cat
:显示文件内容。touch
:创建空文件或更新文件的访问和修改时间戳。
网络工具指令:
-
ifconfig
-
iwconfig
# iwconfig 是一个用于配置无线网络接口的命令行工具 iwconfig # 指定接口 iwconfig wlan0 # 启用或禁用无线接口的传输功率控制: iwconfig <无线接口名称> txpower <功率级别> # 例如: iwconfig wlan0 txpower 20 # 20的单位是dBm, 根据自己的adapter去调整
cp
:复制文件或目录。
mv
:移动文件或目录。cat
:显示文件内容。touch
:创建空文件或更新文件的访问和修改时间戳。
网络工具指令:
-
ifconfig
-
iwconfig
# iwconfig 是一个用于配置无线网络接口的命令行工具 iwconfig # 指定接口 iwconfig wlan0 # 启用或禁用无线接口的传输功率控制: iwconfig <无线接口名称> txpower <功率级别> # 例如: iwconfig wlan0 txpower 20 # 20的单位是dBm, 根据自己的adapter去调整