如何建立与Raspbian Stretch的无线连接?


Answers:


14

Raspberry Pi 3(内核4.14.30-v7 +)

这篇文章是我用来建立与Raspberry Pi的无线连接的笔记和教程的集合。

如果您遇到任何问题,请告诉我。


无头设置

Raspbian当前在启动分区中查找几个文件,以允许无头设置或将Raspberry Pi连接到网络,并在没有监视器,屏幕或鼠标的情况下从外部计算机建立ssh连接。

将Raspbian操作系统加载到micro SD卡上后,Ubuntu command

unzip -p 2018-03-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress

在将SD卡移至Pi之前,将两个文件添加到启动分区。

  1. 必须通过将名为“ ssh”的文件(没有任何扩展名)放置到SD卡的启动分区中来启用SSH。这将允许您从外部设备进行连接。
  2. 必须定义网络连接
    • 在启动分区中添加名为“ wpa_supplicant.conf”的文件,并按照以下教程填写网络信息。

用于家庭连接的示例“ wpa_supplicant.conf”:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    ssid="NETWORK_NAME"
    psk="password"
}

现在,Pi的IP地址是什么?搜索MAC地址,所有RPi 3的MAC地址都以相同的开头。(不适用于企业网络,请向管理员询问特权)

Ubuntu command

sudo nmap -sn 192.168.1.0/24 | grep -B 2 B8:27:EB

SSH协议

初始引导期间自动禁用。

启用

sudo raspi-config

然后选择Interfacing Options→交通SSH→交通Enable


家庭网络连接

最简单的方法:

sudo raspi-config 

选择Network Options→,Wi-fi然后按照屏幕上的说明进行操作。

手动方式:

编辑wpa_suplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

添加以下内容:

network={
    ssid="NETWORK_NAME"
    psk="password"
}

然后保存文件


企业网络连接

这就是我连接到大学wifi的方式

首先创建密码哈希并保存到文件(在密码周围保留单引号):

echo -n 'YOUR_REAL_PASSWORD' | iconv -t utf16le | openssl md4 > hash.txt

然后编辑wpa_supplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

添加以下内容:

network={
    ssid="NETWORK_NAME"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP TKIP
    identity="YOUR_USERNAME"
    password=hash:5ac87xxxxxxxxxxxxxxxxxxetc
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

要添加密码哈希:

  1. 将光标移到要放置文本的位置
  2. ctrl+,r然后插入hash.txt文件
    • hash.txt包含(stdin)= 5ac87xxxxxxxxxxxxxxxxxxetc
    • 将“(stdin)=”替换为“哈希:”
  3. 保存文件
  4. 清除您的bash历史记录

    history -c
    
  5. 删除hash.txt

    rm hash.txt
    

管理多个连接

在wpa_supplicant.conf中向每个网络添加优先级标志

默认优先级= 0(最高优先级优先)

我的优先级wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    priority=1
    ssid="NETWORK_A"
    psk="password"
}

network={
    priority=2
    ssid="NETWORK_B"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP TKIP
    identity="YOUR_USERNAME"
    password=hash:5ac87xxxxxxxxxxxxxxxxxxetc
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

还有更多配置选项,请运行man wpa_supplicant.conf以获取信息。


临时网络/接入点/网桥连接

您想无线连接到pi,但没有可用的无线网络。创建自己的!

可以将Raspberry Pi设置为广播无线网络。该网络允许您连接pi,但无法连接到Internet。

简单的Pi到Pi临时设置

在每个Rpi上

复制当前文件以进行备份

cp /etc/network/interfaces /etc/network/interfaces.old

打开文件进行编辑

sudo nano /etc/network/interfaces

以下文件中唯一不同的行是address其他所有内容都应相同。您可以更改网络名称或添加密码

在Rpi A上附加以下内容:

auto wlan0
iface wlan0 inet static
    address 192.168.1.1 
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

附加以下Rpi B:

auto wlan0
iface wlan0 inet static
    address 192.168.1.2 `
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

保存文件并退出编辑器

提升界面:

sudo ifup wlan0

扫描临时网络:

iwlist wlan0 scan

您可以将更多设备添加到网络,只需为设备分配一个新的其他静态IP地址即可。

默认的工作频率/通道(2.412 GHz:通道1)经常被阻塞。如果遇到困难,请尝试使用其他渠道。

更改wireless-channel为其他号码

使用sudo iwlist wlan0 scan寻找其他渠道。

src:https//wiki.debian.org/WiFi/AdHoc


不太简单

比较复杂,但是如果找不到,将连接到已知网络并创建临时网络。

遵循本教程(没有以太网桥,我已经成功使用了此教程) http://www.raspberryconnect.com/network/item/331-raspberry-pi-auto-wifi-hotspot-switch-no-internet-routing

hostname -I 

在Pi上运行它,然后从Ubuntu主机通过ssh pi @ [ipaddr]连接到第二个IP地址。

使用以太网桥(我尚未测试过,但来自与↑相同的修补匠) http://www.raspberryconnect.com/network/item/330-raspberry-pi-auto-wifi-hotspot-switch-internet


已知错误:

从主机到Pi的SSH连接失败?运行详细输出:

ssh -vvvv pi@raspberrypi.local

如果关闭前的最后一条命令是:

debug1: SSH2_MSG_KEXINIT sent
Connection closed by raspberrypi.local port 22

尝试重新生成它们可能丢失或损坏的主机密钥(在Pi上执行此操作):

sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server 

https://www.raspberrypi.org/forums/viewtopic.php?t=168310


参考文献

man wpa_supplicant.conf

https://www.raspberrypi.org/forums/viewtopic.php?t=111100

https://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/wifi_setup.txt

https://gist.github.com/chatchavan/3c58511e3d48f478b0c2


这是一篇很棒的文章...这里有很多有用的东西!建议:获取一个GitHub帐户,然后在此发布“食谱”。
Seamus '18

2
扫描arp缓存有一些缺点:您只能看到邻居,并且必须以任何方式对想要的设备进行寻址。如果不是,则它不在缓存中。以前可以Ping广播地址可以解决所有邻居的问题,但是您的网络管理员不喜欢这样!替代方法是nmap例如sudo nmap -sn 192.168.10.0/24 | grep -B 2 B8:27:EB针对邻居。
Ingo

1
您正在写有关bridging。请注意,由于硬件/驱动程序限制,您无法在带有raspi的OSI 2层上真正桥接wifi
Ingo

0

使用我在Github上找到的这个简单程序:Rasp- Connect-使用Python将Raspbian连接到Wifi网络的简单python脚本。

这是一个简单的Python脚本,可以为您配置和设置它,您只需要选择哪种加密类型并输入SSID和密码即可。它工作得很好,还支持通过SSH运行该工具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.