本人打算用树莓派做服务器,不用图形界面,所以刷机系统选择2020-02-13-raspbian-buster-lite.zip
我的使用场景是网线连接内网并固定IP,用于SSH登录,WLAN用于连接外网。
因为树莓派自带的wifi坏了,搞了个USB无线网卡插上。我使用的是RTL8188EUS,使用sudo raspi-config,配置wifi最开始提示:
Could not communicate with wpa_supplicant
There was an error running option N2 Wi-fi
网上找了半天,这个老兄的方法实测可行:
使用 https://blog.csdn.net/dxuehui/article/details/51161338提供的第一种方法,问题得以解决。
具体他提供的有些多,我总结如下:
使用如下命令获得wifi设置:
wpa_passphrase SSID名称 密码
会显示如下:
network={
ssid="SSID名称"
#psk="密码"
psk=4b7084a26fea96aaf67518820cc1151fb8f47c5fc0674cd6e877a2ecd70b596e
}
将得到的东东复制到/etc/wpa_supplicant/wpa_supplicant.conf中去,
最后所得文件全部内容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="COMFASRT_123"
psk=f8860625d1faca6882881f04584b14f4ef8f98ec908b6f98ba1817761e3af711
}
然后修改/etc/network/interfaces文件:在文件末尾增加以下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
post-down killall -q wpa_supplicant
注意,eth0不要设置网关,它不需要网关,因为是内网。设置了反而会影响访问公网。在配置过程中也遇到很多坑,各种各样的方法配置都试过了。要么保存不了静态IP,要么开机eth0被禁用(有这么个说法,树莓派有一个网卡连接成功,其他就不会连接了?)。现在按照这个配置是可以双网卡都启用的。
最后执行
sudo service networking restart
或者直接重启树莓派就好了。
直接上大名鼎鼎的NetworkManager
强烈推荐小白用此方法
刷机,新建ssh文件,路由器查看树莓派ip,ssh连接树莓派。
针对板子自带wifi损坏的情况:
因为我的wifi坏了,还会提示
rfkill: cannot open /dev/rfkill: Permission denied
rfkill: cannot read /dev/rfkill: Bad file descriptor
哎,太难了。
去/boot/config.txt里面关掉吧
最后面追加一句
dtoverlay=pi3-disable-wifi
就可以了。
我看了下/boot/overlays/README文档有提到,dtoverlay=disable-wifi也是可以的。反正我的派是3b,我用pi3-disable-wifi能行,我就没有再去试了。改完重启就没有这个提示了。
针对正常板子的情况:
正常的板子,每次开机后,都有这个进程
root 390 1 0 10:41 ? 00:00:00 wpa_supplicant -s -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
这个进程如果开着的话,后面的networkmanager将无法正常使用WiFi。不信可以试试。但是这个进程从何而来,又该如何关闭?
经过本人不懈的查找,在这里找到了答案。
https://raspberrypi.stackexchange.com/questions/85599/how-to-start-stop-wpa-supplicant-on-default-raspbian
dhcpcd使用hook管理了wpa_supplicant,导致每次启动时都有一个这样的进程。具体在/lib/dhcpcd/dhcpcd-hooks/10-wpa_supplicant中,有一个start。就是它开启了这个进程。
那么如何关闭呢?
通过编辑/etc/dhcpcd.conf文件,在最后追加
nohook wpa_supplicant
即可。再次重启,是不是没有这个进程了。
安装NetworkManager
sudo apt-get install network-manager
启动NetworkManager
systemctl enable NetworkManager
systemctl start NetworkManager
sudo nmtui(每次敲入这个命令,心里都要默念“尼玛腿”,我个人理解是network manager text user interface的缩写,同样的nmcli是network manager cmd line interface)
只需要编辑一个连接并激活就好了。
wifi不用建立连接,直接到active那里选择并输入密码就好了。简直简单到哭。
根据情况,重启看看,是不是有IP了
再看看,NetWorkManager管理的网卡
sudo nmcli device
关闭干扰networkmanager的服务
sudo systemctl disable dhcpcd.service
sudo systemctl disable networking.service
可以下载chkconfig来确认
sudo apt-get install chkconfig
sudo chkconfig -list