判断自己的树莓派能不能上网,用这条命令试试
ping www.baidu.com
ping: www.baidu.com: Temporary failure in name resolution
出现了以上错误,说明树莓派不能上网
解决思路:
要进行一步步的排查,一般出现网络问题的排查思路如下:
基本的排错步骤(从上往下) :
ping 127.0.0.1
ping通说明tcp协议栈没有问题
ping 主机地址
ping的通说明网卡没有问题
ping 路由器默认网关
ping的通说明包可以到达路由器
默认网关在自己电脑上查找
树莓派的无线网卡联网需要事先配置要连接的无线路由器及其密码,这样才能联网工作。
而在安装完树莓派系统之后,我们可以在 boot分区下 创建一个名为 wpa_supplicant.conf 的文件,里面用来存放连接路由器所需的相关信息,其内容如下:
country=CN
ctrl_interface=/var/run/wpa_supplicant
update_config=1
network={
ssid="Router_"
psk="Password_"
scan_ssid=1
key_mgmt=WPA-PSK
}
其中:
-
network中的 ssid选项 用来指定要连接的无线路由器SSID;
-
network中的 pwd选项 用来指定要连接的无线路由器密码;
-
如果希望修改连接的WiFi,则在 boot 分区下重新创建该文件即可;
-
如果希望能够自动连接多个无线路由器,则可以在该配置文件中添加多个 network字段;
树莓派系统在启动时会探测 /boot分区下 是否存在 wpa_supplicant.conf 文件,如果存在则会 将它剪切到 /etc/wpa_supplicant/ 路径下,并启用无线网卡自动连接相应的路由器。
当我们在使用 SSH2 远程连接树莓派系统时,我们就需要 静态配置树莓派的网卡IP地址,否则 DHCP动态获取的IP地址经常在变,每次都要查询它的IP地址就比较麻烦,接下来我们需要了解树莓派系统的网络管理。树莓派系统提供了三个不同的服务来管理系统网络,它们分别是:
-
networking网络管理服务(/lib/systemd/system/networking.service)
-
dhcpcd网络管理服务 (/lib/systemd/system/dhcpcd.service)
-
systemd网络管理服务(/lib/systemd/system/systemd-networkd.service)
其中,树莓派系统当前默认使用 dhcpcd网络管理服务 管理系统的网络配置。
该配置文件默认采用 DHCP 方式动态获取IP地址。如果想要静态配置IP地址,则可以在其后面添加相关网卡配置如下:
# eth0 static IP configuration:
interface eth0
static ip_address=192.168.2.18/24
static routers=192.168.2.1
static domain_name_servers=114.114.114.114
# wlan0 static IP configuration
interface wlan0
static ip_address=192.168.2.16/24
static routers=192.168.2.1
static domain_name_servers=114.114.114.114
在该配置文件中:
-
我们静态配置了 eth0 这个有线网卡的 IP 地址为 192.168.2.18,同时设置系统的默认网关为 192.168.2.1, DNS服务器为 114.114.114.114;
-
另外静态配置了无线网卡wlan0的IP地址为 192.168.2.16,同时设置系统的默认网关也为 192.168.2.1, DNS服务器为 114.114.114.114;
-
如果想使用 dhcpcd 服务管理系统网络,则需要禁用另外两个服务并重启系统:
pi@raspberrypi:~ $ sudo systemctl disable --now networking pi@raspberrypi:~ $ sudo systemctl disable --now systemd-networkd pi@raspberrypi:~ $ sudo systemctl enable --now dhcpcd pi@raspberrypi:~ $ sudo reboot
重启完成之后,我们可以使用静态配置的IP地址再次登录到树莓派上,同样可以使用 ifconfig 命令可以查看 各个网卡的 IP 地址。
-
例如:
pi@raspberrypi:~$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.18 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::4050:4ffb:68a7:3017 prefixlen 64 scopeid 0x20<link> ether b8:27:eb:b4:c0:96 txqueuelen 1000 (Ethernet) RX packets 170 bytes 101034 (98.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 122 bytes 13028 (12.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 23 bytes 2451 (2.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 23 bytes 2451 (2.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.16 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::1962:16a8:8349:da2d prefixlen 64 scopeid 0x20<link> ether b8:27:eb:e1:95:c3 txqueuelen 1000 (Ethernet) RX packets 75 bytes 11596 (11.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 68 bytes 15252 (14.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig
您提供的输出是Raspberry Pi 上的命令的结果。它显示系统上每个网络接口的网络配置和状态。我们来分解一下各个部分的含义: -
eth0
:这是以太网网络接口。 -
flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
:这些标志指示网络接口的当前状态。在这种情况下,UP
意味着接口已启动并处于活动状态,BROADCAST
意味着它支持广播,RUNNING
意味着接口正在运行,并且MULTICAST
意味着它支持多播。提供的信息为ifconfig
您提供了 Raspberry Pi 上的网络接口、它们的 IP 地址、MAC 地址和传输统计信息的概述。它还显示以太网 (eth0
) 和 Wi-Fi (wlan0
) 接口均已启动并正在运行,并在192.168.2.x
子网内分配了 IP 地址。文章来源:https://www.toymoban.com/news/detail-733755.html
总之,树莓派想要联网得先经过路由器,要逐步判断是哪一步出现了问题。文章来源地址https://www.toymoban.com/news/detail-733755.html
到了这里,关于树莓派不能上网解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!