每次重新启动 Raspberry Pi 时,我的静态 IP 地址设置都会被清除。
我刚刚安装Ubuntu 核心在 Raspberry Pi 3 上,但我一直在努力建立一个 wifi 静态 IP 地址。
以下是我经历的步骤:
- 登录 Pi 后,我执行了须藤经典
已执行sudo nano /etc/network/interfaces并增加了以下内容:
源目录 /etc/network/interfaces.d
auto wlan0 iface wlan0 inet static address 192.168.0.30 broadcast 192.168.0.255 netmask 255.255.255.0 gateway 192.168.0.1
保存文件并执行sudo ifup wlan0
此时当我执行是否配置,IP 地址和其他设置在wlan0. 挥拳庆祝。
我执行出口返回折断然后我执行sudo 重启重新启动 Pi。我还立即将以太网电缆从 Pi 远程断开,以便 Wi-Fi 可以满足互联网需求。
我的问题就是从这里开始的。
我检查了我的路由器的 IP 地址列表,但其中没有包含我的静态 IP。
我重新登录我的 Pi 并执行是否配置再次设置 IP 地址和其他设置wlan0已不复存在。
wifi ID 和密码包含在/etc/wpa_supplicant/wpa_supplicant.conf文件及其内容如下:
network={
ssid="SKY8317B"
psk="TRUMBOX"
key_mgmt=WPA-PSK
}
我将非常感激大家能帮助我解决这个静态 IP 地址无法持久的问题。
更新#1:以下是基于@chili555 非常有用的输入的详细调试输出
sudo ifdown wlan0 && sudo ifup -v wlan0
ifdown: interface wlan0 not configured
Reading directory /etc/network/interfaces.d
Configuring interface wlan0=wlan0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/bridge
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
wpa_supplicant: wpa-driver nl80211,wext (default)
wpa_supplicant: /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -C /run/wpa_supplicant
Starting /sbin/wpa_supplicant...
wpa_supplicant: creating sendsigs omission pidfile: /run/sendsigs.omit.d/wpasupplicant.wpa_supplicant.wlan0.pid
wpa_supplicant: ctrl_interface socket located at /run/wpa_supplicant/wlan0
wpa_supplicant: configuring network block -- 0
wpa_supplicant: wpa-ssid "SKY8317B" -- OK
wpa_supplicant: wpa-psk ***** -- OK
wpa_supplicant: enabling network block 0 -- OK
/bin/ip addr add 192.168.0.30/255.255.255.0 broadcast 192.168.0.255 dev wlan0 label wlan0
/bin/ip link set dev wlan0 up
/bin/ip route add default via 192.168.0.1 dev wlan0 onlink
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/ubuntu-fan
run-parts: executing /etc/network/if-up.d/upstart
run-parts: executing /etc/network/if-up.d/wpasupplicant
更新#2:
执行结果=> lsb_release -d:
Description: Ubuntu 16.04.4 LTS
执行结果=> cat /etc/netplan/*:
network:
version: 2
ethernets:
all-en:
match:
name: "en*"
dhcp4: true
all-eth:
match:
name: "eth*"
dhcp4: true
更新#3:
我在互联网上看到一篇文章,上面说手动更新/ETC目录不会保留。我当时选择不相信,但我刚刚发现sudo console-conf命令似乎是内置的解决方案。
使用该命令,您可以提供 wifi SSID 和密码。重置 Pi 并重新登录表明我提供的设置仍然有效。
另一个需要提供的设置是静态 IPv4 数据,但我不知道如何设置该信息,即CIDR 格式的子网。下面是我尝试设置的屏幕截图:
答案1
您没有指定要连接的 SSID(通常是路由器),您没有提供 WPA2 密码,您没有提供 DNS 名称服务器,最后,广播声明是不必要的。我建议您将文件修改为:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopbak
auto wlan0
iface wlan0 inet static
address 192.168.0.30
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1 8.8.8.8
wpa-ssid <your_router>
wpa-psk <ypur_secret_key>
重启界面:
sudo ifdown wlan0 && sudo ifup -v wlan0
查看:
ping -c3 www.ubuntu.com
一切已准备就绪。
答案2
花了很长时间才弄清楚。
我只能猜测Ubuntu 核心与 Ubuntu 和 Raspbian 以前的版本不同。否则编辑/etc/网络/接口文件应该可以起作用,就像我在原始帖子中所做的那样。
我要衷心感谢辣椒555感谢他为帮助我解决这个问题所做的一切努力。
解决方案:
Ubuntu Core 运行 SNAP 包管理器。我认为 SNAP 负责sudo console-conf命令。执行后,您应该看到类似以下内容:
在突出显示的“确定”按钮上按下回车键,您将可以访问网络连接区域:
在这一领域,正如在所有其他领域一样控制台配置,您可以使用箭头键导航到感兴趣的部分。 wlan0(无线卡 #1)是我感兴趣的,因此我在屏幕截图中将其突出显示。然后,我按 Enter。
注意配置 WIFI 设置菜单。当您在突出显示该菜单的情况下按下 Enter 键时,出现的界面就是您设置 wifi SSID 和密码的地方。
同样适用于我尝试设置静态 IP 地址。只需按一次向下箭头即可进入使用静态 IPv4 配置并按回车键提供您想要使您的 Pi wifi 可访问的 IP 详细信息。
子网掩码给我带来了很多麻烦。我不是网络工程师,我以为它应该是255.255.255.0/??但菜单显示错误消息。以下是有效的数据(我猜对了正确的子网掩码):
我希望人们发现这节省了时间并且很有帮助。