配置树莓派作为一个Access Point(AP)

配置树莓派作为一个Access Point(AP)

WLAN实验配置树莓派的内容:

  1. SSH(使用Laptop方便打开树莓派命令行界面)

  2. Hostapd v2.3或者最新版本

  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
    # upgrade(可以跳过)
    # 如果对hostapd版本有要求的话最好更新一下:
    sudo apt-get update
    sudo apt-get install hostapd
    
  • 下载dnsmasq

    sudo apt-get install 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配置文件之后添加如下:
    不是删除里面的东西!是在末尾添加
    建议备份一下:例如把原本的dhcpcd.conf文件存一个dhcpcd.conf.save

    interface wlan1
    static ip_address=192.168.11.1/24 //任意IP地址都可以,但是不要重复!
    static routers=192.168.0.1
    static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 
    # denyinterfaces eth0
    # denyinterfaces wlan0 (可选)
    # 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 # 接口
    # 如果没有external NIC的话应该是只有embeded NIC的WLAN0接口
    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
    或者参考我的帖子Hostapd.config配置文件案例以及详细文档

  • 进入/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
# 这里的hostapd.config是你自己的配置文件,可以任意命名调整。
# 这里的hostapd指令在sbin文件里面,应该是使用apt下载的command都在里面
# 如果是自己make和intsall的话大概是在/usr/local/bin里面

或者你可以选择列出详细信息并开启

hostapd -d /etc/hostapd/你的配置文件
# 这里的hostapd.config是你自己的配置文件,可以任意命名调整。

iperf设置

以下内容来自ChatGPT的科普:

iperf2 是一个用于测量网络带宽和性能的工具,它提供了以下功能:

  1. 带宽测量:iperf2 可以用于测量网络连接的带宽,包括上传和下载速度。通过在服务器和客户端之间进行数据传输并计算传输速率,可以评估网络的吞吐量。
  2. 传输模式:iperf2 支持多种传输模式,包括 TCP 和 UDP。TCP 模式用于测量可靠性传输的带宽和延迟,而 UDP 模式用于测量无连接传输的带宽和丢包率。
  3. 测量参数:iperf2 允许设置各种参数来进行测量,包括数据包大小、传输时间、并发连接数等。通过调整这些参数,可以模拟不同负载和网络环境下的性能。
  4. 服务器-客户端架构:iperf2 使用服务器-客户端架构进行测量。服务器端监听指定的端口,而客户端通过连接到服务器发送和接收数据。这种架构允许同时进行多个并发连接,从而模拟真实的网络负载。
  5. 报告统计: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
    # 或者从网页上手动下载,安装
    # 如果安装不了特定版本那就直接
    sudo apt install iperf
    #这个应该是安装的最新的iperf,但是不是iperf3,应该是iperf2.10.14,这里我用的是Raspbian系统内核5.10的那个
    
  • 如果使用wget,继续执行:

    tar -xvf iperf-2.0.5.tar.gz
    
  • 进入解压后的目录编译:

    cd iperf-2.0.5
    
    ./configure
    make
    sudo make install
    #验证iperf版本
    iperf -V
    # 如果指令不正确那就参考一下iperf --help
    # 不同的系统有的地方有些许的差别
    

下面来运行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去调整
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卜卜123a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值