树莓派1 Model B+通过PC以太网共享上网配置问题求助
树莓派1 Model B+通过PC以太网共享上网配置问题求助
兄弟,能SSH进树莓派已经成功一半啦!上不了外网确实大概率是默认网关没配置对或者DNS解析出问题,咱们一步步来排查和搞定:
第一步:检查树莓派的默认网关配置
先确认树莓派有没有指向你PC以太网口的默认路由:
- 在树莓派终端执行:
ip route show - 如果输出里没有类似
default via 192.168.x.1 dev eth0的行(这里的192.168.x.1是你PC eth0的IP),那就手动添加临时网关:sudo ip route add default via 你的PC_eth0_IP dev eth0 - 添加完后试试ping你的PC eth0 IP,再ping
8.8.8.8(谷歌公共DNS),如果能通,说明网关和网络转发的基础是好的。
第二步:排查DNS解析问题
如果能ping通8.8.8.8但ping不通google.com这类域名,那就是DNS的问题:
- 先看树莓派的DNS配置文件:
cat /etc/resolv.conf,如果里面没有有效的nameserver条目,手动添加:sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf sudo echo "nameserver 1.1.1.1" >> /etc/resolv.conf - 注意有些树莓派系统会自动覆盖
resolv.conf,要是重启后又失效,就去编辑/etc/dhcpcd.conf,添加一行:static domain_name_servers=8.8.8.8 1.1.1.1 - 保存后重启dhcpcd服务:
sudo systemctl restart dhcpcd
第三步:确认PC端的网络共享和IP转发设置
Ubuntu 22.04这边得确保共享和转发都开了:
- 打开系统设置 → 网络,找到你当前上网的接口(比如WiFi),点右侧齿轮图标 → 切换到「共享」标签,勾选「允许其他网络用户通过此计算机的Internet连接来连接」,然后选择
eth0作为共享接口。 - 检查IP转发是否开启:在PC终端执行
sysctl net.ipv4.ip_forward,如果输出是net.ipv4.ip_forward = 0,临时开启:sudo sysctl -w net.ipv4.ip_forward=1 - 要永久开启IP转发,编辑
/etc/sysctl.conf,把net.ipv4.ip_forward=1这行的注释(#)去掉,保存后执行sudo sysctl -p生效。
第四步:防火墙排查
要是上面都弄了还是不行,可能是PC的防火墙阻止了转发:
- 临时关闭UFW测试:
sudo ufw disable,如果树莓派能上网了,就需要配置UFW允许转发:sudo ufw allow in on eth0 out on wlan0 sudo ufw enable
做完这些应该就能正常上网啦,要是还有问题可以把树莓派的ip route show和cat /etc/resolv.conf输出贴出来看看~
备注:内容来源于stack exchange,提问作者fatgladiator1712
相关产品推荐
相关产品推荐

