然后我添加了以下几行:
network={
ssid="myWifiSsid"
psk="myWifiPassword"
}
到
/etc/wpa_supplicant/wpa_supplicant.conf
。输入的数据正确100%。我等待了10分钟,然后检查:它没有自动连接。
然后我回到了官方说明,并按建议运行了
sudo wpa_cli reconfigure
。相同的结果:没有连接。然后我尝试手动重新启动wlan0:
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
仍然相同:未连接。
然后我重新启动,并立即自动连接。
太令人沮丧了。感觉官方说明根本没有经过测试。
那么,这里缺少的是什么,而无需重新启动怎么办呢?
#1 楼
我也使用2017-09-07-raspbian-stretch-lite
在RaspberryPi Zero W上看到了这个问题。 无法更新
wpa_supplicant.conf
文件sudo wpa_cli reconfigure
和sudo systemctl restart wpa_supplicant
。我的Pi在wlan0
上无法获得IP。我注意到
wpa_supplicant
是dhcpcd
服务的子代。$ sudo systemctl status
└─dhcpcd.service
├─890 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
└─912 /sbin/dhcpcd -q -w
我发现使用daemon-reload并重新启动
dhcpcd.service
单元对我有用。sudo systemctl daemon-reload
sudo systemctl restart dhcpcd
看来您应该首先运行
sudo systemcl daemon-reload
,然后重新启动dhcpcd
。我不完全确定为什么,但是daemon-reload
似乎会提醒服务单元更改配置文件。 如果在不运行
dhcpcd
的情况下重新启动daemon-reload
,则会收到此警告。 Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
,但是无论有没有daemon-reload
,它都能正常重启。因此,我认为这不是至关重要的,但可能是一种很好的做法。评论
这有效并且是正确的解决方案。但是,对于任何想要进行双模wifi的人(例如,承载热点并充当基站的Raspberry pi),请注意这将不起作用。如果要设置双模wifi,请在此处遵循此指南:raspberrypi.stackexchange.com/questions/89803/…。假设您已按照本指南进行了配置,并且希望不重新启动就可以运行;只需运行sudo systemctl restart wpa_supplicant@wlan0.service,然后执行sudo systemctl daemon-reload
–webjackal
20-2-24在5:34
由于未修改systemd单位文件,因此可能不需要daemon-reload。如果有人尝试执行此过程而没有重新加载守护进程,请发布结果
–布拉德·海因(Brad Hein)
20年8月14日在15:21
#2 楼
截至2018年,以前的答案不再起作用,您需要运行以下命令:sudo wpa_cli -i wlan0 reconfigure
来源:https://www.raspberrypi.org/ forums / viewtopic.php?t = 198274#p1238023
评论
在Pi4上像魔术一样工作!谢谢!
–麦克
20-4-2在3:19
可以在带有wifi到wifi桥的Pi3上完美运行(在Raspbian GNU / Linux 10(破坏者)上)
–糟糕
20年6月26日在8:54
#3 楼
我正在使用带有2018-03-13-raspbian-stretch
的Raspberry Pi 3,但我的问题略有不同,但是我找到了解决方案,所以我认为这也可以为您提供帮助。我通过设置
/etc/wpa_supplicant/wpa_supplicant.conf
来启动RPi,以便我设置了一个SSID和密码,并且RPi在启动时自动连接到已配置的SSID。此外,我想使用一些自动文本处理脚本来更改/etc/wpa_supplicant/wpa_supplicant.conf
,然后重新加载wifi设置。经过一番搜索,我在Raspberry Pi官方论坛上找到了这篇文章,并找到了这套其中的至少对我有用的命令:
sudo dhclient -r wlan0
sudo ifdown wlan0
sudo ifup wlan0
sudo dhclient -v wlan0
我不知道它们如何或为什么起作用,所以不能保证...
评论
这是唯一对我有用的答案,也适用于带有树突拉伸的Pi3-谢谢!
–smörkex
19年5月29日下午5:20
#4 楼
在wpa_supplicant.conf中添加网络后:运行cli
(这里使用了3个命令:接口,重新配置并退出)
root@raspberrypi:~# wpa_cli
wpa_cli v2.4
Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Selected interface 'p2p-dev-wlan0'
Interactive mode
<3>CTRL-EVENT-SCAN-RESULTS
> interface wlan0
Connected to interface 'wlan0.
> reconfigure
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>Trying to associate with XX:Xa:aX:Xa:XX:Xa (SSID='wifissid' freq=2437 MHz)
<3>Associated with XX:Xa:aX:Xa:XX:Xa
<3>WPA: Key negotiation completed with XX:Xa:aX:Xa:XX:Xa [PTK=CCMP GTK=CCMP]
<3>CTRL-EVENT-CONNECTED - Connection to XX:Xa:aX:Xa:XX:Xa completed [id=0 id_str=]
> quit
然后确认您具有IP地址。
root@raspberrypi:~# ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.XX.XXX netmask 255.255.255.0 broadcast 10.10.XX.XXX
inet6 fe80::aab2:d96e:d3ef:836d prefixlen 64 scopeid 0x20<link>
ether bX:XX:Xb:XX:Xe:aX txqueuelen 1000 (Ethernet)
RX packets 162 bytes 31128 (30.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 75 bytes 11385 (11.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#5 楼
您应该运行此命令行来重新启动网络/etc/init.d/networking restart
评论
不能拉伸!
– MatsK
17-10-14在14:14
理想情况下也不是在jessie中,因为它也是基于systemd的(不是SysV)。该命令是不合时宜的,并且为了向后兼容,最多只能提供支持。
–金锁♦
17-10-14在14:16
不,它不起作用。您必须重新配置wpa请求者并重新启动dhcpcd
– Hola Soy Edu Feliz Navidad
19-09-30在17:48
#6 楼
我对Raspbian GNU / Linux 10(失败者)也有类似的问题。我在wpa_supplicant.conf中进行了更改,然后运行# wpa_cli -i wlan0 reconfigure
,但是它并没有完全起作用。
# dhclient -v
起作用。
我在https://kb.isc.org/docs/isc-dhcp-44找到了信息-manual-pages-dhclient
的输出
$ sudo dhclient -v
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/wlan0/a0:f3:c1:26:04:9c
Sending on LPF/wlan0/a0:f3:c1:26:04:9c
Listening on LPF/eth0/b8:27:eb:1f:ab:6e
Sending on LPF/eth0/b8:27:eb:1f:ab:6e
Sending on Socket/fallback
DHCPREQUEST for 192.168.7.28 on wlan0 to 255.255.255.255 port 67
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPACK of 192.168.7.28 from 192.168.7.1
RTNETLINK answers: File exists
bound to 192.168.7.28 -- renewal in 1717 seconds.
#7 楼
您可以使用NetworkManager工具,该工具使用nmcli
命令来设置连接配置文件。 使用apt:
sudo apt-get install network-manager
注释掉
wlan
中的Ethernet
和/etc/network/interfaces
接口。重新启动设备。
然后使用:
sudo nmcli device wifi con "SSID" password "PSK"
连接到Wi-Fi网络。
评论
请不要建议将另一个网络工具与已经存在的三个工具(dhcpcd,Debian网络ifupdown,systemd-networkd)混合使用。 Raspbian不支持网络管理器,因此您必须手动进行配置。首先,它与dhcpcd和ifupdown冲突。您在回答中不尊重它。然后在Raspbian Stretch中,/ etc / network / interfaces中没有条目,因此没有注释掉。
– Ingo
19年2月10日在13:28
是的,您是对的伙伴,它们与其他dhcpcd和ifupdown网络冲突。但是遵循上述建议后,NetworkManager似乎是实现此目的的唯一方法。 Raspberry pi的raspbian lite版本除了nmcli外没有其他选择。我没有在Stretch上尝试过它,但是在安装过程中,网络管理器本身会发出冲突警告。如果您有解决方案,我将随时准备学习该方法。
– Rituraj Rautela
19年2月11日在8:53
只需使用sudo systemctl stop wpa_supplicant@wlan0.service和sudo systemctl start wpa_supplicant@wlan0.service,您就可以根据需要停止和启动WiFi连接。如何做,您可以查看将Raspberry Pi设置为接入点-简单的方法或将接入点设置为WiFi中继器,可选带桥接器或在wifi客户端和接入点之间切换,而无需重启或其他类似解决方案。
– Ingo
19年2月11日在18:44
@Ingo的一个非常有效的观点。只是要添加-如果您使用的是Node.js,并且想使用npm包来做事情,请彻底检查文档。大多数npm软件包在后台使用nmcli,这在Raspberry pi上不起作用。它甚至没有安装。因此,请谨慎操作。
–webjackal
20-2-24在7:08
在Raspbian上确实可以使用网络管理器(或与此有关的wicd或任何其他网络工具)。但是,如果您描述了如何设置它们,将很有用。
–德米特里·格里戈里耶夫(Dmitry Grigoryev)
20-2-24在7:28
#8 楼
编辑1:我将Raspberry pi Zero W配置为双模式wifi,从而获得了这个答案,我想通过共享它们来更改wifi凭据(wlan0必须连接到的wifi路由器)具有移动应用程序的ap0接口(托管了REST API)。
我假设接受的答案或任何其他答案对我而言都是有效的。但是事实并非如此。
因此,对于像我这样登陆的任何人,请按照此处提到的设置步骤进行操作。
然后,更改wifi连接而无需重新启动,我目前正在用2种方法进行测试:
wpa_cli -i wlan0重新配置
测试已经完成,我将在这里进行更新。
评论
我目前正在测试事物。将保持此更新。
–webjackal
20-2-24在7:09
评论
我也注意到了这一点。很沮丧!